summaryrefslogtreecommitdiffstats
path: root/Bachelor/BSc-Arbeit/mat_bsc_arbeit
diff options
context:
space:
mode:
Diffstat (limited to 'Bachelor/BSc-Arbeit/mat_bsc_arbeit')
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/FSV-4PFS-Datasheet.pdfbin0 -> 82168 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/HA_Whitepaper.pdfbin0 -> 103104 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/ISDNguard_en.pdfbin0 -> 129523 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/Trixbox_FB2_Heartbeat_Tutorial.pdfbin0 -> 143924 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/berofos.pdfbin0 -> 477854 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/fb2_data_sheet.pdfbin0 -> 86837 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/foneBRIDGE2%20Quick%20Install%20Guide%20v.1.pdfbin0 -> 67256 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/isdn_guard_installation_guide.pdfbin0 -> 101300 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/pls_a.pdfbin0 -> 203625 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 1.pdfbin0 -> 138296 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 2.pdfbin0 -> 103564 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 3.pdfbin0 -> 116038 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 4.pdfbin0 -> 101419 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 5.pdfbin0 -> 106425 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 6.pdfbin0 -> 107436 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 7.pdfbin0 -> 106683 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 8.pdfbin0 -> 113438 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Juel_4154_Riedel.pdfbin0 -> 14884912 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdfbin0 -> 177819 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdfbin0 -> 177819 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Mark's IT Blog_ MySQL 5 High Availability with DRBD 8 and Hea...pdfbin0 -> 94650 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/MultiportRepeater_Brochure.pdfbin0 -> 186683 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/MySQL AB __ MySQL 5.1 Reference Manual __ 14 High Availabilit...pdfbin0 -> 52136 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/NGNSwitch_Dallas_10262006.pdf David Zimmer.pdfbin0 -> 2176437 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/AMA-2007.pdfbin0 -> 396310 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/BAD-2001.pdfbin0 -> 184297 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/CLU-2007.pdfbin0 -> 102030 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/DAV-2006.pdfbin0 -> 179744 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ELL-2007.pdfbin0 -> 258893 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/FAQ-2007.pdfbin0 -> 71299 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/GAB-2004.pdfbin0 -> 136509 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/LIN-2005.pdfbin0 -> 234124 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/MIL-1997.pdfbin0 -> 44916 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/REI-2000.pdfbin0 -> 477969 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/RIC-2006.pdfbin0 -> 171868 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2000.pdfbin0 -> 87380 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2007.pdfbin0 -> 67191 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SAT-2004.txt14395
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SEI-2007.pdfbin0 -> 119624 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SPE-2004.pdfbin0 -> 350797 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SUN-1999.ps14251
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/USG-2007.pdfbin0 -> 687492 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZAB-2004.pdfbin0 -> 179686 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZHA-1999.ps37443
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Scaling Internet Services by LinuxDirector.pdfbin0 -> 786497 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/VRRP_WhitePaper.pdfbin0 -> 367000 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdfbin0 -> 146895 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdfbin0 -> 146895 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_Protocol_Description_.pdfbin0 -> 29495 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_User_Guide_.pdfbin0 -> 26100 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/_LinuxPlanet_-_Print_-_Getting_Free_Long_Distance__Part_2_.pdfbin0 -> 28422 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/_TheGoldFish_net_Blog__273_Blog_Archive__273_DUNDi_Tutorial_for_Asterisk_Home_.pdfbin0 -> 126973 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/asterisk_pbx_sc_pap.pdfbin0 -> 5863496 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/bescheinigung_eisenhauer.pdfbin0 -> 512435 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/bib_umfrage.pdfbin0 -> 106210 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/carp_linux.pdfbin0 -> 73945 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/cisco_high_availability.pdfbin0 -> 102038 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/cluster_technologies.pdfbin0 -> 202380 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/clustering_failover.pdfbin0 -> 215775 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/external_locking.pdfbin0 -> 159935 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/hachap2.pdfbin0 -> 281710 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/heartbeat_sc_pap.pdfbin0 -> 87380 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/iax_sip_comp.pdfbin0 -> 382025 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdfbin0 -> 95097 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdfbin0 -> 95097 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/linuxsutra_ Howto MySQL DRBD HA.pdfbin0 -> 82953 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/literatur.txt2
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0601.pdfbin0 -> 2696620 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0702.pdfbin0 -> 2452555 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/p78-fox.pdfbin0 -> 2424885 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/redhat_gfs.pdfbin0 -> 209763 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner00.ps.gzbin0 -> 235901 bytes
-rw-r--r--Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps30395
73 files changed, 96486 insertions, 0 deletions
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/FSV-4PFS-Datasheet.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/FSV-4PFS-Datasheet.pdf
new file mode 100644
index 0000000..371aab7
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/FSV-4PFS-Datasheet.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/HA_Whitepaper.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/HA_Whitepaper.pdf
new file mode 100644
index 0000000..a69d5b5
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/HA_Whitepaper.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/ISDNguard_en.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/ISDNguard_en.pdf
new file mode 100644
index 0000000..d94aa9b
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/ISDNguard_en.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/Trixbox_FB2_Heartbeat_Tutorial.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/Trixbox_FB2_Heartbeat_Tutorial.pdf
new file mode 100644
index 0000000..375c255
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/Trixbox_FB2_Heartbeat_Tutorial.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/berofos.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/berofos.pdf
new file mode 100644
index 0000000..76f25e8
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/berofos.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/fb2_data_sheet.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/fb2_data_sheet.pdf
new file mode 100644
index 0000000..7e1bd68
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/fb2_data_sheet.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/foneBRIDGE2%20Quick%20Install%20Guide%20v.1.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/foneBRIDGE2%20Quick%20Install%20Guide%20v.1.pdf
new file mode 100644
index 0000000..bd6ad5a
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/foneBRIDGE2%20Quick%20Install%20Guide%20v.1.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/isdn_guard_installation_guide.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/isdn_guard_installation_guide.pdf
new file mode 100644
index 0000000..5182f6e
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/isdn_guard_installation_guide.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/pls_a.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/pls_a.pdf
new file mode 100644
index 0000000..7162cd7
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Fail Over Switches/pls_a.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 1.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 1.pdf
new file mode 100644
index 0000000..8fd3f0e
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 1.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 2.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 2.pdf
new file mode 100644
index 0000000..b98a3bf
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 2.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 3.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 3.pdf
new file mode 100644
index 0000000..59e9d9b
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 3.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 4.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 4.pdf
new file mode 100644
index 0000000..0943e0c
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 4.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 5.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 5.pdf
new file mode 100644
index 0000000..2476b4d
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 5.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 6.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 6.pdf
new file mode 100644
index 0000000..b23b899
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 6.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 7.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 7.pdf
new file mode 100644
index 0000000..d5a60e6
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 7.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 8.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 8.pdf
new file mode 100644
index 0000000..18d29ee
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/How To Set Up A Load-Balanced MySQL Cluster 8.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Juel_4154_Riedel.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Juel_4154_Riedel.pdf
new file mode 100644
index 0000000..02e8fbe
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Juel_4154_Riedel.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf
new file mode 100644
index 0000000..fbdbb47
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf
new file mode 100644
index 0000000..fbdbb47
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Linux-HA-Cluster mit Heartbeat und DRBD « Linux-Magazin Online.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Mark's IT Blog_ MySQL 5 High Availability with DRBD 8 and Hea...pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Mark's IT Blog_ MySQL 5 High Availability with DRBD 8 and Hea...pdf
new file mode 100644
index 0000000..a06ce23
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Mark's IT Blog_ MySQL 5 High Availability with DRBD 8 and Hea...pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MultiportRepeater_Brochure.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MultiportRepeater_Brochure.pdf
new file mode 100644
index 0000000..4a49781
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MultiportRepeater_Brochure.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MySQL AB __ MySQL 5.1 Reference Manual __ 14 High Availabilit...pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MySQL AB __ MySQL 5.1 Reference Manual __ 14 High Availabilit...pdf
new file mode 100644
index 0000000..ef691c9
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/MySQL AB __ MySQL 5.1 Reference Manual __ 14 High Availabilit...pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/NGNSwitch_Dallas_10262006.pdf David Zimmer.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/NGNSwitch_Dallas_10262006.pdf David Zimmer.pdf
new file mode 100644
index 0000000..b80a002
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/NGNSwitch_Dallas_10262006.pdf David Zimmer.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/AMA-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/AMA-2007.pdf
new file mode 100644
index 0000000..3471071
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/AMA-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/BAD-2001.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/BAD-2001.pdf
new file mode 100644
index 0000000..f8de9f7
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/BAD-2001.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/CLU-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/CLU-2007.pdf
new file mode 100644
index 0000000..807c9b0
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/CLU-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/DAV-2006.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/DAV-2006.pdf
new file mode 100644
index 0000000..31d2dc8
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/DAV-2006.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ELL-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ELL-2007.pdf
new file mode 100644
index 0000000..c1066bd
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ELL-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/FAQ-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/FAQ-2007.pdf
new file mode 100644
index 0000000..4d03ed5
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/FAQ-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/GAB-2004.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/GAB-2004.pdf
new file mode 100644
index 0000000..3a727ea
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/GAB-2004.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/LIN-2005.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/LIN-2005.pdf
new file mode 100644
index 0000000..f43e03d
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/LIN-2005.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/MIL-1997.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/MIL-1997.pdf
new file mode 100644
index 0000000..d7aa0dc
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/MIL-1997.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/REI-2000.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/REI-2000.pdf
new file mode 100644
index 0000000..e49ed2b
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/REI-2000.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/RIC-2006.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/RIC-2006.pdf
new file mode 100644
index 0000000..b71f44cf
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/RIC-2006.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2000.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2000.pdf
new file mode 100644
index 0000000..59b677c
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2000.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2007.pdf
new file mode 100644
index 0000000..43b1a14
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ROB-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SAT-2004.txt b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SAT-2004.txt
new file mode 100644
index 0000000..2041f93
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SAT-2004.txt
@@ -0,0 +1,14395 @@
+
+
+
+
+
+
+Network Working Group J. Satran
+Request for Comments: 3720 K. Meth
+Category: Standards Track IBM
+ C. Sapuntzakis
+ Cisco Systems
+ M. Chadalapaka
+ Hewlett-Packard Co.
+ E. Zeidner
+ IBM
+ April 2004
+
+
+ Internet Small Computer Systems Interface (iSCSI)
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+Abstract
+
+ This document describes a transport protocol for Internet Small
+ Computer Systems Interface (iSCSI) that works on top of TCP. The
+ iSCSI protocol aims to be fully compliant with the standardized SCSI
+ architecture model.
+
+ SCSI is a popular family of protocols that enable systems to
+ communicate with I/O devices, especially storage devices. SCSI
+ protocols are request/response application protocols with a common
+ standardized architecture model and basic command set, as well as
+ standardized command sets for different device classes (disks, tapes,
+ media-changers etc.).
+
+ As system interconnects move from the classical bus structure to a
+ network structure, SCSI has to be mapped to network transport
+ protocols. IP networks now meet the performance requirements of fast
+ system interconnects and as such are good candidates to "carry" SCSI.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 1]
+
+RFC 3720 iSCSI April 2004
+
+
+Table of Contents
+
+ 1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . 9
+ 2. Definitions and Acronyms. . . . . . . . . . . . . . . . . . . 10
+ 2.1. Definitions. . . . . . . . . . . . . . . . . . . . . . 10
+ 2.2. Acronyms . . . . . . . . . . . . . . . . . . . . . . . 14
+ 2.3. Conventions. . . . . . . . . . . . . . . . . . . . . . 16
+ 2.3.1. Word Rule. . . . . . . . . . . . . . . . . . 16
+ 2.3.2. Half-Word Rule . . . . . . . . . . . . . . . 17
+ 2.3.3. Byte Rule. . . . . . . . . . . . . . . . . . 17
+ 3. Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . 17
+ 3.1. SCSI Concepts. . . . . . . . . . . . . . . . . . . . . 17
+ 3.2. iSCSI Concepts and Functional Overview . . . . . . . . 18
+ 3.2.1. Layers and Sessions. . . . . . . . . . . . . 19
+ 3.2.2. Ordering and iSCSI Numbering . . . . . . . . 19
+ 3.2.2.1. Command Numbering and
+ Acknowledging . . . . . . . . . . 20
+ 3.2.2.2. Response/Status Numbering and
+ Acknowledging . . . . . . . . . . 23
+ 3.2.2.3. Data Sequencing . . . . . . . . 24
+ 3.2.3. iSCSI Login. . . . . . . . . . . . . . . . . 24
+ 3.2.4. iSCSI Full Feature Phase . . . . . . . . . . 25
+ 3.2.4.1. Command Connection Allegiance . . 26
+ 3.2.4.2. Data Transfer Overview. . . . . . 27
+ 3.2.4.3. Tags and Integrity Checks . . . . 28
+ 3.2.4.4. Task Management . . . . . . . . . 28
+ 3.2.5. iSCSI Connection Termination . . . . . . . . 29
+ 3.2.6. iSCSI Names. . . . . . . . . . . . . . . . . 29
+ 3.2.6.1. iSCSI Name Properties . . . . . . 30
+ 3.2.6.2. iSCSI Name Encoding . . . . . . . 31
+ 3.2.6.3. iSCSI Name Structure. . . . . . . 32
+ 3.2.6.3.1. Type "iqn." (iSCSI
+ Qualified Name) . . . 32
+ 3.2.6.3.2. Type "eui." (IEEE
+ EUI-64 format). . . . 34
+ 3.2.7. Persistent State . . . . . . . . . . . . . . 34
+ 3.2.8. Message Synchronization and Steering . . . . 35
+ 3.2.8.1. Sync/Steering and iSCSI PDU
+ Length . . . . . . . . . . . . . 36
+ 3.3. iSCSI Session Types. . . . . . . . . . . . . . . . . . 36
+ 3.4. SCSI to iSCSI Concepts Mapping Model . . . . . . . . . 37
+ 3.4.1. iSCSI Architecture Model . . . . . . . . . . 37
+ 3.4.2. SCSI Architecture Model. . . . . . . . . . . 39
+ 3.4.3. Consequences of the Model. . . . . . . . . . 41
+ 3.4.3.1. I_T Nexus State . . . . . . . . . 42
+ 3.5. Request/Response Summary . . . . . . . . . . . . . . . 42
+ 3.5.1. Request/Response Types Carrying SCSI Payload 43
+ 3.5.1.1. SCSI-Command . . . . . . . . . . 43
+
+
+
+Satran, et al. Standards Track [Page 2]
+
+RFC 3720 iSCSI April 2004
+
+
+ 3.5.1.2. SCSI-Response . . . . . . . . . 43
+ 3.5.1.3. Task Management Function Request. 44
+ 3.5.1.4. Task Management Function Response 44
+ 3.5.1.5. SCSI Data-Out and SCSI Data-In. . 44
+ 3.5.1.6. Ready To Transfer (R2T) . . . . . 45
+ 3.5.2. Requests/Responses carrying SCSI and iSCSI
+ Payload. . . . . . . . . . . . . . . . . . . 46
+ 3.5.2.1. Asynchronous Message. . . . . . . 46
+ 3.5.3. Requests/Responses Carrying iSCSI Only
+ Payload. . . . . . . . . . . . . . . . . . . 46
+ 3.5.3.1. Text Request and Text Response. . 46
+ 3.5.3.2. Login Request and Login Response. 47
+ 3.5.3.3. Logout Request and Response . . . 47
+ 3.5.3.4. SNACK Request . . . . . . . . . . 48
+ 3.5.3.5. Reject. . . . . . . . . . . . . . 48
+ 3.5.3.6. NOP-Out Request and NOP-In
+ Response . . . . . . . . . . . . 48
+ 4. SCSI Mode Parameters for iSCSI. . . . . . . . . . . . . . . . 48
+ 5. Login and Full Feature Phase Negotiation. . . . . . . . . . . 48
+ 5.1. Text Format. . . . . . . . . . . . . . . . . . . . . . 50
+ 5.2. Text Mode Negotiation. . . . . . . . . . . . . . . . . 53
+ 5.2.1. List negotiations. . . . . . . . . . . . . . 56
+ 5.2.2. Simple-value Negotiations. . . . . . . . . . 56
+ 5.3. Login Phase. . . . . . . . . . . . . . . . . . . . . . 57
+ 5.3.1. Login Phase Start. . . . . . . . . . . . . . 60
+ 5.3.2. iSCSI Security Negotiation . . . . . . . . . 62
+ 5.3.3. Operational Parameter Negotiation During
+ the Login Phase. . . . . . . . . . . . . . . 63
+ 5.3.4. Connection Reinstatement . . . . . . . . . . 64
+ 5.3.5. Session Reinstatement, Closure, and Timeout. 64
+ 5 5.3.5.1. Loss of Nexus
+ Notification. . . . . 65
+ 5.3.6. Session Continuation and Failure . . . . . . 65
+ 5.4. Operational Parameter Negotiation Outside the Login
+ Phase. . . . . . . . . . . . . . . . . . . . . . . . . 66
+ 6. iSCSI Error Handling and Recovery . . . . . . . . . . . . . . 67
+ 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . 67
+ 6.1.1. Background . . . . . . . . . . . . . . . . . 67
+ 6.1.2. Goals. . . . . . . . . . . . . . . . . . . . 67
+ 6.1.3. Protocol Features and State Expectations . . 68
+ 6.1.4. Recovery Classes . . . . . . . . . . . . . . 69
+ 6.1.4.1. Recovery Within-command . . . . . 69
+ 6.1.4.2. Recovery Within-connection. . . . 70
+ 6.1.4.3. Connection Recovery . . . . . . . 71
+ 6.1.4.4. Session Recovery. . . . . . . . . 72
+ 6.1.5. Error Recovery Hierarchy . . . . . . . . . . . 72
+ 6.2. Retry and Reassign in Recovery . . . . . . . . . . . . 74
+ 6.2.1. Usage of Retry . . . . . . . . . . . . . . . 74
+
+
+
+Satran, et al. Standards Track [Page 3]
+
+RFC 3720 iSCSI April 2004
+
+
+ 6.2.2. Allegiance Reassignment. . . . . . . . . . . 75
+ 6.3. Usage Of Reject PDU in Recovery. . . . . . . . . . . . 76
+ 6.4. Connection Timeout Management. . . . . . . . . . . . . 76
+ 6.4.1. Timeouts on Transport Exception Events . . . 77
+ 6.4.2. Timeouts on Planned Decommissioning. . . . . 77
+ 6.5. Implicit Termination of Tasks. . . . . . . . . . . . . 77
+ 6.6. Format Errors. . . . . . . . . . . . . . . . . . . . . 78
+ 6.7. Digest Errors. . . . . . . . . . . . . . . . . . . . . 78
+ 6.8. Sequence Errors. . . . . . . . . . . . . . . . . . . . 80
+ 6.9. SCSI Timeouts. . . . . . . . . . . . . . . . . . . . . 81
+ 6.10. Negotiation Failures . . . . . . . . . . . . . . . . . 81
+ 6.11. Protocol Errors. . . . . . . . . . . . . . . . . . . . 82
+ 6.12. Connection Failures. . . . . . . . . . . . . . . . . . 82
+ 6.13. Session Errors . . . . . . . . . . . . . . . . . . . . 83
+ 7. State Transitions . . . . . . . . . . . . . . . . . . . . . . 84
+ 7.1. Standard Connection State Diagrams . . . . . . . . . . 84
+ 7.1.1. State Descriptions for Initiators and
+ Targets. . . . . . . . . . . . . . . . . . . 84
+ 7.1.2. State Transition Descriptions for Initiators
+ and Targets. . . . . . . . . . . . . . . . . 85
+ 7.1.3. Standard Connection State Diagram for an
+ Initiator. . . . . . . . . . . . . . . . . . 88
+ 7.1.4. Standard Connection State Diagram for a
+ Target . . . . . . . . . . . . . . . . . . . 90
+ 7.2. Connection Cleanup State Diagram for Initiators and
+ Targets. . . . . . . . . . . . . . . . . . . . . . . . 92
+ 7.2.1. State Descriptions for Initiators and
+ Targets. . . . . . . . . . . . . . . . . . . 94
+ 7.2.2. State Transition Descriptions for Initiators
+ and Targets. . . . . . . . . . . . . . . . . 94
+ 7.3. Session State Diagrams . . . . . . . . . . . . . . . . 95
+ 7.3.1. Session State Diagram for an Initiator . . . 95
+ 7.3.2. Session State Diagram for a Target . . . . . 96
+ 7.3.3. State Descriptions for Initiators and
+ Targets. . . . . . . . . . . . . . . . . . . 97
+ 7.3.4. State Transition Descriptions for Initiators
+ and Targets. . . . . . . . . . . . . . . . . 98
+ 8. Security Considerations . . . . . . . . . . . . . . . . . . . 99
+ 8.1. iSCSI Security Mechanisms. . . . . . . . . . . . . . . 100
+ 8.2. In-band Initiator-Target Authentication. . . . . . . . 100
+ 8.2.1. CHAP Considerations. . . . . . . . . . . . . 101
+ 8.2.2. SRP Considerations . . . . . . . . . . . . . 103
+ 8.3. IPsec. . . . . . . . . . . . . . . . . . . . . . . . . 104
+ 8.3.1. Data Integrity and Authentication. . . . . . 104
+ 8.3.2. Confidentiality. . . . . . . . . . . . . . . 105
+ 8.3.3. Policy, Security Associations, and
+ Cryptographic Key Management . . . . . . . . 105
+ 9. Notes to Implementers . . . . . . . . . . . . . . . . . . . . 106
+
+
+
+Satran, et al. Standards Track [Page 4]
+
+RFC 3720 iSCSI April 2004
+
+
+ 9.1. Multiple Network Adapters. . . . . . . . . . . . . . . 106
+ 9.1.1. Conservative Reuse of ISIDs. . . . . . . . . 107
+ 9.1.2. iSCSI Name, ISID, and TPGT Use . . . . . . . 107
+ 9.2. Autosense and Auto Contingent Allegiance (ACA) . . . . 109
+ 9.3. iSCSI Timeouts . . . . . . . . . . . . . . . . . . . . 109
+ 9.4. Command Retry and Cleaning Old Command Instances . . . 110
+ 9.5. Synch and Steering Layer and Performance . . . . . . . 110
+ 9.6. Considerations for State-dependent Devices and
+ Long-lasting SCSI Operations . . . . . . . . . . . . . 111
+ 9.6.1. Determining the Proper ErrorRecoveryLevel. . 112
+ 10. iSCSI PDU Formats . . . . . . . . . . . . . . . . . . . . . . 112
+ 10.1. iSCSI PDU Length and Padding . . . . . . . . . . . . . 113
+ 10.2. PDU Template, Header, and Opcodes. . . . . . . . . . . 113
+ 10.2.1. Basic Header Segment (BHS) . . . . . . . . . 114
+ 10.2.1.1. I . . . . . . . . . . . . . . . . 115
+ 10.2.1.2. Opcode. . . . . . . . . . . . . . 115
+ 10.2.1.3. Final (F) bit . . . . . . . . . . 116
+ 10.2.1.4. Opcode-specific Fields. . . . . . 116
+ 10.2.1.5. TotalAHSLength. . . . . . . . . . 116
+ 10.2.1.6. DataSegmentLength . . . . . . . . 116
+ 10.2.1.7. LUN . . . . . . . . . . . . . . . 116
+ 10.2.1.8. Initiator Task Tag. . . . . . . . 117
+ 10.2.2. Additional Header Segment (AHS) . . . . . . . 117
+ 10.2.2.1. AHSType . . . . . . . . . . . . . 117
+ 10.2.2.2. AHSLength . . . . . . . . . . . . 117
+ 10.2.2.3. Extended CDB AHS. . . . . . . . . 118
+ 10.2.2.4. Bidirectional Expected Read-Data
+ Length AHS. . . . . . . . . . . . 118
+ 10.2.3. Header Digest and Data Digest. . . . . . . . 118
+ 10.2.4. Data Segment . . . . . . . . . . . . . . . . 119
+ 10.3. SCSI Command . . . . . . . . . . . . . . . . . . . . . 119
+ 10.3.1. Flags and Task Attributes (byte 1) . . . . . 120
+ 10.3.2. CmdSN - Command Sequence Number. . . . . . . 120
+ 10.3.3. ExpStatSN. . . . . . . . . . . . . . . . . . 120
+ 10.3.4. Expected Data Transfer Length. . . . . . . . 121
+ 10.3.5. CDB - SCSI Command Descriptor Block. . . . . 121
+ 10.3.6. Data Segment - Command Data. . . . . . . . . 121
+ 10.4. SCSI Response. . . . . . . . . . . . . . . . . . . . . 122
+ 10.4.1. Flags (byte 1) . . . . . . . . . . . . . . . 123
+ 10.4.2. Status . . . . . . . . . . . . . . . . . . . 123
+ 10.4.3. Response . . . . . . . . . . . . . . . . . . 124
+ 10.4.4. SNACK Tag. . . . . . . . . . . . . . . . . . 125
+ 10.4.5. Residual Count . . . . . . . . . . . . . . . 125
+ 10.4.6. Bidirectional Read Residual Count. . . . . . 125
+ 10.4.7. Data Segment - Sense and Response Data
+ Segment. . . . . . . . . . . . . . . . . . . 125
+ 10.4.7.1. SenseLength . . . . . . . . . . . 126
+ 10.4.7.2. Sense Data. . . . . . . . . . . . 126
+
+
+
+Satran, et al. Standards Track [Page 5]
+
+RFC 3720 iSCSI April 2004
+
+
+ 10.4.8. ExpDataSN. . . . . . . . . . . . . . . . . . 127
+ 10.4.9. StatSN - Status Sequence Number. . . . . . . 127
+ 10.4.10. ExpCmdSN - Next Expected CmdSN from this
+ Initiator. . . . . . . . . . . . . . . . . . 128
+ 10.4.11. MaxCmdSN - Maximum CmdSN from this Initiator 128
+ 10.5. Task Management Function Request . . . . . . . . . . . 129
+ 10.5.1. Function . . . . . . . . . . . . . . . . . . 129
+ 10.5.2. TotalAHSLength and DataSegmentLength . . . . 132
+ 10.5.3. LUN. . . . . . . . . . . . . . . . . . . . . 132
+ 10.5.4. Referenced Task Tag. . . . . . . . . . . . . 132
+ 10.5.5. RefCmdSN . . . . . . . . . . . . . . . . . . 132
+ 10.5.6. ExpDataSN. . . . . . . . . . . . . . . . . . 133
+ 10.6. Task Management Function Response. . . . . . . . . . . 134
+ 10.6.1. Response . . . . . . . . . . . . . . . . . . 134
+ 10.6.2. Task Management Actions on Task Sets . . . . 136
+ 10.6.3. TotalAHSLength and DataSegmentLength . . . . 137
+ 10.7. SCSI Data-Out & SCSI Data-In . . . . . . . . . . . . . 137
+ 10.7.1. F (Final) Bit. . . . . . . . . . . . . . . . 139
+ 10.7.2. A (Acknowledge) Bit. . . . . . . . . . . . . 139
+ 10.7.3. Flags (byte 1) . . . . . . . . . . . . . . . 140
+ 10.7.4. Target Transfer Tag and LUN. . . . . . . . . 140
+ 10.7.5. DataSN . . . . . . . . . . . . . . . . . . . 141
+ 10.7.6. Buffer Offset. . . . . . . . . . . . . . . . 141
+ 10.7.7. DataSegmentLength. . . . . . . . . . . . . . 141
+ 10.8. Ready To Transfer (R2T). . . . . . . . . . . . . . . . 142
+ 10.8.1. TotalAHSLength and DataSegmentLength . . . . 143
+ 10.8.2. R2TSN. . . . . . . . . . . . . . . . . . . . 143
+ 10.8.3. StatSN . . . . . . . . . . . . . . . . . . . 144
+ 10.8.4. Desired Data Transfer Length and Buffer
+ Offset . . . . . . . . . . . . . . . . . . . 144
+ 10.8.5. Target Transfer Tag. . . . . . . . . . . . . 144
+ 10.9. Asynchronous Message . . . . . . . . . . . . . . . . . 145
+ 10.9.1. AsyncEvent . . . . . . . . . . . . . . . . . 146
+ 10.9.2. AsyncVCode . . . . . . . . . . . . . . . . . 147
+ 10.9.3. LUN. . . . . . . . . . . . . . . . . . . . . 147
+ 10.9.4. Sense Data and iSCSI Event Data. . . . . . . 148
+ 10.9.4.1. SenseLength . . . . . . . . . . . 148
+ 10.10. Text Request . . . . . . . . . . . . . . . . . . . . . 149
+ 10.10.1. F (Final) Bit. . . . . . . . . . . . . . . . 150
+ 10.10.2. C (Continue) Bit . . . . . . . . . . . . . . 150
+ 10.10.3. Initiator Task Tag . . . . . . . . . . . . . 150
+ 10.10.4. Target Transfer Tag. . . . . . . . . . . . . 150
+ 10.10.5. Text . . . . . . . . . . . . . . . . . . . . 151
+ 10.11. Text Response. . . . . . . . . . . . . . . . . . . . . 152
+ 10.11.1. F (Final) Bit. . . . . . . . . . . . . . . . 152
+ 10.11.2. C (Continue) Bit . . . . . . . . . . . . . . 153
+ 10.11.3. Initiator Task Tag . . . . . . . . . . . . . 153
+ 10.11.4. Target Transfer Tag. . . . . . . . . . . . . 153
+
+
+
+Satran, et al. Standards Track [Page 6]
+
+RFC 3720 iSCSI April 2004
+
+
+ 10.11.5. StatSN . . . . . . . . . . . . . . . . . . . 154
+ 10.11.6. Text Response Data . . . . . . . . . . . . . 154
+ 10.12. Login Request. . . . . . . . . . . . . . . . . . . . . 154
+ 10.12.1. T (Transit) Bit. . . . . . . . . . . . . . . 155
+ 10.12.2. C (Continue) Bit . . . . . . . . . . . . . . 155
+ 10.12.3. CSG and NSG. . . . . . . . . . . . . . . . . 156
+ 10.12.4. Version. . . . . . . . . . . . . . . . . . . 156
+ 10.12.4.1. Version-max. . . . . . . . . . . 156
+ 10.12.4.2. Version-min. . . . . . . . . . . 156
+ 10.12.5. ISID . . . . . . . . . . . . . . . . . . . . 157
+ 10.12.6. TSIH . . . . . . . . . . . . . . . . . . . . 158
+ 10.12.7. Connection ID - CID. . . . . . . . . . . . . 158
+ 10.12.8. CmdSN. . . . . . . . . . . . . . . . . . . . 159
+ 10.12.9. ExpStatSN. . . . . . . . . . . . . . . . . . 159
+ 10.12.10. Login Parameters . . . . . . . . . . . . . . 159
+ 10.13. Login Response . . . . . . . . . . . . . . . . . . . . 160
+ 10.13.1. Version-max. . . . . . . . . . . . . . . . . 160
+ 10.13.2. Version-active . . . . . . . . . . . . . . . 161
+ 10.13.3. TSIH . . . . . . . . . . . . . . . . . . . . 161
+ 10.13.4. StatSN . . . . . . . . . . . . . . . . . . . 161
+ 10.13.5. Status-Class and Status-Detail . . . . . . . 161
+ 10.13.6. T (Transit) Bit. . . . . . . . . . . . . . . 164
+ 10.13.7. C (Continue) Bit . . . . . . . . . . . . . . 164
+ 10.13.8. Login Parameters . . . . . . . . . . . . . . 164
+ 10.14. Logout Request . . . . . . . . . . . . . . . . . . . . 165
+ 10.14.1. Reason Code. . . . . . . . . . . . . . . . . 167
+ 10.14.2. TotalAHSLength and DataSegmentLength . . . . 168
+ 10.14.3. CID. . . . . . . . . . . . . . . . . . . . . 168
+ 10.14.4. ExpStatSN. . . . . . . . . . . . . . . . . . 168
+ 10.14.5. Implicit termination of tasks. . . . . . . . 168
+ 10.15. Logout Response. . . . . . . . . . . . . . . . . . . . 169
+ 10.15.1. Response . . . . . . . . . . . . . . . . . . 170
+ 10.15.2. TotalAHSLength and DataSegmentLength . . . . 170
+ 10.15.3. Time2Wait. . . . . . . . . . . . . . . . . . 170
+ 10.15.4. Time2Retain. . . . . . . . . . . . . . . . . 170
+ 10.16. SNACK Request. . . . . . . . . . . . . . . . . . . . . 171
+ 10.16.1. Type . . . . . . . . . . . . . . . . . . . . 172
+ 10.16.2. Data Acknowledgement . . . . . . . . . . . . 173
+ 10.16.3. Resegmentation . . . . . . . . . . . . . . . 173
+ 10.16.4. Initiator Task Tag . . . . . . . . . . . . . 174
+ 10.16.5. Target Transfer Tag or SNACK Tag . . . . . . 174
+ 10.16.6. BegRun . . . . . . . . . . . . . . . . . . . 174
+ 10.16.7. RunLength. . . . . . . . . . . . . . . . . . 174
+ 10.17. Reject . . . . . . . . . . . . . . . . . . . . . . . . 175
+ 10.17.1. Reason . . . . . . . . . . . . . . . . . . . 176
+ 10.17.2. DataSN/R2TSN . . . . . . . . . . . . . . . . 177
+ 10.17.3. StatSN, ExpCmdSN and MaxCmdSN. . . . . . . . 177
+ 10.17.4. Complete Header of Bad PDU . . . . . . . . . 177
+
+
+
+Satran, et al. Standards Track [Page 7]
+
+RFC 3720 iSCSI April 2004
+
+
+ 10.18. NOP-Out. . . . . . . . . . . . . . . . . . . . . . . . 178
+ 10.18.1. Initiator Task Tag . . . . . . . . . . . . . 179
+ 10.18.2. Target Transfer Tag. . . . . . . . . . . . . 179
+ 10.18.3. Ping Data. . . . . . . . . . . . . . . . . . 179
+ 10.19. NOP-In . . . . . . . . . . . . . . . . . . . . . . . . 180
+ 10.19.1. Target Transfer Tag. . . . . . . . . . . . . 181
+ 10.19.2. StatSN . . . . . . . . . . . . . . . . . . . 181
+ 10.19.3. LUN. . . . . . . . . . . . . . . . . . . . . 181
+ 11. iSCSI Security Text Keys and Authentication Methods . . . . . 181
+ 11.1. AuthMethod . . . . . . . . . . . . . . . . . . . . . . 182
+ 11.1.1. Kerberos . . . . . . . . . . . . . . . . . . 184
+ 11.1.2. Simple Public-Key Mechanism (SPKM) . . . . . 184
+ 11.1.3. Secure Remote Password (SRP) . . . . . . . . 185
+ 11.1.4. Challenge Handshake Authentication Protocol
+ (CHAP) . . . . . . . . . . . . . . . . . . . 186
+ 12. Login/Text Operational Text Keys. . . . . . . . . . . . . . . 187
+ 12.1. HeaderDigest and DataDigest. . . . . . . . . . . . . . 188
+ 12.2. MaxConnections . . . . . . . . . . . . . . . . . . . . 190
+ 12.3. SendTargets. . . . . . . . . . . . . . . . . . . . . . 191
+ 12.4. TargetName . . . . . . . . . . . . . . . . . . . . . . 191
+ 12.5. InitiatorName. . . . . . . . . . . . . . . . . . . . . 192
+ 12.6. TargetAlias. . . . . . . . . . . . . . . . . . . . . . 192
+ 12.7. InitiatorAlias . . . . . . . . . . . . . . . . . . . . 193
+ 12.8. TargetAddress. . . . . . . . . . . . . . . . . . . . . 193
+ 12.9. TargetPortalGroupTag . . . . . . . . . . . . . . . . . 194
+ 12.10. InitialR2T . . . . . . . . . . . . . . . . . . . . . . 194
+ 12.11. ImmediateData. . . . . . . . . . . . . . . . . . . . . 195
+ 12.12. MaxRecvDataSegmentLength . . . . . . . . . . . . . . . 196
+ 12.13. MaxBurstLength . . . . . . . . . . . . . . . . . . . . 196
+ 12.14. FirstBurstLength . . . . . . . . . . . . . . . . . . . 197
+ 12.15. DefaultTime2Wait . . . . . . . . . . . . . . . . . . . 197
+ 12.16. DefaultTime2Retain . . . . . . . . . . . . . . . . . . 198
+ 12.17. MaxOutstandingR2T. . . . . . . . . . . . . . . . . . . 198
+ 12.18. DataPDUInOrder . . . . . . . . . . . . . . . . . . . . 198
+ 12.19. DataSequenceInOrder. . . . . . . . . . . . . . . . . . 199
+ 12.20. ErrorRecoveryLevel . . . . . . . . . . . . . . . . . . 199
+ 12.21. SessionType. . . . . . . . . . . . . . . . . . . . . . 200
+ 12.22. The Private or Public Extension Key Format . . . . . . 200
+ 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 201
+ 13.1. Naming Requirements. . . . . . . . . . . . . . . . . . 203
+ 13.2. Mechanism Specification Requirements . . . . . . . . . 203
+ 13.3. Publication Requirements . . . . . . . . . . . . . . . 203
+ 13.4. Security Requirements. . . . . . . . . . . . . . . . . 203
+ 13.5. Registration Procedure . . . . . . . . . . . . . . . . 204
+ 13.5.1. Present the iSCSI extension item to the
+ Community. . . . . . . . . . . . . . . . . . 204
+ 13.5.2. iSCSI extension item review and IESG
+ approval . . . . . . . . . . . . . . . . . . 204
+
+
+
+Satran, et al. Standards Track [Page 8]
+
+RFC 3720 iSCSI April 2004
+
+
+ 13.5.3. IANA Registration. . . . . . . . . . . . . . 204
+ 13.5.4. Standard iSCSI extension item-label format . 204
+ 13.6. IANA Procedures for Registering iSCSI extension items. 205
+ References. . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
+ Appendix A. Sync and Steering with Fixed Interval Markers . . . . 209
+ A.1. Markers At Fixed Intervals . . . . . . . . . . . . . . 209
+ A.2. Initial Marker-less Interval . . . . . . . . . . . . . 210
+ A.3. Negotiation. . . . . . . . . . . . . . . . . . . . . . 210
+ A.3.1. OFMarker, IFMarker . . . . . . . . . . . . . 210
+ A.3.2. OFMarkInt, IFMarkInt . . . . . . . . . . . . 211
+ Appendix B. Examples . . . . . . . . . . . . . . . . . . . . . . 212
+ B.1. Read Operation Example . . . . . . . . . . . . . . . . 212
+ B.2. Write Operation Example. . . . . . . . . . . . . . . . 213
+ B.3. R2TSN/DataSN Use Examples. . . . . . . . . . . . . . . 214
+ B.4. CRC Examples . . . . . . . . . . . . . . . . . . . . . 217
+ Appendix C. Login Phase Examples . . . . . . . . . . . . . . . . 219
+ Appendix D. SendTargets Operation. . . . . . . . . . . . . . . . 229
+ Appendix E. Algorithmic Presentation of Error Recovery Classes . 233
+ E.1. General Data Structure and Procedure Description . . . 233
+ E.2. Within-command Error Recovery Algorithms . . . . . . . 234
+ E.2.1. Procedure Descriptions . . . . . . . . . . . 234
+ E.2.2. Initiator Algorithms . . . . . . . . . . . . 235
+ E.2.3. Target Algorithms. . . . . . . . . . . . . . 237
+ E.3. Within-connection Recovery Algorithms. . . . . . . . . 240
+ E.3.1. Procedure Descriptions . . . . . . . . . . . 240
+ E.3.2. Initiator Algorithms . . . . . . . . . . . . 241
+ E.3.3. Target Algorithms. . . . . . . . . . . . . . 243
+ E.4. Connection Recovery Algorithms . . . . . . . . . . . . 243
+ E.4.1. Procedure Descriptions . . . . . . . . . . . 243
+ E.4.2. Initiator Algorithms . . . . . . . . . . . . 244
+ E.4.3. Target Algorithms. . . . . . . . . . . . . . 246
+ Appendix F. Clearing Effects of Various Events on Targets. . . . 249
+ F.1. Clearing Effects on iSCSI Objects. . . . . . . . . . . 249
+ F.2. Clearing Effects on SCSI Objects . . . . . . . . . . . 253
+ Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . . . 254
+ Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . 256
+ Full Copyright Statement. . . . . . . . . . . . . . . . . . . . . 257
+
+1. Introduction
+
+ The Small Computer Systems Interface (SCSI) is a popular family of
+ protocols for communicating with I/O devices, especially storage
+ devices. SCSI is a client-server architecture. Clients of a SCSI
+ interface are called "initiators". Initiators issue SCSI "commands"
+ to request services from components, logical units of a server known
+ as a "target". A "SCSI transport" maps the client-server SCSI
+ protocol to a specific interconnect. An Initiator is one endpoint of
+ a SCSI transport and a target is the other endpoint.
+
+
+
+Satran, et al. Standards Track [Page 9]
+
+RFC 3720 iSCSI April 2004
+
+
+ The SCSI protocol has been mapped over various transports, including
+ Parallel SCSI, IPI, IEEE-1394 (firewire) and Fibre Channel. These
+ transports are I/O specific and have limited distance capabilities.
+
+ The iSCSI protocol defined in this document describes a means of
+ transporting SCSI packets over TCP/IP (see [RFC791], [RFC793],
+ [RFC1035], [RFC1122]), providing for an interoperable solution which
+ can take advantage of existing Internet infrastructure, Internet
+ management facilities, and address distance limitations.
+
+2. Definitions and Acronyms
+
+2.1. Definitions
+
+ - Alias: An alias string can also be associated with an iSCSI Node.
+ The alias allows an organization to associate a user-friendly
+ string with the iSCSI Name. However, the alias string is not a
+ substitute for the iSCSI Name.
+
+ - CID (Connection ID): Connections within a session are identified by
+ a connection ID. It is a unique ID for this connection within the
+ session for the initiator. It is generated by the initiator and
+ presented to the target during login requests and during logouts
+ that close connections.
+
+ - Connection: A connection is a TCP connection. Communication
+ between the initiator and target occurs over one or more TCP
+ connections. The TCP connections carry control messages, SCSI
+ commands, parameters, and data within iSCSI Protocol Data Units
+ (iSCSI PDUs).
+
+ - iSCSI Device: A SCSI Device using an iSCSI service delivery
+ subsystem. Service Delivery Subsystem is defined by [SAM2] as a
+ transport mechanism for SCSI commands and responses.
+
+ - iSCSI Initiator Name: The iSCSI Initiator Name specifies the
+ worldwide unique name of the initiator.
+
+ - iSCSI Initiator Node: The "initiator". The word "initiator" has
+ been appropriately qualified as either a port or a device in the
+ rest of the document when the context is ambiguous. All
+ unqualified usages of "initiator" refer to an initiator port (or
+ device) depending on the context.
+
+ - iSCSI Layer: This layer builds/receives iSCSI PDUs and
+ relays/receives them to/from one or more TCP connections that form
+ an initiator-target "session".
+
+
+
+
+Satran, et al. Standards Track [Page 10]
+
+RFC 3720 iSCSI April 2004
+
+
+ - iSCSI Name: The name of an iSCSI initiator or iSCSI target.
+
+ - iSCSI Node: The iSCSI Node represents a single iSCSI initiator or
+ iSCSI target. There are one or more iSCSI Nodes within a Network
+ Entity. The iSCSI Node is accessible via one or more Network
+ Portals. An iSCSI Node is identified by its iSCSI Name. The
+ separation of the iSCSI Name from the addresses used by and for the
+ iSCSI Node allows multiple iSCSI Nodes to use the same address, and
+ the same iSCSI Node to use multiple addresses.
+
+ - iSCSI Target Name: The iSCSI Target Name specifies the worldwide
+ unique name of the target.
+
+ - iSCSI Target Node: The "target".
+
+ - iSCSI Task: An iSCSI task is an iSCSI request for which a response
+ is expected.
+
+ - iSCSI Transfer Direction: The iSCSI transfer direction is defined
+ with regard to the initiator. Outbound or outgoing transfers are
+ transfers from the initiator to the target, while inbound or
+ incoming transfers are from the target to the initiator.
+
+ - ISID: The initiator part of the Session Identifier. It is
+ explicitly specified by the initiator during Login.
+
+ - I_T nexus: According to [SAM2], the I_T nexus is a relationship
+ between a SCSI Initiator Port and a SCSI Target Port. For iSCSI,
+ this relationship is a session, defined as a relationship between
+ an iSCSI Initiator's end of the session (SCSI Initiator Port) and
+ the iSCSI Target's Portal Group. The I_T nexus can be identified
+ by the conjunction of the SCSI port names; that is, the I_T nexus
+ identifier is the tuple (iSCSI Initiator Name + ',i,'+ ISID, iSCSI
+ Target Name + ',t,'+ Portal Group Tag).
+
+ - Network Entity: The Network Entity represents a device or gateway
+ that is accessible from the IP network. A Network Entity must have
+ one or more Network Portals, each of which can be used to gain
+ access to the IP network by some iSCSI Nodes contained in that
+ Network Entity.
+
+ - Network Portal: The Network Portal is a component of a Network
+ Entity that has a TCP/IP network address and that may be used by an
+ iSCSI Node within that Network Entity for the connection(s) within
+ one of its iSCSI sessions. A Network Portal in an initiator is
+ identified by its IP address. A Network Portal in a target is
+ identified by its IP address and its listening TCP port.
+
+
+
+
+Satran, et al. Standards Track [Page 11]
+
+RFC 3720 iSCSI April 2004
+
+
+ - Originator: In a negotiation or exchange, the party that initiates
+ the negotiation or exchange.
+
+ - PDU (Protocol Data Unit): The initiator and target divide their
+ communications into messages. The term "iSCSI protocol data unit"
+ (iSCSI PDU) is used for these messages.
+
+ - Portal Groups: iSCSI supports multiple connections within the same
+ session; some implementations will have the ability to combine
+ connections in a session across multiple Network Portals. A Portal
+ Group defines a set of Network Portals within an iSCSI Network
+ Entity that collectively supports the capability of coordinating a
+ session with connections spanning these portals. Not all Network
+ Portals within a Portal Group need participate in every session
+ connected through that Portal Group. One or more Portal Groups may
+ provide access to an iSCSI Node. Each Network Portal, as utilized
+ by a given iSCSI Node, belongs to exactly one portal group within
+ that node.
+
+ - Portal Group Tag: This 16-bit quantity identifies a Portal Group
+ within an iSCSI Node. All Network Portals with the same portal
+ group tag in the context of a given iSCSI Node are in the same
+ Portal Group.
+
+ - Recovery R2T: An R2T generated by a target upon detecting the loss
+ of one or more Data-Out PDUs through one of the following means: a
+ digest error, a sequence error, or a sequence reception timeout. A
+ recovery R2T carries the next unused R2TSN, but requests all or
+ part of the data burst that an earlier R2T (with a lower R2TSN) had
+ already requested.
+
+ - Responder: In a negotiation or exchange, the party that responds to
+ the originator of the negotiation or exchange.
+
+ - SCSI Device: This is the SAM2 term for an entity that contains one
+ or more SCSI ports that are connected to a service delivery
+ subsystem and supports a SCSI application protocol. For example, a
+ SCSI Initiator Device contains one or more SCSI Initiator Ports and
+ zero or more application clients. A Target Device contains one or
+ more SCSI Target Ports and one or more device servers and
+ associated logical units. For iSCSI, the SCSI Device is the
+ component within an iSCSI Node that provides the SCSI
+ functionality. As such, there can be at most, one SCSI Device
+ within a given iSCSI Node. Access to the SCSI Device can only be
+ achieved in an iSCSI normal operational session. The SCSI Device
+ Name is defined to be the iSCSI Name of the node.
+
+
+
+
+
+Satran, et al. Standards Track [Page 12]
+
+RFC 3720 iSCSI April 2004
+
+
+ - SCSI Layer: This builds/receives SCSI CDBs (Command Descriptor
+ Blocks) and relays/receives them with the remaining command execute
+ [SAM2] parameters to/from the iSCSI Layer.
+
+ - Session: The group of TCP connections that link an initiator with a
+ target form a session (loosely equivalent to a SCSI I-T nexus).
+ TCP connections can be added and removed from a session. Across
+ all connections within a session, an initiator sees one and the
+ same target.
+
+ - SCSI Initiator Port: This maps to the endpoint of an iSCSI normal
+ operational session. An iSCSI normal operational session is
+ negotiated through the login process between an iSCSI initiator
+ node and an iSCSI target node. At successful completion of this
+ process, a SCSI Initiator Port is created within the SCSI Initiator
+ Device. The SCSI Initiator Port Name and SCSI Initiator Port
+ Identifier are both defined to be the iSCSI Initiator Name together
+ with (a) a label that identifies it as an initiator port
+ name/identifier and (b) the ISID portion of the session identifier.
+
+ - SCSI Port: This is the SAM2 term for an entity in a SCSI Device
+ that provides the SCSI functionality to interface with a service
+ delivery subsystem. For iSCSI, the definition of the SCSI
+ Initiator Port and the SCSI Target Port are different.
+
+ - SCSI Port Name: A name made up as UTF-8 [RFC2279] characters and
+ includes the iSCSI Name + 'i' or 't' + ISID or Portal Group Tag.
+
+
+ - SCSI Target Port: This maps to an iSCSI Target Portal Group.
+
+ - SCSI Target Port Name and SCSI Target Port Identifier: These are
+ both defined to be the iSCSI Target Name together with (a) a label
+ that identifies it as a target port name/identifier and (b) the
+ portal group tag.
+
+ - SSID (Session ID): A session between an iSCSI initiator and an
+ iSCSI target is defined by a session ID that is a tuple composed of
+ an initiator part (ISID) and a target part (Target Portal Group
+ Tag). The ISID is explicitly specified by the initiator at session
+ establishment. The Target Portal Group Tag is implied by the
+ initiator through the selection of the TCP endpoint at connection
+ establishment. The TargetPortalGroupTag key must also be returned
+ by the target as a confirmation during connection establishment
+ when TargetName is given.
+
+ - Target Portal Group Tag: A numerical identifier (16-bit) for an
+ iSCSI Target Portal Group.
+
+
+
+Satran, et al. Standards Track [Page 13]
+
+RFC 3720 iSCSI April 2004
+
+
+ - TSIH (Target Session Identifying Handle): A target assigned tag for
+ a session with a specific named initiator. The target generates it
+ during session establishment. Its internal format and content are
+ not defined by this protocol, except for the value 0 that is
+ reserved and used by the initiator to indicate a new session. It
+ is given to the target during additional connection establishment
+ for the same session.
+
+2.2. Acronyms
+
+ Acronym Definition
+ ------------------------------------------------------------
+ 3DES Triple Data Encryption Standard
+ ACA Auto Contingent Allegiance
+ AEN Asynchronous Event Notification
+ AES Advanced Encryption Standard
+ AH Additional Header (not the IPsec AH!)
+ AHS Additional Header Segment
+ API Application Programming Interface
+ ASC Additional Sense Code
+ ASCII American Standard Code for Information Interchange
+ ASCQ Additional Sense Code Qualifier
+ BHS Basic Header Segment
+ CBC Cipher Block Chaining
+ CD Compact Disk
+ CDB Command Descriptor Block
+ CHAP Challenge Handshake Authentication Protocol
+ CID Connection ID
+ CO Connection Only
+ CRC Cyclic Redundancy Check
+ CRL Certificate Revocation List
+ CSG Current Stage
+ CSM Connection State Machine
+ DES Data Encryption Standard
+ DNS Domain Name Server
+ DOI Domain of Interpretation
+ DVD Digital Versatile Disk
+ ESP Encapsulating Security Payload
+ EUI Extended Unique Identifier
+ FFP Full Feature Phase
+ FFPO Full Feature Phase Only
+ FIM Fixed Interval Marker
+ Gbps Gigabits per Second
+ HBA Host Bus Adapter
+ HMAC Hashed Message Authentication Code
+ I_T Initiator_Target
+ I_T_L Initiator_Target_LUN
+ IANA Internet Assigned Numbers Authority
+
+
+
+Satran, et al. Standards Track [Page 14]
+
+RFC 3720 iSCSI April 2004
+
+
+ ID Identifier
+ IDN Internationalized Domain Name
+ IEEE Institute of Electrical & Electronics Engineers
+ IETF Internet Engineering Task Force
+ IKE Internet Key Exchange
+ I/O Input - Output
+ IO Initialize Only
+ IP Internet Protocol
+ IPsec Internet Protocol Security
+ IPv4 Internet Protocol Version 4
+ IPv6 Internet Protocol Version 6
+ IQN iSCSI Qualified Name
+ ISID Initiator Session ID
+ ITN iSCSI Target Name
+ ITT Initiator Task Tag
+ KRB5 Kerberos V5
+ LFL Lower Functional Layer
+ LTDS Logical-Text-Data-Segment
+ LO Leading Only
+ LU Logical Unit
+ LUN Logical Unit Number
+ MAC Message Authentication Codes
+ NA Not Applicable
+ NIC Network Interface Card
+ NOP No Operation
+ NSG Next Stage
+ OS Operating System
+ PDU Protocol Data Unit
+ PKI Public Key Infrastructure
+ R2T Ready To Transfer
+ R2TSN Ready To Transfer Sequence Number
+ RDMA Remote Direct Memory Access
+ RFC Request For Comments
+ SAM SCSI Architecture Model
+ SAM2 SCSI Architecture Model - 2
+ SAN Storage Area Network
+ SCSI Small Computer Systems Interface
+ SN Sequence Number
+ SNACK Selective Negative Acknowledgment - also
+ Sequence Number Acknowledgement for data
+ SPKM Simple Public-Key Mechanism
+ SRP Secure Remote Password
+ SSID Session ID
+ SW Session Wide
+ TCB Task Control Block
+ TCP Transmission Control Protocol
+ TPGT Target Portal Group Tag
+ TSIH Target Session Identifying Handle
+
+
+
+Satran, et al. Standards Track [Page 15]
+
+RFC 3720 iSCSI April 2004
+
+
+ TTT Target Transfer Tag
+ UFL Upper Functional Layer
+ ULP Upper Level Protocol
+ URN Uniform Resource Names [RFC2396]
+ UTF Universal Transformation Format
+ WG Working Group
+
+2.3. Conventions
+
+ In examples, "I->" and "T->" show iSCSI PDUs sent by the initiator
+ and target respectively.
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in BCP 14 [RFC2119].
+
+ iSCSI messages - PDUs - are represented by diagrams as in the
+ following example:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0| Basic Header Segment (BHS) |
+ +---------------+---------------+---------------+---------------+
+ ----------
+ +| |
+ +---------------+---------------+---------------+---------------+
+
+ The diagrams include byte and bit numbering.
+
+ The following representation and ordering rules are observed in this
+ document:
+
+ - Word Rule
+ - Half-word Rule
+ - Byte Rule
+
+2.3.1. Word Rule
+
+ A word holds four consecutive bytes. Whenever a word has numeric
+ content, it is considered an unsigned number in base 2 positional
+ representation with the lowest numbered byte (e.g., byte 0) bit 0
+ representing 2**31 and bit 1 representing 2**30 through lowest
+ numbered byte + 3 (e.g., byte 3) bit 7 representing 2**0.
+
+ Decimal and hexadecimal representation of word values map this
+ representation to decimal or hexadecimal positional notation.
+
+
+
+Satran, et al. Standards Track [Page 16]
+
+RFC 3720 iSCSI April 2004
+
+
+2.3.2. Half-Word Rule
+
+ A half-word holds two consecutive bytes. Whenever a half-word has
+ numeric content it is considered an unsigned number in base 2
+ positional representation with the lowest numbered byte (e.g., byte
+ 0), bit 0 representing 2**15 and bit 1 representing 2**14 through
+ lowest numbered byte + 1 (e.g., byte 1), bit 7 representing 2**0.
+
+ Decimal and hexadecimal representation of half-word values map this
+ representation to decimal or hexadecimal positional notation.
+
+2.3.3. Byte Rule
+
+ For every PDU, bytes are sent and received in increasing numbered
+ order (network order).
+
+ Whenever a byte has numerical content, it is considered an unsigned
+ number in base 2 positional representation with bit 0 representing
+ 2**7 and bit 1 representing 2**6 through bit 7 representing 2**0.
+
+3. Overview
+
+3.1. SCSI Concepts
+
+ The SCSI Architecture Model-2 [SAM2] describes in detail the
+ architecture of the SCSI family of I/O protocols. This section
+ provides a brief background of the SCSI architecture and is intended
+ to familiarize readers with its terminology.
+
+ At the highest level, SCSI is a family of interfaces for requesting
+ services from I/O devices, including hard drives, tape drives, CD and
+ DVD drives, printers, and scanners. In SCSI terminology, an
+ individual I/O device is called a "logical unit" (LU).
+
+ SCSI is a client-server architecture. Clients of a SCSI interface
+ are called "initiators". Initiators issue SCSI "commands" to request
+ services from components, logical units, of a server known as a
+ "target". The "device server" on the logical unit accepts SCSI
+ commands and processes them.
+
+ A "SCSI transport" maps the client-server SCSI protocol to a specific
+ interconnect. Initiators are one endpoint of a SCSI transport. The
+ "target" is the other endpoint. A target can contain multiple
+ Logical Units (LUs). Each Logical Unit has an address within a
+ target called a Logical Unit Number (LUN).
+
+ A SCSI task is a SCSI command or possibly a linked set of SCSI
+ commands. Some LUs support multiple pending (queued) tasks, but the
+
+
+
+Satran, et al. Standards Track [Page 17]
+
+RFC 3720 iSCSI April 2004
+
+
+ queue of tasks is managed by the logical unit. The target uses an
+ initiator provided "task tag" to distinguish between tasks. Only one
+ command in a task can be outstanding at any given time.
+
+ Each SCSI command results in an optional data phase and a required
+ response phase. In the data phase, information can travel from the
+ initiator to target (e.g., WRITE), target to initiator (e.g., READ),
+ or in both directions. In the response phase, the target returns the
+ final status of the operation, including any errors.
+
+ Command Descriptor Blocks (CDB) are the data structures used to
+ contain the command parameters that an initiator sends to a target.
+ The CDB content and structure is defined by [SAM2] and device-type
+ specific SCSI standards.
+
+3.2. iSCSI Concepts and Functional Overview
+
+ The iSCSI protocol is a mapping of the SCSI remote procedure
+ invocation model (see [SAM2]) over the TCP protocol. SCSI commands
+ are carried by iSCSI requests and SCSI responses and status are
+ carried by iSCSI responses. iSCSI also uses the request response
+ mechanism for iSCSI protocol mechanisms.
+
+ For the remainder of this document, the terms "initiator" and
+ "target" refer to "iSCSI initiator node" and "iSCSI target node",
+ respectively (see Section 3.4.1 iSCSI Architecture Model) unless
+ otherwise qualified.
+
+ In keeping with similar protocols, the initiator and target divide
+ their communications into messages. This document uses the term
+ "iSCSI protocol data unit" (iSCSI PDU) for these messages.
+
+ For performance reasons, iSCSI allows a "phase-collapse". A command
+ and its associated data may be shipped together from initiator to
+ target, and data and responses may be shipped together from targets.
+
+ The iSCSI transfer direction is defined with respect to the
+ initiator. Outbound or outgoing transfers are transfers from an
+ initiator to a target, while inbound or incoming transfers are from a
+ target to an initiator.
+
+ An iSCSI task is an iSCSI request for which a response is expected.
+
+ In this document "iSCSI request", "iSCSI command", request, or
+ (unqualified) command have the same meaning. Also, unless otherwise
+ specified, status, response, or numbered response have the same
+ meaning.
+
+
+
+
+Satran, et al. Standards Track [Page 18]
+
+RFC 3720 iSCSI April 2004
+
+
+3.2.1. Layers and Sessions
+
+ The following conceptual layering model is used to specify initiator
+ and target actions and the way in which they relate to transmitted
+ and received Protocol Data Units:
+
+ a) the SCSI layer builds/receives SCSI CDBs (Command Descriptor
+ Blocks) and passes/receives them with the remaining command
+ execute parameters ([SAM2]) to/from
+
+ b) the iSCSI layer that builds/receives iSCSI PDUs and
+ relays/receives them to/from one or more TCP connections; the
+ group of connections form an initiator-target "session".
+
+ Communication between the initiator and target occurs over one or
+ more TCP connections. The TCP connections carry control messages,
+ SCSI commands, parameters, and data within iSCSI Protocol Data Units
+ (iSCSI PDUs). The group of TCP connections that link an initiator
+ with a target form a session (loosely equivalent to a SCSI I_T nexus,
+ see Section 3.4.2 SCSI Architecture Model). A session is defined by
+ a session ID that is composed of an initiator part and a target part.
+ TCP connections can be added and removed from a session. Each
+ connection within a session is identified by a connection ID (CID).
+
+ Across all connections within a session, an initiator sees one
+ "target image". All target identifying elements, such as LUN, are
+ the same. A target also sees one "initiator image" across all
+ connections within a session. Initiator identifying elements, such
+ as the Initiator Task Tag, are global across the session regardless
+ of the connection on which they are sent or received.
+
+ iSCSI targets and initiators MUST support at least one TCP connection
+ and MAY support several connections in a session. For error recovery
+ purposes, targets and initiators that support a single active
+ connection in a session SHOULD support two connections during
+ recovery.
+
+3.2.2. Ordering and iSCSI Numbering
+
+ iSCSI uses Command and Status numbering schemes and a Data sequencing
+ scheme.
+
+ Command numbering is session-wide and is used for ordered command
+ delivery over multiple connections. It can also be used as a
+ mechanism for command flow control over a session.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 19]
+
+RFC 3720 iSCSI April 2004
+
+
+ Status numbering is per connection and is used to enable missing
+ status detection and recovery in the presence of transient or
+ permanent communication errors.
+
+ Data sequencing is per command or part of a command (R2T triggered
+ sequence) and is used to detect missing data and/or R2T PDUs due to
+ header digest errors.
+
+ Typically, fields in the iSCSI PDUs communicate the Sequence Numbers
+ between the initiator and target. During periods when traffic on a
+ connection is unidirectional, iSCSI NOP-Out/In PDUs may be utilized
+ to synchronize the command and status ordering counters of the target
+ and initiator.
+
+ The iSCSI session abstraction is equivalent to the SCSI I_T nexus,
+ and the iSCSI session provides an ordered command delivery from the
+ SCSI initiator to the SCSI target. For detailed design
+ considerations that led to the iSCSI session model as it is defined
+ here and how it relates the SCSI command ordering features defined in
+ SCSI specifications to the iSCSI concepts see [CORD].
+
+3.2.2.1. Command Numbering and Acknowledging
+
+ iSCSI performs ordered command delivery within a session. All
+ commands (initiator-to-target PDUs) in transit from the initiator to
+ the target are numbered.
+
+ iSCSI considers a task to be instantiated on the target in response
+ to every request issued by the initiator. A set of task management
+ operations including abort and reassign (see Section 10.5 Task
+ Management Function Request) may be performed on any iSCSI task.
+
+ Some iSCSI tasks are SCSI tasks, and many SCSI activities are related
+ to a SCSI task ([SAM2]). In all cases, the task is identified by the
+ Initiator Task Tag for the life of the task.
+
+ The command number is carried by the iSCSI PDU as CmdSN
+ (Command Sequence Number). The numbering is session-wide. Outgoing
+ iSCSI PDUs carry this number. The iSCSI initiator allocates CmdSNs
+ with a 32-bit unsigned counter (modulo 2**32). Comparisons and
+ arithmetic on CmdSN use Serial Number Arithmetic as defined in
+ [RFC1982] where SERIAL_BITS = 32.
+
+ Commands meant for immediate delivery are marked with an immediate
+ delivery flag; they MUST also carry the current CmdSN. CmdSN does
+ not advance after a command marked for immediate delivery is sent.
+
+
+
+
+
+Satran, et al. Standards Track [Page 20]
+
+RFC 3720 iSCSI April 2004
+
+
+ Command numbering starts with the first login request on the first
+ connection of a session (the leading login on the leading connection)
+ and command numbers are incremented by 1 for every non-immediate
+ command issued afterwards.
+
+ If immediate delivery is used with task management commands, these
+ commands may reach the target before the tasks on which they are
+ supposed to act. However their CmdSN serves as a marker of their
+ position in the stream of commands. The initiator and target must
+ ensure that the task management commands act as specified by [SAM2].
+ For example, both commands and responses appear as if delivered in
+ order. Whenever CmdSN for an outgoing PDU is not specified by an
+ explicit rule, CmdSN will carry the current value of the local CmdSN
+ variable (see later in this section).
+
+ The means by which an implementation decides to mark a PDU for
+ immediate delivery or by which iSCSI decides by itself to mark a PDU
+ for immediate delivery are beyond the scope of this document.
+
+ The number of commands used for immediate delivery is not limited and
+ their delivery for execution is not acknowledged through the
+ numbering scheme. Immediate commands MAY be rejected by the iSCSI
+ target layer due to a lack of resources. An iSCSI target MUST be
+ able to handle at least one immediate task management command and one
+ immediate non-task-management iSCSI command per connection at any
+ time.
+
+ In this document, delivery for execution means delivery to the SCSI
+ execution engine or an iSCSI protocol specific execution engine
+ (e.g., for text requests with public or private extension keys
+ involving an execution component). With the exception of the
+ commands marked for immediate delivery, the iSCSI target layer MUST
+ deliver the commands for execution in the order specified by CmdSN.
+ Commands marked for immediate delivery may be delivered by the iSCSI
+ target layer for execution as soon as detected. iSCSI may avoid
+ delivering some commands to the SCSI target layer if required by a
+ prior SCSI or iSCSI action (e.g., CLEAR TASK SET Task Management
+ request received before all the commands on which it was supposed to
+ act).
+
+ On any connection, the iSCSI initiator MUST send the commands in
+ increasing order of CmdSN, except for commands that are retransmitted
+ due to digest error recovery and connection recovery.
+
+ For the numbering mechanism, the initiator and target maintain the
+ following three variables for each session:
+
+
+
+
+
+Satran, et al. Standards Track [Page 21]
+
+RFC 3720 iSCSI April 2004
+
+
+ - CmdSN - the current command Sequence Number, advanced by 1 on
+ each command shipped except for commands marked for immediate
+ delivery. CmdSN always contains the number to be assigned to
+ the next Command PDU.
+ - ExpCmdSN - the next expected command by the target. The target
+ acknowledges all commands up to, but not including, this
+ number. The initiator treats all commands with CmdSN less than
+ ExpCmdSN as acknowledged. The target iSCSI layer sets the
+ ExpCmdSN to the largest non-immediate CmdSN that it can deliver
+ for execution plus 1 (no holes in the CmdSN sequence).
+ - MaxCmdSN - the maximum number to be shipped. The queuing
+ capacity of the receiving iSCSI layer is MaxCmdSN - ExpCmdSN +
+ 1.
+
+ The initiator's ExpCmdSN and MaxCmdSN are derived from
+ target-to-initiator PDU fields. Comparisons and arithmetic on
+ ExpCmdSN and MaxCmdSN MUST use Serial Number Arithmetic as defined in
+ [RFC1982] where SERIAL_BITS = 32.
+
+ The target MUST NOT transmit a MaxCmdSN that is less than
+ ExpCmdSN-1. For non-immediate commands, the CmdSN field can take any
+ value from ExpCmdSN to MaxCmdSN inclusive. The target MUST silently
+ ignore any non-immediate command outside of this range or non-
+ immediate duplicates within the range. The CmdSN carried by
+ immediate commands may lie outside the ExpCmdSN to MaxCmdSN range.
+ For example, if the initiator has previously sent a non-immediate
+ command carrying the CmdSN equal to MaxCmdSN, the target window is
+ closed. For group task management commands issued as immediate
+ commands, CmdSN indicates the scope of the group action (e.g., on
+ ABORT TASK SET indicates which commands are aborted).
+
+ MaxCmdSN and ExpCmdSN fields are processed by the initiator as
+ follows:
+
+ - If the PDU MaxCmdSN is less than the PDU ExpCmdSN-1 (in Serial
+ Arithmetic Sense), they are both ignored.
+ - If the PDU MaxCmdSN is greater than the local MaxCmdSN (in
+ Serial Arithmetic Sense), it updates the local MaxCmdSN;
+ otherwise, it is ignored.
+ - If the PDU ExpCmdSN is greater than the local ExpCmdSN (in
+ Serial Arithmetic Sense), it updates the local ExpCmdSN;
+ otherwise, it is ignored.
+
+ This sequence is required because updates may arrive out of order
+ (e.g., the updates are sent on different TCP connections).
+
+ iSCSI initiators and targets MUST support the command numbering
+ scheme.
+
+
+
+Satran, et al. Standards Track [Page 22]
+
+RFC 3720 iSCSI April 2004
+
+
+ A numbered iSCSI request will not change its allocated CmdSN,
+ regardless of the number of times and circumstances in which it is
+ reissued (see Section 6.2.1 Usage of Retry). At the target, CmdSN is
+ only relevant when the command has not created any state related to
+ its execution (execution state); afterwards, CmdSN becomes
+ irrelevant. Testing for the execution state (represented by
+ identifying the Initiator Task Tag) MUST precede any other action at
+ the target. If no execution state is found, it is followed by
+ ordering and delivery. If an execution state is found, it is
+ followed by delivery.
+
+ If an initiator issues a command retry for a command with CmdSN R on
+ a connection when the session CmdSN value is Q, it MUST NOT advance
+ the CmdSN past R + 2**31 -1 unless the connection is no longer
+ operational (i.e., it has returned to the FREE state, see Section
+ 7.1.3 Standard Connection State Diagram for an Initiator), the
+ connection has been reinstated (see Section 5.3.4 Connection
+ Reinstatement), or a non-immediate command with CmdSN equal or
+ greater than Q was issued subsequent to the command retry on the same
+ connection and the reception of that command is acknowledged by the
+ target (see Section 9.4 Command Retry and Cleaning Old Command
+ Instances).
+
+ A target MUST NOT issue a command response or Data-In PDU with status
+ before acknowledging the command. However, the acknowledgement can
+ be included in the response or Data-In PDU.
+
+3.2.2.2. Response/Status Numbering and Acknowledging
+
+ Responses in transit from the target to the initiator are numbered.
+ The StatSN (Status Sequence Number) is used for this purpose. StatSN
+ is a counter maintained per connection. ExpStatSN is used by the
+ initiator to acknowledge status. The status sequence number space is
+ 32-bit unsigned-integers and the arithmetic operations are the
+ regular mod(2**32) arithmetic.
+
+ Status numbering starts with the Login response to the first Login
+ request of the connection. The Login response includes an initial
+ value for status numbering (any initial value is valid).
+
+ To enable command recovery, the target MAY maintain enough state
+ information for data and status recovery after a connection failure.
+ A target doing so can safely discard all of the state information
+ maintained for recovery of a command after the delivery of the status
+ for the command (numbered StatSN) is acknowledged through ExpStatSN.
+
+ A large absolute difference between StatSN and ExpStatSN may indicate
+ a failed connection. Initiators MUST undertake recovery actions if
+
+
+
+Satran, et al. Standards Track [Page 23]
+
+RFC 3720 iSCSI April 2004
+
+
+ the difference is greater than an implementation defined constant
+ that MUST NOT exceed 2**31-1.
+
+ Initiators and Targets MUST support the response-numbering scheme.
+
+3.2.2.3. Data Sequencing
+
+ Data and R2T PDUs transferred as part of some command execution MUST
+ be sequenced. The DataSN field is used for data sequencing. For
+ input (read) data PDUs, DataSN starts with 0 for the first data PDU
+ of an input command and advances by 1 for each subsequent data PDU.
+ For output data PDUs, DataSN starts with 0 for the first data PDU of
+ a sequence (the initial unsolicited sequence or any data PDU sequence
+ issued to satisfy an R2T) and advances by 1 for each subsequent data
+ PDU. R2Ts are also sequenced per command. For example, the first
+ R2T has an R2TSN of 0 and advances by 1 for each subsequent R2T. For
+ bidirectional commands, the target uses the DataSN/R2TSN to sequence
+ Data-In and R2T PDUs in one continuous sequence (undifferentiated).
+ Unlike command and status, data PDUs and R2Ts are not acknowledged by
+ a field in regular outgoing PDUs. Data-In PDUs can be acknowledged
+ on demand by a special form of the SNACK PDU. Data and R2T PDUs are
+ implicitly acknowledged by status for the command. The DataSN/R2TSN
+ field enables the initiator to detect missing data or R2T PDUs.
+
+ For any read or bidirectional command, a target MUST issue less than
+ 2**32 combined R2T and Data-In PDUs. Any output data sequence MUST
+ contain less than 2**32 Data-Out PDUs.
+
+3.2.3. iSCSI Login
+
+ The purpose of the iSCSI login is to enable a TCP connection for
+ iSCSI use, authentication of the parties, negotiation of the
+ session's parameters and marking of the connection as belonging to an
+ iSCSI session.
+
+ A session is used to identify to a target all the connections with a
+ given initiator that belong to the same I_T nexus. (For more details
+ on how a session relates to an I_T nexus, see Section 3.4.2 SCSI
+ Architecture Model).
+
+ The targets listen on a well-known TCP port or other TCP port for
+ incoming connections. The initiator begins the login process by
+ connecting to one of these TCP ports.
+
+ As part of the login process, the initiator and target SHOULD
+ authenticate each other and MAY set a security association protocol
+ for the session. This can occur in many different ways and is
+ subject to negotiation.
+
+
+
+Satran, et al. Standards Track [Page 24]
+
+RFC 3720 iSCSI April 2004
+
+
+ To protect the TCP connection, an IPsec security association MAY be
+ established before the Login request. For information on using IPsec
+ security for iSCSI see Chapter 8 and [RFC3723].
+
+ The iSCSI Login Phase is carried through Login requests and
+ responses. Once suitable authentication has occurred and operational
+ parameters have been set, the session transitions to the Full Feature
+ Phase and the initiator may start to send SCSI commands. The
+ security policy for whether, and by what means, a target chooses to
+ authorize an initiator is beyond the scope of this document. For a
+ more detailed description of the Login Phase, see Chapter 5.
+
+ The login PDU includes the ISID part of the session ID (SSID). The
+ target portal group that services the login is implied by the
+ selection of the connection endpoint. For a new session, the TSIH is
+ zero. As part of the response, the target generates a TSIH.
+
+ During session establishment, the target identifies the SCSI
+ initiator port (the "I" in the "I_T nexus") through the value pair
+ (InitiatorName, ISID). We describe InitiatorName later in this
+ section. Any persistent state (e.g., persistent reservations) on the
+ target that is associated with a SCSI initiator port is identified
+ based on this value pair. Any state associated with the SCSI target
+ port (the "T" in the "I_T nexus") is identified externally by the
+ TargetName and portal group tag (see Section 3.4.1 iSCSI Architecture
+ Model). ISID is subject to reuse restrictions because it is used to
+ identify a persistent state (see Section 3.4.3 Consequences of the
+ Model).
+
+ Before the Full Feature Phase is established, only Login Request and
+ Login Response PDUs are allowed. Login requests and responses MUST
+ be used exclusively during Login. On any connection, the login phase
+ MUST immediately follow TCP connection establishment and a subsequent
+ Login Phase MUST NOT occur before tearing down a connection.
+
+ A target receiving any PDU except a Login request before the Login
+ phase is started MUST immediately terminate the connection on which
+ the PDU was received. Once the Login phase has started, if the
+ target receives any PDU except a Login request, it MUST send a Login
+ reject (with Status "invalid during login") and then disconnect. If
+ the initiator receives any PDU except a Login response, it MUST
+ immediately terminate the connection.
+
+3.2.4. iSCSI Full Feature Phase
+
+ Once the initiator is authorized to do so, the iSCSI session is in
+ the iSCSI Full Feature Phase. A session is in Full Feature Phase
+ after successfully finishing the Login Phase on the first (leading)
+
+
+
+Satran, et al. Standards Track [Page 25]
+
+RFC 3720 iSCSI April 2004
+
+
+ connection of a session. A connection is in Full Feature Phase if
+ the session is in Full Feature Phase and the connection login has
+ completed successfully. An iSCSI connection is not in Full Feature
+ Phase
+
+ a) when it does not have an established transport connection,
+
+ OR
+
+ b) when it has a valid transport connection, but a successful
+ login was not performed or the connection is currently logged
+ out.
+
+ In a normal Full Feature Phase, the initiator may send SCSI commands
+ and data to the various LUs on the target by encapsulating them in
+ iSCSI PDUs that go over the established iSCSI session.
+
+3.2.4.1. Command Connection Allegiance
+
+ For any iSCSI request issued over a TCP connection, the corresponding
+ response and/or other related PDU(s) MUST be sent over the same
+ connection. We call this "connection allegiance". If the original
+ connection fails before the command is completed, the connection
+ allegiance of the command may be explicitly reassigned to a different
+ transport connection as described in detail in Section 6.2 Retry and
+ Reassign in Recovery.
+
+ Thus, if an initiator issues a READ command, the target MUST send the
+ requested data, if any, followed by the status to the initiator over
+ the same TCP connection that was used to deliver the SCSI command.
+ If an initiator issues a WRITE command, the initiator MUST send the
+ data, if any, for that command over the same TCP connection that was
+ used to deliver the SCSI command. The target MUST return Ready To
+ Transfer (R2T), if any, and the status over the same TCP connection
+ that was used to deliver the SCSI command. Retransmission requests
+ (SNACK PDUs) and the data and status that they generate MUST also use
+ the same connection.
+
+ However, consecutive commands that are part of a SCSI linked
+ command-chain task (see [SAM2]) MAY use different connections.
+ Connection allegiance is strictly per-command and not per-task.
+ During the iSCSI Full Feature Phase, the initiator and target MAY
+ interleave unrelated SCSI commands, their SCSI Data, and responses
+ over the session.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 26]
+
+RFC 3720 iSCSI April 2004
+
+
+3.2.4.2. Data Transfer Overview
+
+ Outgoing SCSI data (initiator to target user data or command
+ parameters) is sent as either solicited data or unsolicited data.
+ Solicited data are sent in response to R2T PDUs. Unsolicited data
+ can be sent as part of an iSCSI command PDU ("immediate data") or in
+ separate iSCSI data PDUs.
+
+ Immediate data are assumed to originate at offset 0 in the initiator
+ SCSI write-buffer (outgoing data buffer). All other Data PDUs have
+ the buffer offset set explicitly in the PDU header.
+
+ An initiator may send unsolicited data up to FirstBurstLength as
+ immediate (up to the negotiated maximum PDU length), in a separate
+ PDU sequence or both. All subsequent data MUST be solicited. The
+ maximum length of an individual data PDU or the immediate-part of the
+ first unsolicited burst MAY be negotiated at login.
+
+ The maximum amount of unsolicited data that can be sent with a
+ command is negotiated at login through the FirstBurstLength key. A
+ target MAY separately enable immediate data (through the
+ ImmediateData key) without enabling the more general (separate data
+ PDUs) form of unsolicited data (through the InitialR2T key).
+
+ Unsolicited data on write are meant to reduce the effect of latency
+ on throughput (no R2T is needed to start sending data). In addition,
+ immediate data is meant to reduce the protocol overhead (both
+ bandwidth and execution time).
+
+ An iSCSI initiator MAY choose not to send unsolicited data, only
+ immediate data or FirstBurstLength bytes of unsolicited data with a
+ command. If any non-immediate unsolicited data is sent, the total
+ unsolicited data MUST be either FirstBurstLength, or all of the data
+ if the total amount is less than the FirstBurstLength.
+
+ It is considered an error for an initiator to send unsolicited data
+ PDUs to a target that operates in R2T mode (only solicited data are
+ allowed). It is also an error for an initiator to send more
+ unsolicited data, whether immediate or as separate PDUs, than
+ FirstBurstLength.
+
+ An initiator MUST honor an R2T data request for a valid outstanding
+ command (i.e., carrying a valid Initiator Task Tag) and deliver all
+ the requested data provided the command is supposed to deliver
+ outgoing data and the R2T specifies data within the command bounds.
+ The initiator action is unspecified for receiving an R2T request that
+ specifies data, all or part, outside of the bounds of the command.
+
+
+
+
+Satran, et al. Standards Track [Page 27]
+
+RFC 3720 iSCSI April 2004
+
+
+ A target SHOULD NOT silently discard data and then request
+ retransmission through R2T. Initiators SHOULD NOT keep track of the
+ data transferred to or from the target (scoreboarding). SCSI targets
+ perform residual count calculation to check how much data was
+ actually transferred to or from the device by a command. This may
+ differ from the amount the initiator sent and/or received for reasons
+ such as retransmissions and errors. Read or bidirectional commands
+ implicitly solicit the transmission of the entire amount of data
+ covered by the command. SCSI data packets are matched to their
+ corresponding SCSI commands by using tags specified in the protocol.
+
+ In addition, iSCSI initiators and targets MUST enforce some ordering
+ rules. When unsolicited data is used, the order of the unsolicited
+ data on each connection MUST match the order in which the commands on
+ that connection are sent. Command and unsolicited data PDUs may be
+ interleaved on a single connection as long as the ordering
+ requirements of each are maintained (e.g., command N+1 MAY be sent
+ before the unsolicited Data-Out PDUs for command N, but the
+ unsolicited Data-Out PDUs for command N MUST precede the unsolicited
+ Data-Out PDUs of command N+1). A target that receives data out of
+ order MAY terminate the session.
+
+3.2.4.3. Tags and Integrity Checks
+
+ Initiator tags for pending commands are unique initiator-wide for a
+ session. Target tags are not strictly specified by the protocol. It
+ is assumed that target tags are used by the target to tag (alone or
+ in combination with the LUN) the solicited data. Target tags are
+ generated by the target and "echoed" by the initiator. These
+ mechanisms are designed to accomplish efficient data delivery along
+ with a large degree of control over the data flow.
+
+ As the Initiator Task Tag is used to identify a task during its
+ execution, the iSCSI initiator and target MUST verify that all other
+ fields used in task-related PDUs have values that are consistent with
+ the values used at the task instantiation based on the Initiator Task
+ Tag (e.g., the LUN used in an R2T PDU MUST be the same as the one
+ used in the SCSI command PDU used to instantiate the task). Using
+ inconsistent field values is considered a protocol error.
+
+3.2.4.4. Task Management
+
+ SCSI task management assumes that individual tasks and task groups
+ can be aborted solely based on the task tags (for individual tasks)
+ or the timing of the task management command (for task groups), and
+ that the task management action is executed synchronously - i.e., no
+ message involving an aborted task will be seen by the SCSI initiator
+ after receiving the task management response. In iSCSI initiators
+
+
+
+Satran, et al. Standards Track [Page 28]
+
+RFC 3720 iSCSI April 2004
+
+
+ and targets interact asynchronously over several connections. iSCSI
+ specifies the protocol mechanism and implementation requirements
+ needed to present a synchronous view while using an asynchronous
+ infrastructure.
+
+3.2.5. iSCSI Connection Termination
+
+ An iSCSI connection may be terminated by use of a transport
+ connection shutdown or a transport reset. Transport reset is assumed
+ to be an exceptional event.
+
+ Graceful TCP connection shutdowns are done by sending TCP FINs. A
+ graceful transport connection shutdown SHOULD only be initiated by
+ either party when the connection is not in iSCSI Full Feature Phase.
+ A target MAY terminate a Full Feature Phase connection on internal
+ exception events, but it SHOULD announce the fact through an
+ Asynchronous Message PDU. Connection termination with outstanding
+ commands may require recovery actions.
+
+ If a connection is terminated while in Full Feature Phase, connection
+ cleanup (see section 7) is required prior to recovery. By doing
+ connection cleanup before starting recovery, the initiator and target
+ will avoid receiving stale PDUs after recovery.
+
+3.2.6. iSCSI Names
+
+ Both targets and initiators require names for the purpose of
+ identification. In addition, names enable iSCSI storage resources to
+ be managed regardless of location (address). An iSCSI node name is
+ also the SCSI device name of an iSCSI device. The iSCSI name of a
+ SCSI device is the principal object used in authentication of targets
+ to initiators and initiators to targets. This name is also used to
+ identify and manage iSCSI storage resources.
+
+ iSCSI names must be unique within the operational domain of the end
+ user. However, because the operational domain of an IP network is
+ potentially worldwide, the iSCSI name formats are architected to be
+ worldwide unique. To assist naming authorities in the construction
+ of worldwide unique names, iSCSI provides two name formats for
+ different types of naming authorities.
+
+ iSCSI names are associated with iSCSI nodes, and not iSCSI network
+ adapter cards, to ensure that the replacement of network adapter
+ cards does not require reconfiguration of all SCSI and iSCSI resource
+ allocation information.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 29]
+
+RFC 3720 iSCSI April 2004
+
+
+ Some SCSI commands require that protocol-specific identifiers be
+ communicated within SCSI CDBs. See Section 3.4.2 SCSI Architecture
+ Model for the definition of the SCSI port name/identifier for iSCSI
+ ports.
+
+ An initiator may discover the iSCSI Target Names to which it has
+ access, along with their addresses, using the SendTargets text
+ request, or other techniques discussed in [RFC3721].
+
+3.2.6.1. iSCSI Name Properties
+
+ Each iSCSI node, whether an initiator or target, MUST have an iSCSI
+ name.
+
+ Initiators and targets MUST support the receipt of iSCSI names of up
+ to the maximum length of 223 bytes.
+
+ The initiator MUST present both its iSCSI Initiator Name and the
+ iSCSI Target Name to which it wishes to connect in the first login
+ request of a new session or connection. The only exception is if a
+ discovery session (see Section 2.3 iSCSI Session Types) is to be
+ established. In this case, the iSCSI Initiator Name is still
+ required, but the iSCSI Target Name MAY be omitted.
+
+ iSCSI names have the following properties:
+
+ a) iSCSI names are globally unique. No two initiators or targets
+ can have the same name.
+ b) iSCSI names are permanent. An iSCSI initiator node or target
+ node has the same name for its lifetime.
+ c) iSCSI names do not imply a location or address. An iSCSI
+ initiator or target can move, or have multiple addresses. A
+ change of address does not imply a change of name.
+ d) iSCSI names do not rely on a central name broker; the naming
+ authority is distributed.
+ e) iSCSI names support integration with existing unique naming
+ schemes.
+ f) iSCSI names rely on existing naming authorities. iSCSI does
+ not create any new naming authority.
+
+ The encoding of an iSCSI name has the following properties:
+
+ a) iSCSI names have the same encoding method regardless of the
+ underlying protocols.
+ b) iSCSI names are relatively simple to compare. The algorithm
+ for comparing two iSCSI names for equivalence does not rely on
+ an external server.
+
+
+
+
+Satran, et al. Standards Track [Page 30]
+
+RFC 3720 iSCSI April 2004
+
+
+ c) iSCSI names are composed only of displayable characters. iSCSI
+ names allow the use of international character sets but are not
+ case sensitive. No whitespace characters are used in iSCSI
+ names.
+ d) iSCSI names may be transported using both binary and
+ ASCII-based protocols.
+
+ An iSCSI name really names a logical software entity, and is not tied
+ to a port or other hardware that can be changed. For instance, an
+ initiator name should name the iSCSI initiator node, not a particular
+ NIC or HBA. When multiple NICs are used, they should generally all
+ present the same iSCSI initiator name to the targets, because they
+ are simply paths to the same SCSI layer. In most operating systems,
+ the named entity is the operating system image.
+
+ Similarly, a target name should not be tied to hardware interfaces
+ that can be changed. A target name should identify the logical
+ target and must be the same for the target regardless of the physical
+ portion being addressed. This assists iSCSI initiators in
+ determining that the two targets it has discovered are really two
+ paths to the same target.
+
+ The iSCSI name is designed to fulfill the functional requirements for
+ Uniform Resource Names (URN) [RFC1737]. For example, it is required
+ that the name have a global scope, be independent of address or
+ location, and be persistent and globally unique. Names must be
+ extensible and scalable with the use of naming authorities. The name
+ encoding should be both human and machine readable. See [RFC1737]
+ for further requirements.
+
+3.2.6.2. iSCSI Name Encoding
+
+ An iSCSI name MUST be a UTF-8 encoding of a string of Unicode
+ characters with the following properties:
+
+ - It is in Normalization Form C (see "Unicode Normalization
+ Forms" [UNICODE]).
+ - It only contains characters allowed by the output of the iSCSI
+ stringprep template (described in [RFC3722]).
+ - The following characters are used for formatting iSCSI names:
+
+ - dash ('-'=U+002d)
+ - dot ('.'=U+002e)
+ - colon (':'=U+003a)
+
+ - The UTF-8 encoding of the name is not larger than 223 bytes.
+
+
+
+
+
+Satran, et al. Standards Track [Page 31]
+
+RFC 3720 iSCSI April 2004
+
+
+ The stringprep process is described in [RFC3454]; iSCSI's use of the
+ stringprep process is described in [RFC3722]. Stringprep is a method
+ designed by the Internationalized Domain Name (IDN) working group to
+ translate human-typed strings into a format that can be compared as
+ opaque strings. Strings MUST NOT include punctuation, spacing,
+ diacritical marks, or other characters that could get in the way of
+ readability. The stringprep process also converts strings into
+ equivalent strings of lower-case characters.
+
+ The stringprep process does not need to be implemented if the names
+ are only generated using numeric and lower-case (any character set)
+ alphabetic characters.
+
+ Once iSCSI names encoded in UTF-8 are "normalized" they may be safely
+ compared byte-for-byte.
+
+3.2.6.3. iSCSI Name Structure
+
+ An iSCSI name consists of two parts--a type designator followed by a
+ unique name string.
+
+ The iSCSI name does not define any new naming authorities. Instead,
+ it supports two existing ways of designating naming authorities: an
+ iSCSI-Qualified Name, using domain names to identify a naming
+ authority, and the EUI format, where the IEEE Registration Authority
+ assists in the formation of worldwide unique names (EUI-64 format).
+
+ The type designator strings currently defined are:
+
+ iqn. - iSCSI Qualified name
+ eui. - Remainder of the string is an IEEE EUI-64
+ identifier, in ASCII-encoded hexadecimal.
+
+ These two naming authority designators were considered sufficient at
+ the time of writing this document. The creation of additional naming
+ type designators for iSCSI may be considered by the IETF and detailed
+ in separate RFCs.
+
+3.2.6.3.1. Type "iqn." (iSCSI Qualified Name)
+
+ This iSCSI name type can be used by any organization that owns a
+ domain name. This naming format is useful when an end user or
+ service provider wishes to assign iSCSI names for targets and/or
+ initiators.
+
+ To generate names of this type, the person or organization generating
+ the name must own a registered domain name. This domain name does
+ not have to be active, and does not have to resolve to an address; it
+
+
+
+Satran, et al. Standards Track [Page 32]
+
+RFC 3720 iSCSI April 2004
+
+
+ just needs to be reserved to prevent others from generating iSCSI
+ names using the same domain name.
+
+ Since a domain name can expire, be acquired by another entity, or may
+ be used to generate iSCSI names by both owners, the domain name must
+ be additionally qualified by a date during which the naming authority
+ owned the domain name. For this reason, a date code is provided as
+ part of the "iqn." format.
+
+ The iSCSI qualified name string consists of:
+
+ - The string "iqn.", used to distinguish these names from "eui."
+ formatted names.
+ - A date code, in yyyy-mm format. This date MUST be a date
+ during which the naming authority owned the domain name used in
+ this format, and SHOULD be the first month in which the domain
+ name was owned by this naming authority at 00:01 GMT of the
+ first day of the month. This date code uses the Gregorian
+ calendar. All four digits in the year must be present. Both
+ digits of the month must be present, with January == "01" and
+ December == "12". The dash must be included.
+ - A dot "."
+ - The reversed domain name of the naming authority (person or
+ organization) creating this iSCSI name.
+ - An optional, colon (:) prefixed, string within the character
+ set and length boundaries that the owner of the domain name
+ deems appropriate. This may contain product types, serial
+ numbers, host identifiers, or software keys (e.g., it may
+ include colons to separate organization boundaries). With the
+ exception of the colon prefix, the owner of the domain name can
+ assign everything after the reversed domain name as desired.
+ It is the responsibility of the entity that is the naming
+ authority to ensure that the iSCSI names it assigns are
+ worldwide unique. For example, "Example Storage Arrays, Inc.",
+ might own the domain name "example.com".
+
+ The following are examples of iSCSI qualified names that might be
+ generated by "EXAMPLE Storage Arrays, Inc."
+
+ Naming String defined by
+ Type Date Auth "example.com" naming authority
+ +--++-----+ +---------+ +--------------------------------+
+ | || | | | | |
+
+ iqn.2001-04.com.example:storage:diskarrays-sn-a8675309
+ iqn.2001-04.com.example
+ iqn.2001-04.com.example:storage.tape1.sys1.xyz
+ iqn.2001-04.com.example:storage.disk2.sys1.xyz
+
+
+
+Satran, et al. Standards Track [Page 33]
+
+RFC 3720 iSCSI April 2004
+
+
+
+3.2.6.3.2. Type "eui." (IEEE EUI-64 format)
+
+ The IEEE Registration Authority provides a service for assigning
+ globally unique identifiers [EUI]. The EUI-64 format is used to
+ build a global identifier in other network protocols. For example,
+ Fibre Channel defines a method of encoding it into a WorldWideName.
+ For more information on registering for EUI identifiers, see [OUI].
+
+ The format is "eui." followed by an EUI-64 identifier (16
+ ASCII-encoded hexadecimal digits).
+
+ Example iSCSI name:
+
+ Type EUI-64 identifier (ASCII-encoded hexadecimal)
+ +--++--------------+
+ | || |
+ eui.02004567A425678D
+
+ The IEEE EUI-64 iSCSI name format might be used when a manufacturer
+ is already registered with the IEEE Registration Authority and uses
+ EUI-64 formatted worldwide unique names for its products.
+
+ More examples of name construction are discussed in [RFC3721].
+
+3.2.7. Persistent State
+
+ iSCSI does not require any persistent state maintenance across
+ sessions. However, in some cases, SCSI requires persistent
+ identification of the SCSI initiator port name (See Section 3.4.2
+ SCSI Architecture Model and Section 3.4.3 Consequences of the Model).
+
+ iSCSI sessions do not persist through power cycles and boot
+ operations.
+
+ All iSCSI session and connection parameters are re-initialized upon
+ session and connection creation.
+
+ Commands persist beyond connection termination if the session
+ persists and command recovery within the session is supported.
+ However, when a connection is dropped, command execution, as
+ perceived by iSCSI (i.e., involving iSCSI protocol exchanges for the
+ affected task), is suspended until a new allegiance is established by
+ the 'task reassign' task management function. (See Section 10.5 Task
+ Management Function Request.)
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 34]
+
+RFC 3720 iSCSI April 2004
+
+
+3.2.8. Message Synchronization and Steering
+
+ iSCSI presents a mapping of the SCSI protocol onto TCP. This
+ encapsulation is accomplished by sending iSCSI PDUs of varying
+ lengths. Unfortunately, TCP does not have a built-in mechanism for
+ signaling message boundaries at the TCP layer. iSCSI overcomes this
+ obstacle by placing the message length in the iSCSI message header.
+ This serves to delineate the end of the current message as well as
+ the beginning of the next message.
+
+ In situations where IP packets are delivered in order from the
+ network, iSCSI message framing is not an issue and messages are
+ processed one after the other. In the presence of IP packet
+ reordering (i.e., frames being dropped), legacy TCP implementations
+ store the "out of order" TCP segments in temporary buffers until the
+ missing TCP segments arrive, upon which the data must be copied to
+ the application buffers. In iSCSI, it is desirable to steer the SCSI
+ data within these out of order TCP segments into the pre-allocated
+ SCSI buffers rather than store them in temporary buffers. This
+ decreases the need for dedicated reassembly buffers as well as the
+ latency and bandwidth related to extra copies.
+
+ Relying solely on the "message length" information from the iSCSI
+ message header may make it impossible to find iSCSI message
+ boundaries in subsequent TCP segments due to the loss of a TCP
+ segment that contains the iSCSI message length. The missing TCP
+ segment(s) must be received before any of the following segments can
+ be steered to the correct SCSI buffers (due to the inability to
+ determine the iSCSI message boundaries). Since these segments cannot
+ be steered to the correct location, they must be saved in temporary
+ buffers that must then be copied to the SCSI buffers.
+
+ Different schemes can be used to recover synchronization. To make
+ these schemes work, iSCSI implementations have to make sure that the
+ appropriate protocol layers are provided with enough information to
+ implement a synchronization and/or data steering mechanism. One of
+ these schemes is detailed in Appendix A. - Sync and Steering with
+ Fixed Interval Markers -.
+
+ The Fixed Interval Markers (FIM) scheme works by inserting markers in
+ the payload stream at fixed intervals that contain the offset for the
+ start of the next iSCSI PDU.
+
+ Under normal circumstances (no PDU loss or data reception out of
+ order), iSCSI data steering can be accomplished by using the
+ identifying tag and the data offset fields in the iSCSI header in
+ addition to the TCP sequence number from the TCP header. The
+
+
+
+
+Satran, et al. Standards Track [Page 35]
+
+RFC 3720 iSCSI April 2004
+
+
+ identifying tag helps associate the PDU with a SCSI buffer address
+ while the data offset and TCP sequence number are used to determine
+ the offset within the buffer.
+
+ When the part of the TCP data stream containing an iSCSI PDU header
+ is delayed or lost, markers may be used to minimize the damage as
+ follows:
+
+ - Markers indicate where the next iSCSI PDU starts and enable
+ continued processing when iSCSI headers have to be dropped due to
+ data errors discovered at the iSCSI level (e.g., iSCSI header CRC
+ errors).
+
+ - Markers help minimize the amount of data that has to be kept by
+ the TCP/iSCSI layer while waiting for a late TCP packet arrival
+ or recovery, because later they might help find iSCSI PDU headers
+ and use the information contained in those to steer data to SCSI
+ buffers.
+
+3.2.8.1. Sync/Steering and iSCSI PDU Length
+
+ When a large iSCSI message is sent, the TCP segment(s) that contain
+ the iSCSI header may be lost. The remaining TCP segment(s), up to
+ the next iSCSI message, must be buffered (in temporary buffers)
+ because the iSCSI header that indicates to which SCSI buffers the
+ data are to be steered was lost. To minimize the amount of
+ buffering, it is recommended that the iSCSI PDU length be restricted
+ to a small value (perhaps a few TCP segments in length). During
+ login, each end of the iSCSI session specifies the maximum iSCSI PDU
+ length it will accept.
+
+3.3. iSCSI Session Types
+
+ iSCSI defines two types of sessions:
+
+ a) Normal operational session - an unrestricted session.
+ b) Discovery-session - a session only opened for target
+ discovery. The target MUST ONLY accept text requests with the
+ SendTargets key and a logout request with the reason "close
+ the session". All other requests MUST be rejected.
+
+ The session type is defined during login with the key=value parameter
+ in the login command.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 36]
+
+RFC 3720 iSCSI April 2004
+
+
+3.4. SCSI to iSCSI Concepts Mapping Model
+
+ The following diagram shows an example of how multiple iSCSI Nodes
+ (targets in this case) can coexist within the same Network Entity and
+ can share Network Portals (IP addresses and TCP ports). Other more
+ complex configurations are also possible. For detailed descriptions
+ of the components of these diagrams, see Section 3.4.1 iSCSI
+ Architecture Model.
+
+ +-----------------------------------+
+ | Network Entity (iSCSI Client) |
+ | |
+ | +-------------+ |
+ | | iSCSI Node | |
+ | | (Initiator) | |
+ | +-------------+ |
+ | | | |
+ | +--------------+ +--------------+ |
+ | |Network Portal| |Network Portal| |
+ | | 10.1.30.4 | | 10.1.40.6 | |
+ +-+--------------+-+--------------+-+
+ | |
+ | IP Networks |
+ | |
+ +-+--------------+-+--------------+-+
+ | |Network Portal| |Network Portal| |
+ | | 10.1.30.21 | | 10.1.40.3 | |
+ | | TCP Port 3260| | TCP Port 3260| |
+ | +--------------+ +--------------+ |
+ | | | |
+ | ----------------- |
+ | | | |
+ | +-------------+ +--------------+ |
+ | | iSCSI Node | | iSCSI Node | |
+ | | (Target) | | (Target) | |
+ | +-------------+ +--------------+ |
+ | |
+ | Network Entity (iSCSI Server) |
+ +-----------------------------------+
+
+3.4.1. iSCSI Architecture Model
+
+ This section describes the part of the iSCSI architecture model that
+ has the most bearing on the relationship between iSCSI and the SCSI
+ Architecture Model.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 37]
+
+RFC 3720 iSCSI April 2004
+
+
+ a) Network Entity - represents a device or gateway that is
+ accessible from the IP network. A Network Entity must have
+ one or more Network Portals (see item d), each of which can be
+ used by some iSCSI Nodes (see item (b)) contained in that
+ Network Entity to gain access to the IP network.
+
+ b) iSCSI Node - represents a single iSCSI initiator or iSCSI
+ target. There are one or more iSCSI Nodes within a Network
+ Entity. The iSCSI Node is accessible via one or more Network
+ Portals (see item d). An iSCSI Node is identified by its
+ iSCSI Name (see Section 3.2.6 iSCSI Names and Chapter 12).
+ The separation of the iSCSI Name from the addresses used by
+ and for the iSCSI node allows multiple iSCSI nodes to use the
+ same addresses, and the same iSCSI node to use multiple
+ addresses.
+
+ c) An alias string may also be associated with an iSCSI Node.
+ The alias allows an organization to associate a user friendly
+ string with the iSCSI Name. However, the alias string is not
+ a substitute for the iSCSI Name.
+
+ d) Network Portal - a component of a Network Entity that has a
+ TCP/IP network address and that may be used by an iSCSI Node
+ within that Network Entity for the connection(s) within one of
+ its iSCSI sessions. In an initiator, it is identified by its
+ IP address. In a target, it is identified by its IP address
+ and its listening TCP port.
+
+ e) Portal Groups - iSCSI supports multiple connections within the
+ same session; some implementations will have the ability to
+ combine connections in a session across multiple Network
+ Portals. A Portal Group defines a set of Network Portals
+ within an iSCSI Node that collectively supports the capability
+ of coordinating a session with connections that span these
+ portals. Not all Network Portals within a Portal Group need
+ to participate in every session connected through that Portal
+ Group. One or more Portal Groups may provide access to an
+ iSCSI Node. Each Network Portal, as utilized by a given iSCSI
+ Node, belongs to exactly one portal group within that node.
+ Portal Groups are identified within an iSCSI Node by a portal
+ group tag, a simple unsigned-integer between 0 and 65535 (see
+ Section 12.3 SendTargets). All Network Portals with the same
+ portal group tag in the context of a given iSCSI Node are in
+ the same Portal Group.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 38]
+
+RFC 3720 iSCSI April 2004
+
+
+ Both iSCSI Initiators and iSCSI Targets have portal groups,
+ though only the iSCSI Target Portal Groups are used directly
+ in the iSCSI protocol (e.g., in SendTargets). For references
+ to the initiator Portal Groups, see Section 9.1.1 Conservative
+ Reuse of ISIDs.
+
+ f) Portals within a Portal Group should support similar session
+ parameters, because they may participate in a common session.
+
+ The following diagram shows an example of one such configuration on a
+ target and how a session that shares Network Portals within a Portal
+ Group may be established.
+
+ ----------------------------IP Network---------------------
+ | | |
+ +----|---------------|-----+ +----|---------+
+ | +---------+ +---------+ | | +---------+ |
+ | | Network | | Network | | | | Network | |
+ | | Portal | | Portal | | | | Portal | |
+ | +--|------+ +---------+ | | +---------+ |
+ | | | | | | |
+ | | Portal | | | | Portal |
+ | | Group 1 | | | | Group 2 |
+ +--------------------------+ +--------------+
+ | | |
+ +--------|---------------|--------------------|--------------------+
+ | | | | |
+ | +----------------------------+ +-----------------------------+ |
+ | | iSCSI Session (Target side)| | iSCSI Session (Target side) | |
+ | | | | | |
+ | | (TSIH = 56) | | (TSIH = 48) | |
+ | +----------------------------+ +-----------------------------+ |
+ | |
+ | iSCSI Target Node |
+ | (within Network Entity, not shown) |
+ +------------------------------------------------------------------+
+
+3.4.2. SCSI Architecture Model
+
+ This section describes the relationship between the SCSI Architecture
+ Model [SAM2] and the constructs of the SCSI device, SCSI port and I_T
+ nexus, and the iSCSI constructs described in Section 3.4.1 iSCSI
+ Architecture Model.
+
+ This relationship implies implementation requirements in order to
+ conform to the SAM2 model and other SCSI operational functions.
+ These requirements are detailed in Section 3.4.3 Consequences of the
+ Model.
+
+
+
+Satran, et al. Standards Track [Page 39]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following list outlines mappings of SCSI architectural elements
+ to iSCSI.
+
+ a) SCSI Device - the SAM2 term for an entity that contains one or
+ more SCSI ports that are connected to a service delivery
+ subsystem and supports a SCSI application protocol. For
+ example, a SCSI Initiator Device contains one or more SCSI
+ Initiator Ports and zero or more application clients. A SCSI
+ Target Device contains one or more SCSI Target Ports and one
+ or more logical units. For iSCSI, the SCSI Device is the
+ component within an iSCSI Node that provides the SCSI
+ functionality. As such, there can be one SCSI Device, at
+ most, within an iSCSI Node. Access to the SCSI Device can
+ only be achieved in an iSCSI normal operational session (see
+ Section 3.3 iSCSI Session Types). The SCSI Device Name is
+ defined to be the iSCSI Name of the node and MUST be used in
+ the iSCSI protocol.
+
+ b) SCSI Port - the SAM2 term for an entity in a SCSI Device that
+ provides the SCSI functionality to interface with a service
+ delivery subsystem or transport. For iSCSI, the definition of
+ SCSI Initiator Port and SCSI Target Port are different.
+
+ SCSI Initiator Port: This maps to one endpoint of an iSCSI
+ normal operational session (see Section 3.3 iSCSI Session
+ Types). An iSCSI normal operational session is negotiated
+ through the login process between an iSCSI initiator node and
+ an iSCSI target node. At successful completion of this
+ process, a SCSI Initiator Port is created within the SCSI
+ Initiator Device. The SCSI Initiator Port Name and SCSI
+ Initiator Port Identifier are both defined to be the iSCSI
+ Initiator Name together with (a) a label that identifies it as
+ an initiator port name/identifier and (b) the ISID portion of
+ the session identifier.
+
+ SCSI Target Port: This maps to an iSCSI Target Portal Group.
+ The SCSI Target Port Name and the SCSI Target Port Identifier
+ are both defined to be the iSCSI Target Name together with (a)
+ a label that identifies it as a target port name/identifier
+ and (b) the portal group tag.
+
+ The SCSI Port Name MUST be used in iSCSI. When used in SCSI
+ parameter data, the SCSI port name MUST be encoded as:
+ - The iSCSI Name in UTF-8 format, followed by
+ - a comma separator (1 byte), followed by
+ - the ASCII character 'i' (for SCSI Initiator Port) or the
+ ASCII character 't' (for SCSI Target Port) (1 byte),
+ followed by
+
+
+
+Satran, et al. Standards Track [Page 40]
+
+RFC 3720 iSCSI April 2004
+
+
+ - a comma separator (1 byte), followed by
+ - a text encoding as a hex-constant (see Section 5.1 Text
+ Format) of the ISID (for SCSI initiator port) or the portal
+ group tag (for SCSI target port) including the initial 0X
+ or 0x and the terminating null (15 bytes).
+
+ The ASCII character 'i' or 't' is the label that identifies
+ this port as either a SCSI Initiator Port or a SCSI Target
+ Port.
+
+ c) I_T nexus - a relationship between a SCSI Initiator Port and a
+ SCSI Target Port, according to [SAM2]. For iSCSI, this
+ relationship is a session, defined as a relationship between
+ an iSCSI Initiator's end of the session (SCSI Initiator Port)
+ and the iSCSI Target's Portal Group. The I_T nexus can be
+ identified by the conjunction of the SCSI port names or by the
+ iSCSI session identifier SSID. iSCSI defines the I_T nexus
+ identifier to be the tuple (iSCSI Initiator Name + 'i' + ISID,
+ iSCSI Target Name + 't' + Portal Group Tag).
+
+ NOTE: The I_T nexus identifier is not equal to the session
+ identifier (SSID).
+
+3.4.3. Consequences of the Model
+
+ This section describes implementation and behavioral requirements
+ that result from the mapping of SCSI constructs to the iSCSI
+ constructs defined above. Between a given SCSI initiator port and a
+ given SCSI target port, only one I_T nexus (session) can exist. No
+ more than one nexus relationship (parallel nexus) is allowed by
+ [SAM2]. Therefore, at any given time, only one session can exist
+ between a given iSCSI initiator node and an iSCSI target node, with
+ the same session identifier (SSID).
+
+ These assumptions lead to the following conclusions and requirements:
+
+ ISID RULE: Between a given iSCSI Initiator and iSCSI Target Portal
+ Group (SCSI target port), there can only be one session with a given
+ value for ISID that identifies the SCSI initiator port. See Section
+ 10.12.5 ISID.
+
+ The structure of the ISID that contains a naming authority component
+ (see Section 10.12.5 ISID and [RFC3721]) provides a mechanism to
+ facilitate compliance with the ISID rule. (See Section 9.1.1
+ Conservative Reuse of ISIDs.)
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 41]
+
+RFC 3720 iSCSI April 2004
+
+
+ The iSCSI Initiator Node should manage the assignment of ISIDs prior
+ to session initiation. The "ISID RULE" does not preclude the use of
+ the same ISID from the same iSCSI Initiator with different Target
+ Portal Groups on the same iSCSI target or on other iSCSI targets (see
+ Section 9.1.1 Conservative Reuse of ISIDs). Allowing this would be
+ analogous to a single SCSI Initiator Port having relationships
+ (nexus) with multiple SCSI target ports on the same SCSI target
+ device or SCSI target ports on other SCSI target devices. It is also
+ possible to have multiple sessions with different ISIDs to the same
+ Target Portal Group. Each such session would be considered to be
+ with a different initiator even when the sessions originate from the
+ same initiator device. The same ISID may be used by a different
+ iSCSI initiator because it is the iSCSI Name together with the ISID
+ that identifies the SCSI Initiator Port.
+
+ NOTE: A consequence of the ISID RULE and the specification for the
+ I_T nexus identifier is that two nexus with the same identifier
+ should never exist at the same time.
+
+ TSIH RULE: The iSCSI Target selects a non-zero value for the TSIH at
+ session creation (when an initiator presents a 0 value at Login).
+ After being selected, the same TSIH value MUST be used whenever the
+ initiator or target refers to the session and a TSIH is required.
+
+3.4.3.1. I_T Nexus State
+
+ Certain nexus relationships contain an explicit state (e.g.,
+ initiator-specific mode pages) that may need to be preserved by the
+ device server [SAM2] in a logical unit through changes or failures in
+ the iSCSI layer (e.g., session failures). In order for that state to
+ be restored, the iSCSI initiator should reestablish its session
+ (re-login) to the same Target Portal Group using the previous ISID.
+ That is, it should perform session recovery as described in Chapter
+ 6. This is because the SCSI initiator port identifier and the SCSI
+ target port identifier (or relative target port) form the datum that
+ the SCSI logical unit device server uses to identify the I_T nexus.
+
+3.5. Request/Response Summary
+
+ This section lists and briefly describes all the iSCSI PDU types
+ (request and responses).
+
+ All iSCSI PDUs are built as a set of one or more header segments
+ (basic and auxiliary) and zero or one data segments. The header
+ group and the data segment may each be followed by a CRC (digest).
+
+ The basic header segment has a fixed length of 48 bytes.
+
+
+
+
+Satran, et al. Standards Track [Page 42]
+
+RFC 3720 iSCSI April 2004
+
+
+3.5.1. Request/Response Types Carrying SCSI Payload
+
+3.5.1.1. SCSI-Command
+
+ This request carries the SCSI CDB and all the other SCSI execute
+ command procedure call (see [SAM2]) IN arguments such as task
+ attributes, Expected Data Transfer Length for one or both transfer
+ directions (the latter for bidirectional commands), and Task Tag (as
+ part of the I_T_L_x nexus). The I_T_L nexus is derived by the
+ initiator and target from the LUN field in the request and the I_T
+ nexus is implicit in the session identification.
+
+ In addition, the SCSI-command PDU carries information required for
+ the proper operation of the iSCSI protocol - the command sequence
+ number (CmdSN) for the session and the expected status number
+ (ExpStatSN) for the connection.
+
+ All or part of the SCSI output (write) data associated with the SCSI
+ command may be sent as part of the SCSI-Command PDU as a data
+ segment.
+
+3.5.1.2. SCSI-Response
+
+ The SCSI-Response carries all the SCSI execute-command procedure call
+ (see [SAM2]) OUT arguments and the SCSI execute-command procedure
+ call return value.
+
+ The SCSI-Response contains the residual counts from the operation, if
+ any, an indication of whether the counts represent an overflow or an
+ underflow, and the SCSI status if the status is valid or a response
+ code (a non-zero return value for the execute-command procedure call)
+ if the status is not valid.
+
+ For a valid status that indicates that the command has been
+ processed, but resulted in an exception (e.g., a SCSI CHECK
+ CONDITION), the PDU data segment contains the associated sense data.
+ The use of Autosense ([SAM2]) is REQUIRED by iSCSI.
+
+ Some data segment content may also be associated (in the data
+ segment) with a non-zero response code.
+
+ In addition, the SCSI-Response PDU carries information required for
+ the proper operation of the iSCSI protocol:
+
+ - The number of Data-In PDUs that a target has sent (to enable
+ the initiator to check that all have arrived).
+ - StatSN - the Status Sequence Number on this connection.
+
+
+
+
+Satran, et al. Standards Track [Page 43]
+
+RFC 3720 iSCSI April 2004
+
+
+ - ExpCmdSN - the next Expected Command Sequence Number at the
+ target.
+ - MaxCmdSN - the maximum CmdSN acceptable at the target from
+ this initiator.
+
+3.5.1.3 Task Management Function Request
+
+ The Task Management function request provides an initiator with a way
+ to explicitly control the execution of one or more SCSI Tasks or
+ iSCSI functions. The PDU carries a function identifier (which task
+ management function to perform) and enough information to
+ unequivocally identify the task or task-set on which to perform the
+ action, even if the task(s) to act upon has not yet arrived or has
+ been discarded due to an error.
+
+ The referenced tag identifies an individual task if the function
+ refers to an individual task.
+
+ The I_T_L nexus identifies task sets. In iSCSI the I_T_L nexus is
+ identified by the LUN and the session identification (the session
+ identifies an I_T nexus).
+
+ For task sets, the CmdSN of the Task Management function request
+ helps identify the tasks upon which to act, namely all tasks
+ associated with a LUN and having a CmdSN preceding the Task
+ Management function request CmdSN.
+
+ For a Task Management function, the coordination between responses to
+ the tasks affected and the Task Management function response is done
+ by the target.
+
+3.5.1.4. Task Management Function Response
+
+ The Task Management function response carries an indication of
+ function completion for a Task Management function request including
+ how it was completed (response and qualifier) and additional
+ information for failure responses.
+
+ After the Task Management response indicates Task Management function
+ completion, the initiator will not receive any additional responses
+ from the affected tasks.
+
+3.5.1.5. SCSI Data-Out and SCSI Data-In
+
+ SCSI Data-Out and SCSI Data-In are the main vehicles by which SCSI
+ data payload is carried between initiator and target. Data payload
+ is associated with a specific SCSI command through the Initiator Task
+ Tag. For target convenience, outgoing solicited data also carries a
+
+
+
+Satran, et al. Standards Track [Page 44]
+
+RFC 3720 iSCSI April 2004
+
+
+ Target Transfer Tag (copied from R2T) and the LUN. Each PDU contains
+ the payload length and the data offset relative to the buffer address
+ contained in the SCSI execute command procedure call.
+
+ In each direction, the data transfer is split into "sequences". An
+ end-of-sequence is indicated by the F bit.
+
+ An outgoing sequence is either unsolicited (only the first sequence
+ can be unsolicited) or consists of all the Data-Out PDUs sent in
+ response to an R2T.
+
+ Input sequences are built to enable the direction switching for
+ bidirectional commands.
+
+ For input, the target may request positive acknowledgement of input
+ data. This is limited to sessions that support error recovery and is
+ implemented through the A bit in the SCSI Data-In PDU header.
+
+ Data-In and Data-Out PDUs also carry the DataSN to enable the
+ initiator and target to detect missing PDUs (discarded due to an
+ error).
+
+ In addition, StatSN is carried by the Data-In PDUs.
+
+ To enable a SCSI command to be processed while involving a minimum
+ number of messages, the last SCSI Data-In PDU passed for a command
+ may also contain the status if the status indicates termination with
+ no exceptions (no sense or response involved).
+
+3.5.1.6. Ready To Transfer (R2T)
+
+ R2T is the mechanism by which the SCSI target "requests" the
+ initiator for output data. R2T specifies to the initiator the offset
+ of the requested data relative to the buffer address from the execute
+ command procedure call and the length of the solicited data.
+
+ To help the SCSI target associate the resulting Data-Out with an R2T,
+ the R2T carries a Target Transfer Tag that will be copied by the
+ initiator in the solicited SCSI Data-Out PDUs. There are no protocol
+ specific requirements with regard to the value of these tags, but it
+ is assumed that together with the LUN, they will enable the target to
+ associate data with an R2T.
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 45]
+
+RFC 3720 iSCSI April 2004
+
+
+ R2T also carries information required for proper operation of the
+ iSCSI protocol, such as:
+
+ - R2TSN (to enable an initiator to detect a missing R2T)
+ - StatSN
+ - ExpCmdSN
+ - MaxCmdSN
+
+3.5.2. Requests/Responses carrying SCSI and iSCSI Payload
+
+3.5.2.1. Asynchronous Message
+
+ Asynchronous Messages are used to carry SCSI asynchronous events
+ (AEN) and iSCSI asynchronous messages.
+
+ When carrying an AEN, the event details are reported as sense data in
+ the data segment.
+
+3.5.3. Requests/Responses Carrying iSCSI Only Payload
+
+3.5.3.1. Text Request and Text Response
+
+ Text requests and responses are designed as a parameter negotiation
+ vehicle and as a vehicle for future extension.
+
+ In the data segment, Text Requests/Responses carry text information
+ using a simple "key=value" syntax.
+
+ Text Request/Responses may form extended sequences using the same
+ Initiator Task Tag. The initiator uses the F (Final) flag bit in the
+ text request header to indicate its readiness to terminate a
+ sequence. The target uses the F (Final) flag bit in the text
+ response header to indicate its consent to sequence termination.
+
+ Text Request and Responses also use the Target Transfer Tag to
+ indicate continuation of an operation or a new beginning. A target
+ that wishes to continue an operation will set the Target Transfer Tag
+ in a Text Response to a value different from the default 0xffffffff.
+ An initiator willing to continue will copy this value into the Target
+ Transfer Tag of the next Text Request. If the initiator wants to
+ restart the current target negotiation (start fresh) will set the
+ Target Transfer Tag to 0xffffffff.
+
+ Although a complete exchange is always started by the initiator,
+ specific parameter negotiations may be initiated by the initiator or
+ target.
+
+
+
+
+
+Satran, et al. Standards Track [Page 46]
+
+RFC 3720 iSCSI April 2004
+
+
+3.5.3.2. Login Request and Login Response
+
+ Login Requests and Responses are used exclusively during the Login
+ Phase of each connection to set up the session and connection
+ parameters. (The Login Phase consists of a sequence of login
+ requests and responses carrying the same Initiator Task Tag.)
+
+ A connection is identified by an arbitrarily selected connection-ID
+ (CID) that is unique within a session.
+
+ Similar to the Text Requests and Responses, Login Requests/Responses
+ carry key=value text information with a simple syntax in the data
+ segment.
+
+ The Login Phase proceeds through several stages (security
+ negotiation, operational parameter negotiation) that are selected
+ with two binary coded fields in the header -- the "current stage"
+ (CSG) and the "next stage" (NSG) with the appearance of the latter
+ being signaled by the "transit" flag (T).
+
+ The first Login Phase of a session plays a special role, called the
+ leading login, which determines some header fields (e.g., the version
+ number, the maximum number of connections, and the session
+ identification).
+
+ The CmdSN initial value is also set by the leading login.
+
+ StatSN for each connection is initiated by the connection login.
+
+ A login request may indicate an implied logout (cleanup) of the
+ connection to be logged in (a connection restart) by using the same
+ Connection ID (CID) as an existing connection, as well as the same
+ session identifying elements of the session to which the old
+ connection was associated.
+
+3.5.3.3. Logout Request and Response
+
+ Logout Requests and Responses are used for the orderly closing of
+ connections for recovery or maintenance. The logout request may be
+ issued following a target prompt (through an asynchronous message) or
+ at an initiators initiative. When issued on the connection to be
+ logged out, no other request may follow it.
+
+ The Logout Response indicates that the connection or session cleanup
+ is completed and no other responses will arrive on the connection (if
+ received on the logging out connection). In addition, the Logout
+ Response indicates how long the target will continue to hold
+ resources for recovery (e.g., command execution that continues on a
+
+
+
+Satran, et al. Standards Track [Page 47]
+
+RFC 3720 iSCSI April 2004
+
+
+ new connection) in the text key Time2Retain and how long the
+ initiator must wait before proceeding with recovery in the text key
+ Time2Wait.
+
+3.5.3.4. SNACK Request
+
+ With the SNACK Request, the initiator requests retransmission of
+ numbered-responses or data from the target. A single SNACK request
+ covers a contiguous set of missing items, called a run, of a given
+ type of items. The type is indicated in a type field in the PDU
+ header. The run is composed of an initial item (StatSN, DataSN,
+ R2TSN) and the number of missed Status, Data, or R2T PDUs. For long
+ Data-In sequences, the target may request (at predefined minimum
+ intervals) a positive acknowledgement for the data sent. A SNACK
+ request with a type field that indicates ACK and the number of
+ Data-In PDUs acknowledged conveys this positive acknowledgement.
+
+3.5.3.5. Reject
+
+ Reject enables the target to report an iSCSI error condition (e.g.,
+ protocol, unsupported option) that uses a Reason field in the PDU
+ header and includes the complete header of the bad PDU in the Reject
+ PDU data segment.
+
+3.5.3.6. NOP-Out Request and NOP-In Response
+
+ This request/response pair may be used by an initiator and target as
+ a "ping" mechanism to verify that a connection/session is still
+ active and all of its components are operational. Such a ping may be
+ triggered by the initiator or target. The triggering party indicates
+ that it wants a reply by setting a value different from the default
+ 0xffffffff in the corresponding Initiator/Target Transfer Tag.
+
+ NOP-In/NOP-Out may also be used "unidirectional" to convey to the
+ initiator/target command, status or data counter values when there is
+ no other "carrier" and there is a need to update the initiator/
+ target.
+
+4. SCSI Mode Parameters for iSCSI
+
+ There are no iSCSI specific mode pages.
+
+5. Login and Full Feature Phase Negotiation
+
+ iSCSI parameters are negotiated at session or connection
+ establishment by using Login Requests and Responses (see Section
+ 3.2.3 iSCSI Login) and during the Full Feature Phase (Section 3.2.4
+ iSCSI Full Feature Phase) by using Text Requests and Responses. In
+
+
+
+Satran, et al. Standards Track [Page 48]
+
+RFC 3720 iSCSI April 2004
+
+
+ both cases the mechanism used is an exchange of iSCSI-text-key=value
+ pairs. For brevity iSCSI-text-keys are called just keys in the rest
+ of this document.
+
+ Keys are either declarative or require negotiation and the key
+ description indicates if the key is declarative or requires
+ negotiation.
+
+ For the declarative keys, the declaring party sets a value for the
+ key. The key specification indicates if the key can be declared by
+ the initiator, target or both.
+
+ For the keys that require negotiation one of the parties (the
+ proposing party) proposes a value or set of values by including the
+ key=value in the data part of a Login or Text Request or Response
+ PDUs. The other party (the accepting party) makes a selection based
+ on the value or list of values proposed and includes the selected
+ value in a key=value in the data part of one of the following Login
+ or Text Response or Request PDUs. For most of the keys both the
+ initiator and target can be proposing parties.
+
+ The login process proceeds in two stages - the security negotiation
+ stage and the operational parameter negotiation stage. Both stages
+ are optional but at least one of them has to be present to enable the
+ setting of some mandatory parameters.
+
+ If present, the security negotiation stage precedes the operational
+ parameter negotiation stage.
+
+ Progression from stage to stage is controlled by the T (Transition)
+ bit in the Login Request/Response PDU header. Through the T bit set
+ to 1, the initiator indicates that it would like to transition. The
+ target agrees to the transition (and selects the next stage) when
+ ready. A field in the Login PDU header indicates the current stage
+ (CSG) and during transition, another field indicates the next stage
+ (NSG) proposed (initiator) and selected (target).
+
+ The text negotiation process is used to negotiate or declare
+ operational parameters. The negotiation process is controlled by the
+ F (final) bit in the PDU header. During text negotiations, the F bit
+ is used by the initiator to indicate that it is ready to finish the
+ negotiation and by the Target to acquiesce the end of negotiation.
+
+ Since some key=value pairs may not fit entirely in a single PDU, the
+ C (continuation) bit is used (both in Login and Text) to indicate
+ that "more follows".
+
+
+
+
+
+Satran, et al. Standards Track [Page 49]
+
+RFC 3720 iSCSI April 2004
+
+
+ The text negotiation uses an additional mechanism by which a target
+ may deliver larger amounts of data to an enquiring initiator. The
+ target sets a Target Task Tag to be used as a bookmark that when
+ returned by the initiator, means "go on". If reset to a "neutral
+ value", it means "forget about the rest".
+
+ This chapter details types of keys and values used, the syntax rules
+ for parameter formation, and the negotiation schemes to be used with
+ different types of parameters.
+
+5.1. Text Format
+
+ The initiator and target send a set of key=value pairs encoded in
+ UTF-8 Unicode. All the text keys and text values specified in this
+ document are to be presented and interpreted in the case in which
+ they appear in this document. They are case sensitive.
+
+ The following character symbols are used in this document for text
+ items (the hexadecimal values represent Unicode code points):
+
+ (a-z, A-Z) - letters
+ (0-9) - digits
+ " " (0x20) - space
+ "." (0x2e) - dot
+ "-" (0x2d) - minus
+ "+" (0x2b) - plus
+ "@" (0x40) - commercial at
+ "_" (0x5f) - underscore
+ "=" (0x3d) - equal
+ ":" (0x3a) - colon
+ "/" (0x2f) - solidus or slash
+ "[" (0x5b) - left bracket
+ "]" (0x5d) - right bracket
+ null (0x00) - null separator
+ "," (0x2c) - comma
+ "~" (0x7e) - tilde
+
+ Key=value pairs may span PDU boundaries. An initiator or target that
+ sends partial key=value text within a PDU indicates that more text
+ follows by setting the C bit in the Text or Login Request or Text or
+ Login Response to 1. Data segments in a series of PDUs that have the
+ C bit set to 1 and end with a PDU that have the C bit set to 0, or
+ include a single PDU that has the C bit set to 0, have to be
+ considered as forming a single logical-text-data-segment (LTDS).
+
+ Every key=value pair, including the last or only pair in a LTDS, MUST
+ be followed by one null (0x00) delimiter.
+
+
+
+
+Satran, et al. Standards Track [Page 50]
+
+RFC 3720 iSCSI April 2004
+
+
+ A key-name is whatever precedes the first "=" in the key=value pair.
+ The term key is used frequently in this document in place of
+ key-name.
+
+ A value is whatever follows the first "=" in the key=value pair up to
+ the end of the key=value pair, but not including the null delimiter.
+
+ The following definitions will be used in the rest of this document:
+
+ standard-label: A string of one or more characters that consist of
+ letters, digits, dot, minus, plus, commercial at, or underscore.
+ A standard-label MUST begin with a capital letter and must not
+ exceed 63 characters.
+
+ key-name: A standard-label.
+
+ text-value: A string of zero or more characters that consist of
+ letters, digits, dot, minus, plus, commercial at, underscore,
+ slash, left bracket, right bracket, or colon.
+
+ iSCSI-name-value: A string of one or more characters that consist
+ of minus, dot, colon, or any character allowed by the output of
+ the iSCSI string-prep template as specified in [RFC3722] (see
+ also Section 3.2.6.2 iSCSI Name Encoding).
+
+ iSCSI-local-name-value: A UTF-8 string; no null characters are
+ allowed in the string. This encoding is to be used for localized
+ (internationalized) aliases.
+
+ boolean-value: The string "Yes" or "No".
+
+ hex-constant: A hexadecimal constant encoded as a string that
+ starts with "0x" or "0X" followed by one or more digits or the
+ letters a, b, c, d, e, f, A, B, C, D, E, or F. Hex-constants are
+ used to encode numerical values or binary strings. When used to
+ encode numerical values, the excessive use of leading 0 digits is
+ discouraged. The string following 0X (or 0x) represents a base16
+ number that starts with the most significant base16 digit,
+ followed by all other digits in decreasing order of significance
+ and ending with the least-significant base16 digit. When used to
+ encode binary strings, hexadecimal constants have an implicit
+ byte-length that includes four bits for every hexadecimal digit
+ of the constant, including leading zeroes. For example, a
+ hex-constant of n hexadecimal digits has a byte-length of (the
+ integer part of) (n+1)/2.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 51]
+
+RFC 3720 iSCSI April 2004
+
+
+ decimal-constant: An unsigned decimal number with the digit 0 or a
+ string of one or more digits that start with a non-zero digit.
+ Decimal-constants are used to encode numerical values or binary
+ strings. Decimal constants can only be used to encode binary
+ strings if the string length is explicitly specified. There is
+ no implicit length for decimal strings. Decimal-constant MUST
+ NOT be used for parameter values if the values can be equal or
+ greater than 2**64 (numerical) or for binary strings that can be
+ longer than 64 bits.
+
+ base64-constant: base64 constant encoded as a string that starts
+ with "0b" or "0B" followed by 1 or more digits or letters or plus
+ or slash or equal. The encoding is done according to [RFC2045]
+ and each character, except equal, represents a base64 digit or a
+ 6-bit binary string. Base64-constants are used to encode
+ numerical-values or binary strings. When used to encode
+ numerical values, the excessive use of leading 0 digits (encoded
+ as A) is discouraged. The string following 0B (or 0b) represents
+ a base64 number that starts with the most significant base64
+ digit, followed by all other digits in decreasing order of
+ significance and ending with the least-significant base64 digit;
+ the least significant base64 digit may be optionally followed by
+ pad digits (encoded as equal) that are not considered as part of
+ the number. When used to encode binary strings, base64-constants
+ have an implicit
+ byte-length that includes six bits for every character of the
+ constant, excluding trailing equals (i.e., a base64-constant of n
+ base64 characters excluding the trailing equals has a byte-length
+ of ((the integer part of) (n*3/4)). Correctly encoded base64
+ strings cannot have n values of 1, 5 ... k*4+1.
+
+ numerical-value: An unsigned integer always less than 2**64 encoded
+ as a decimal-constant or a hex-constant. Unsigned integer
+ arithmetic applies to numerical-values.
+
+ large-numerical-value: An unsigned integer that can be larger than
+ or equal to 2**64 encoded as a hex constant, or
+ base64-constant. Unsigned integer arithmetic applies to
+ large-numeric-values.
+
+ numeric-range: Two numerical-values separated by a tilde where the
+ value to the right of tilde must not be lower than the value to
+ the left.
+
+ regular-binary-value: A binary string not longer than 64 bits
+ encoded as a decimal constant, hex constant, or base64-constant.
+ The length of the string is either specified by the key
+ definition or is the implicit byte-length of the encoded string.
+
+
+
+Satran, et al. Standards Track [Page 52]
+
+RFC 3720 iSCSI April 2004
+
+
+ large-binary-value: A binary string longer than 64 bits encoded as
+ a hex-constant or base64-constant. The length of the string is
+ either specified by the key definition or is the implicit
+ byte-length of the encoded string.
+
+ binary-value: A regular-binary-value or a large-binary-value.
+ Operations on binary values are key specific.
+
+ simple-value: Text-value, iSCSI-name-value, boolean-value,
+ numeric-value, a numeric-range, or a binary-value.
+
+ list-of-values: A sequence of text-values separated by a comma.
+
+ If not otherwise specified, the maximum length of a simple-value (not
+ its encoded representation) is 255 bytes, not including the delimiter
+ (comma or zero byte).
+
+ Any iSCSI target or initiator MUST support receiving at least 8192
+ bytes of key=value data in a negotiation sequence. When proposing or
+ accepting authentication methods that explicitly require support for
+ very long authentication items, the initiator and target MUST support
+ receiving of at least 64 kilobytes of key=value data (see Appendix
+ 11.1.2 - Simple Public-Key Mechanism (SPKM) - that require support
+ for public key certificates).
+
+5.2. Text Mode Negotiation
+
+ During login, and thereafter, some session or connection parameters
+ are either declared or negotiated through an exchange of textual
+ information.
+
+ The initiator starts the negotiation and/or declaration through a
+ Text or Login Request and indicates when it is ready for completion
+ (by setting the F bit to 1 and keeping it to 1 in a Text Request or
+ the T bit in the Login Request). As negotiation text may span PDU
+ boundaries, a Text or Login Request or Text or Login Response PDU
+ that has the C bit set to 1 MUST NOT have the F/T bit set to 1.
+
+ A target receiving a Text or Login Request with the C bit set to 1
+ MUST answer with a Text or Login Response with no data segment
+ (DataSegmentLength 0). An initiator receiving a Text or Login
+ Response with the C bit set to 1 MUST answer with a Text or Login
+ Request with no data segment (DataSegmentLength 0).
+
+ A target or initiator SHOULD NOT use a Text or Login Response or Text
+ or Login Request with no data segment (DataSegmentLength 0) unless
+ explicitly required by a general or a key-specific negotiation rule.
+
+
+
+
+Satran, et al. Standards Track [Page 53]
+
+RFC 3720 iSCSI April 2004
+
+
+ The format of a declaration is:
+
+ Declarer-> <key>=<valuex>
+
+ The general format of text negotiation is:
+
+ Proposer-> <key>=<valuex>
+ Acceptor-> <key>={<valuey>|NotUnderstood|Irrelevant|Reject}
+
+ Thus a declaration is a one-way textual exchange while a negotiation
+ is a two-way exchange.
+
+ The proposer or declarer can either be the initiator or the target,
+ and the acceptor can either be the target or initiator, respectively.
+ Targets are not limited to respond to key=value pairs as proposed by
+ the initiator. The target may propose key=value pairs of its own.
+
+ All negotiations are explicit (i.e., the result MUST only be based on
+ newly exchanged or declared values). There are no implicit
+ proposals. If a proposal is not made, then a reply cannot be
+ expected. Conservative design also requires that default values
+ should not be relied upon when use of some other value has serious
+ consequences.
+
+ The value proposed or declared can be a numerical-value, a
+ numerical-range defined by lower and upper values with both integers
+ separated by a tilde, a binary value, a text-value, an
+ iSCSI-name-value, an iSCSI-local-name-value, a boolean-value (Yes or
+ No), or a list of comma separated text-values. A range, a
+ large-numerical-value, an iSCSI-name-value and an
+ iSCSI-local-name-value MAY ONLY be used if it is explicitly allowed.
+ An accepted value can be a numerical-value, a large-numerical-value,
+ a text-value, or a boolean-value.
+
+ If a specific key is not relevant for the current negotiation, the
+ acceptor may answer with the constant "Irrelevant" for all types of
+ negotiation. However the negotiation is not considered as failed if
+ the answer is "Irrelevant". The "Irrelevant" answer is meant for
+ those cases in which several keys are presented by a proposing party
+ but the selection made by the acceptor for one of the keys makes
+ other keys irrelevant. The following example illustrates the use of
+ "Irrelevant":
+
+ I->T OFMarker=Yes,OFMarkInt=2048~8192
+ T->I OFMarker=No,OFMarkInt=Irrelevant
+
+ I->T X#vkey1=(bla,alb,None),X#vkey2=(bla,alb)
+ T->I X#vkey1=None,X#vkey2=Irrelevant
+
+
+
+Satran, et al. Standards Track [Page 54]
+
+RFC 3720 iSCSI April 2004
+
+
+
+ Any key not understood by the acceptor may be ignored by the acceptor
+ without affecting the basic function. However, the answer for a key
+ not understood MUST be key=NotUnderstood.
+
+ The constants "None", "Reject", "Irrelevant", and "NotUnderstood" are
+ reserved and MUST ONLY be used as described here. Violation of this
+ rule is a protocol error (in particular the use of "Reject",
+ "Irrelevant", and "NotUnderstood" as proposed values).
+
+ Reject or Irrelevant are legitimate negotiation options where allowed
+ but their excessive use is discouraged. A negotiation is considered
+ complete when the acceptor has sent the key value pair even if the
+ value is "Reject", "Irrelevant", or "NotUnderstood. Sending the key
+ again would be a re-negotiation and is forbidden for many keys.
+
+ If the acceptor sends "Reject" as an answer the negotiated key is
+ left at its current value (or default if no value was set). If the
+ current value is not acceptable to the proposer on the connection or
+ to the session it is sent, the proposer MAY choose to terminate the
+ connection or session.
+
+ All keys in this document, except for the X extension formats, MUST
+ be supported by iSCSI initiators and targets when used as specified
+ here. If used as specified, these keys MUST NOT be answered with
+ NotUnderstood.
+
+ Implementers may introduce new keys by prefixing them with
+ "X-", followed by their (reversed) domain name, or with new keys
+ registered with IANA prefixing them with X#. For example, the entity
+ owning the domain example.com can issue:
+
+ X-com.example.bar.foo.do_something=3
+
+ or a new registered key may be used as in:
+
+ X#SuperCalyPhraGilistic=Yes
+
+ Implementers MAY also introduce new values, but ONLY for new keys or
+ authentication methods (see Section 11 iSCSI Security Text Keys and
+ Authentication Methods), or digests (see Section 12.1 HeaderDigest
+ and DataDigest).
+
+ Whenever parameter action or acceptance is dependent on other
+ parameters, the dependency rules and parameter sequence must be
+ specified with the parameters.
+
+
+
+
+
+Satran, et al. Standards Track [Page 55]
+
+RFC 3720 iSCSI April 2004
+
+
+ In the Login Phase (see Section 5.3 Login Phase), every stage is a
+ separate negotiation. In the FullFeaturePhase, a Text Request
+ Response sequence is a negotiation. Negotiations MUST be handled as
+ atomic operations. For example, all negotiated values go into effect
+ after the negotiation concludes in agreement or are ignored if the
+ negotiation fails.
+
+ Some parameters may be subject to integrity rules (e.g., parameter-x
+ must not exceed parameter-y or parameter-u not 1 implies parameter-v
+ be Yes). Whenever required, integrity rules are specified with the
+ keys. Checking for compliance with the integrity rule must only be
+ performed after all the parameters are available (the existent and
+ the newly negotiated). An iSCSI target MUST perform integrity
+ checking before the new parameters take effect. An initiator MAY
+ perform integrity checking.
+
+ An iSCSI initiator or target MAY terminate a negotiation that does
+ not end within a reasonable time or number of exchanges.
+
+5.2.1. List negotiations
+
+ In list negotiation, the originator sends a list of values (which may
+ include "None") in its order of preference.
+
+ The responding party MUST respond with the same key and the first
+ value that it supports (and is allowed to use for the specific
+ originator) selected from the originator list.
+
+ The constant "None" MUST always be used to indicate a missing
+ function. However, "None" is only a valid selection if it is
+ explicitly proposed.
+
+ If an acceptor does not understand any particular value in a list, it
+ MUST ignore it. If an acceptor does not support, does not
+ understand, or is not allowed to use any of the proposed options with
+ a specific originator, it may use the constant "Reject" or terminate
+ the negotiation. The selection of a value not proposed MUST be
+ handled as a protocol error.
+
+5.2.2. Simple-value Negotiations
+
+ For simple-value negotiations, the accepting party MUST answer with
+ the same key. The value it selects becomes the negotiation result.
+
+ Proposing a value not admissible (e.g., not within the specified
+ bounds) MAY be answered with the constant "Reject" or the acceptor
+ MAY select an admissible value.
+
+
+
+
+Satran, et al. Standards Track [Page 56]
+
+RFC 3720 iSCSI April 2004
+
+
+ The selection by the acceptor, of a value not admissible under the
+ selection rules is considered a protocol error. The selection rules
+ are key-specific.
+
+ For a numerical range, the value selected must be an integer within
+ the proposed range or "Reject" (if the range is unacceptable).
+
+ In Boolean negotiations (i.e., those that result in keys taking the
+ values Yes or No), the accepting party MUST answer with the same key
+ and the result of the negotiation when the received value does not
+ determine that result by itself. The last value transmitted becomes
+ the negotiation result. The rules for selecting the value to answer
+ with are expressed as Boolean functions of the value received, and
+ the value that the accepting party would have selected if given a
+ choice.
+
+ Specifically, the two cases in which answers are OPTIONAL are:
+
+ - The Boolean function is "AND" and the value "No" is received.
+ The outcome of the negotiation is "No".
+ - The Boolean function is "OR" and the value "Yes" is received.
+ The outcome of the negotiation is "Yes".
+
+ Responses are REQUIRED in all other cases, and the value chosen and
+ sent by the acceptor becomes the outcome of the negotiation.
+
+5.3. Login Phase
+
+ The Login Phase establishes an iSCSI connection between an initiator
+ and a target; it also creates a new session or associates the
+ connection to an existing session. The Login Phase sets the iSCSI
+ protocol parameters, security parameters, and authenticates the
+ initiator and target to each other.
+
+ The Login Phase is only implemented via Login Request and Responses.
+ The whole Login Phase is considered as a single task and has a single
+ Initiator Task Tag (similar to the linked SCSI commands).
+
+ The default MaxRecvDataSegmentLength is used during Login.
+
+ The Login Phase sequence of requests and responses proceeds as
+ follows:
+
+ - Login initial request
+ - Login partial response (optional)
+ - More Login Requests and Responses (optional)
+ - Login Final-Response (mandatory)
+
+
+
+
+Satran, et al. Standards Track [Page 57]
+
+RFC 3720 iSCSI April 2004
+
+
+ The initial Login Request of any connection MUST include the
+ InitiatorName key=value pair. The initial Login Request of the first
+ connection of a session MAY also include the SessionType key=value
+ pair. For any connection within a session whose type is not
+ "Discovery", the first Login Request MUST also include the TargetName
+ key=value pair.
+
+ The Login Final-response accepts or rejects the Login Request.
+
+ The Login Phase MAY include a SecurityNegotiation stage and a
+ LoginOperationalNegotiation stage or both, but MUST include at least
+ one of them. The included stage MAY be empty except for the
+ mandatory names.
+
+ The Login Requests and Responses contain a field (CSG) that indicates
+ the current negotiation stage (SecurityNegotiation or
+ LoginOperationalNegotiation). If both stages are used, the
+ SecurityNegotiation MUST precede the LoginOperationalNegotiation.
+
+ Some operational parameters can be negotiated outside the login
+ through Text Requests and Responses.
+
+ Security MUST be completely negotiated within the Login Phase. The
+ use of underlying IPsec security is specified in Chapter 8 and in
+ [RFC3723]. iSCSI support for security within the protocol only
+ consists of authentication in the Login Phase.
+
+ In some environments, a target or an initiator is not interested in
+ authenticating its counterpart. It is possible to bypass
+ authentication through the Login Request and Response.
+
+ The initiator and target MAY want to negotiate iSCSI authentication
+ parameters. Once this negotiation is completed, the channel is
+ considered secure.
+
+ Most of the negotiation keys are only allowed in a specific stage.
+ The SecurityNegotiation keys appear in Chapter 11 and the
+ LoginOperationalNegotiation keys appear in Chapter 12. Only a
+ limited set of keys (marked as Any-Stage in Chapter 12) may be used
+ in any of the two stages.
+
+ Any given Login Request or Response belongs to a specific stage; this
+ determines the negotiation keys allowed with the request or response.
+ It is considered to be a protocol error to send a key that is not
+ allowed in the current stage.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 58]
+
+RFC 3720 iSCSI April 2004
+
+
+ Stage transition is performed through a command exchange (request/
+ response) that carries the T bit and the same CSG code. During this
+ exchange, the next stage is selected by the target through the "next
+ stage" code (NSG). The selected NSG MUST NOT exceed the value stated
+ by the initiator. The initiator can request a transition whenever it
+ is ready, but a target can only respond with a transition after one
+ is proposed by the initiator.
+
+ In a negotiation sequence, the T bit settings in one pair of Login
+ Request-Responses have no bearing on the T bit settings of the next
+ pair. An initiator that has a T bit set to 1 in one pair and is
+ answered with a T bit setting of 0, may issue the next request with
+ the T bit set to 0.
+
+ When a transition is requested by the initiator and acknowledged by
+ the target, both the initiator and target switch to the selected
+ stage.
+
+ Targets MUST NOT submit parameters that require an additional
+ initiator Login Request in a Login Response with the T bit set to 1.
+
+ Stage transitions during login (including entering and exit) are only
+ possible as outlined in the following table:
+
+ +-----------------------------------------------------------+
+ |From To -> | Security | Operational | FullFeature |
+ | | | | | |
+ | V | | | |
+ +-----------------------------------------------------------+
+ | (start) | yes | yes | no |
+ +-----------------------------------------------------------+
+ | Security | no | yes | yes |
+ +-----------------------------------------------------------+
+ | Operational | no | no | yes |
+ +-----------------------------------------------------------+
+
+ The Login Final-Response that accepts a Login Request can only come
+ as a response to a Login Request with the T bit set to 1, and both
+ the request and response MUST indicate FullFeaturePhase as the next
+ phase via the NSG field.
+
+ Neither the initiator nor the target should attempt to declare or
+ negotiate a parameter more than once during login except for
+ responses to specific keys that explicitly allow repeated key
+ declarations (e.g., TargetAddress). An attempt to
+ renegotiate/redeclare parameters not specifically allowed MUST be
+ detected by the initiator and target. If such an attempt is detected
+
+
+
+
+Satran, et al. Standards Track [Page 59]
+
+RFC 3720 iSCSI April 2004
+
+
+ by the target, the target MUST respond with Login reject (initiator
+ error); if detected by the initiator, the initiator MUST drop the
+ connection.
+
+5.3.1. Login Phase Start
+
+ The Login Phase starts with a Login Request from the initiator to the
+ target. The initial Login Request includes:
+
+ - Protocol version supported by the initiator.
+ - iSCSI Initiator Name and iSCSI Target Name
+ - ISID, TSIH, and connection Ids
+ - Negotiation stage that the initiator is ready to enter.
+
+ A login may create a new session or it may add a connection to an
+ existing session. Between a given iSCSI Initiator Node (selected
+ only by an InitiatorName) and a given iSCSI target defined by an
+ iSCSI TargetName and a Target Portal Group Tag, the login results are
+ defined by the following table:
+
+
+ +------------------------------------------------------------------+
+ |ISID | TSIH | CID | Target action |
+ +------------------------------------------------------------------+
+ |new | non-zero | any | fail the login |
+ | | | | ("session does not exist") |
+ +------------------------------------------------------------------+
+ |new | zero | any | instantiate a new session |
+ +------------------------------------------------------------------+
+ |existing | zero | any | do session reinstatement |
+ | | | | (see section 5.3.5) |
+ +------------------------------------------------------------------+
+ |existing | non-zero | new | add a new connection to |
+ | | existing | | the session |
+ +------------------------------------------------------------------+
+ |existing | non-zero |existing| do connection reinstatement|
+ | | existing | | (see section 5.3.4) |
+ +------------------------------------------------------------------+
+ |existing | non-zero | any | fail the login |
+ | | new | | ("session does not exist") |
+ +------------------------------------------------------------------+
+
+ Determination of "existing" or "new" are made by the target.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 60]
+
+RFC 3720 iSCSI April 2004
+
+
+ Optionally, the Login Request may include:
+
+ - Security parameters
+ OR
+ - iSCSI operational parameters
+ AND/OR
+ - The next negotiation stage that the initiator is ready to
+ enter.
+
+ The target can answer the login in the following ways:
+
+ - Login Response with Login reject. This is an immediate rejection
+ from the target that causes the connection to terminate and the
+ session to terminate if this is the first (or only) connection of
+ a new session. The T bit and the CSG and NSG fields are
+ reserved.
+ - Login Response with Login Accept as a final response (T bit set
+ to 1 and the NSG in both request and response are set to
+ FullFeaturePhase). The response includes the protocol version
+ supported by the target and the session ID, and may include iSCSI
+ operational or security parameters (that depend on the current
+ stage).
+ - Login Response with Login Accept as a partial response (NSG not
+ set to FullFeaturePhase in both request and response) that
+ indicates the start of a negotiation sequence. The response
+ includes the protocol version supported by the target and either
+ security or iSCSI parameters (when no security mechanism is
+ chosen) supported by the target.
+
+ If the initiator decides to forego the SecurityNegotiation stage, it
+ issues the Login with the CSG set to LoginOperationalNegotiation and
+ the target may reply with a Login Response that indicates that it is
+ unwilling to accept the connection (see Section 10.13 Login Response)
+ without SecurityNegotiation and will terminate the connection with a
+ response of Authentication failure (see Section 10.13.5 Status-Class
+ and Status-Detail).
+
+ If the initiator is willing to negotiate iSCSI security, but is
+ unwilling to make the initial parameter proposal and may accept a
+ connection without iSCSI security, it issues the Login with the T bit
+ set to 1, the CSG set to SecurityNegotiation, and the NSG set to
+ LoginOperationalNegotiation. If the target is also ready to skip
+ security, the Login Response only contains the TargetPortalGroupTag
+ key (see Section 12.9 TargetPortalGroupTag), the T bit set to 1, the
+ CSG set to SecurityNegotiation, and the NSG set to
+ LoginOperationalNegotiation.
+
+
+
+
+
+Satran, et al. Standards Track [Page 61]
+
+RFC 3720 iSCSI April 2004
+
+
+ An initiator that chooses to operate without iSCSI security, with all
+ the operational parameters taking the default values, issues the
+ Login with the T bit set to 1, the CSG set to
+ LoginOperationalNegotiation, and the NSG set to FullFeaturePhase. If
+ the target is also ready to forego security and can finish its
+ LoginOperationalNegotiation, the Login Response has T bit set to 1,
+ the CSG set to LoginOperationalNegotiation, and the NSG set to
+ FullFeaturePhase in the next stage.
+
+ During the Login Phase the iSCSI target MUST return the
+ TargetPortalGroupTag key with the first Login Response PDU with which
+ it is allowed to do so (i.e., the first Login Response issued after
+ the first Login Request with the C bit set to 0) for all session
+ types when TargetName is given and the response is not a redirection.
+ The TargetPortalGroupTag key value indicates the iSCSI portal group
+ servicing the Login Request PDU. If the reconfiguration of iSCSI
+ portal groups is a concern in a given environment, the iSCSI
+ initiator should use this key to ascertain that it had indeed
+ initiated the Login Phase with the intended target portal group.
+
+5.3.2. iSCSI Security Negotiation
+
+ The security exchange sets the security mechanism and authenticates
+ the initiator user and the target to each other. The exchange
+ proceeds according to the authentication method chosen in the
+ negotiation phase and is conducted using the Login Requests' and
+ responses' key=value parameters.
+
+ An initiator directed negotiation proceeds as follows:
+
+ - The initiator sends a Login Request with an ordered list of the
+ options it supports (authentication algorithm). The options are
+ listed in the initiator's order of preference. The initiator MAY
+ also send private or public extension options.
+
+ - The target MUST reply with the first option in the list it
+ supports and is allowed to use for the specific initiator unless
+ it does not support any, in which case it MUST answer with
+ "Reject" (see Section 5.2 Text Mode Negotiation). The parameters
+ are encoded in UTF8 as key=value. For security parameters, see
+ Chapter 11.
+
+ - When the initiator considers that it is ready to conclude the
+ SecurityNegotiation stage, it sets the T bit to 1 and the NSG to
+ what it would like the next stage to be. The target will then
+ set the T bit to 1 and set the NSG to the next stage in the Login
+ Response when it finishes sending its security keys. The next
+
+
+
+
+Satran, et al. Standards Track [Page 62]
+
+RFC 3720 iSCSI April 2004
+
+
+ stage selected will be the one the target selected. If the next
+ stage is FullFeaturePhase, the target MUST respond with a Login
+ Response with the TSIH value.
+
+ If the security negotiation fails at the target, then the target MUST
+ send the appropriate Login Response PDU. If the security negotiation
+ fails at the initiator, the initiator SHOULD close the connection.
+
+ It should be noted that the negotiation might also be directed by the
+ target if the initiator does support security, but is not ready to
+ direct the negotiation (propose options).
+
+5.3.3. Operational Parameter Negotiation During the Login Phase
+
+ Operational parameter negotiation during the login MAY be done:
+
+ - Starting with the first Login Request if the initiator does not
+ propose any security/integrity option.
+
+ - Starting immediately after the security negotiation if the
+ initiator and target perform such a negotiation.
+
+ Operational parameter negotiation MAY involve several Login
+ Request-Response exchanges started and terminated by the initiator.
+ The initiator MUST indicate its intent to terminate the negotiation
+ by setting the T bit to 1; the target sets the T bit to 1 on the last
+ response.
+
+ If the target responds to a Login Request that has the T bit set to 1
+ with a Login Response that has the T bit set to 0, the initiator
+ should keep sending the Login Request (even empty) with the T bit set
+ to 1, while it still wants to switch stage, until it receives the
+ Login Response that has the T bit set to 1 or it receives a key that
+ requires it to set the T bit to 0.
+
+ Some session specific parameters can only be specified during the
+ Login Phase of the first connection of a session (i.e., begun by a
+ Login Request that contains a zero-valued TSIH) - the leading Login
+ Phase (e.g., the maximum number of connections that can be used for
+ this session).
+
+ A session is operational once it has at least one connection in
+ FullFeaturePhase. New or replacement connections can only be added
+ to a session after the session is operational.
+
+ For operational parameters, see Chapter 12.
+
+
+
+
+
+Satran, et al. Standards Track [Page 63]
+
+RFC 3720 iSCSI April 2004
+
+
+5.3.4. Connection Reinstatement
+
+ Connection reinstatement is the process of an initiator logging in
+ with an ISID-TSIH-CID combination that is possibly active from the
+ target's perspective, which causes the implicit logging out of the
+ connection corresponding to the CID, and reinstating a new Full
+ Feature Phase iSCSI connection in its place (with the same CID).
+ Thus, the TSIH in the Login PDU MUST be non-zero and the CID does not
+ change during a connection reinstatement. The Login Request performs
+ the logout function of the old connection if an explicit logout was
+ not performed earlier. In sessions with a single connection, this
+ may imply the opening of a second connection with the sole purpose of
+ cleaning up the first. Targets MUST support opening a second
+ connection even when they do not support multiple connections in Full
+ Feature Phase if ErrorRecoveryLevel is 2 and SHOULD support opening a
+ second connection if ErrorRecoveryLevel is less than 2.
+
+ If the operational ErrorRecoveryLevel is 2, connection reinstatement
+ enables future task reassignment. If the operational
+ ErrorRecoveryLevel is less than 2, connection reinstatement is the
+ replacement of the old CID without enabling task reassignment. In
+ this case, all the tasks that were active on the old CID must be
+ immediately terminated without further notice to the initiator.
+
+ The initiator connection state MUST be CLEANUP_WAIT (section 7.1.3)
+ when the initiator attempts a connection reinstatement.
+
+ In practical terms, in addition to the implicit logout of the old
+ connection, reinstatement is equivalent to a new connection login.
+
+5.3.5. Session Reinstatement, Closure, and Timeout
+
+ Session reinstatement is the process of the initiator logging in with
+ an ISID that is possibly active from the target's perspective. Thus
+ implicitly logging out the session that corresponds to the ISID and
+ reinstating a new iSCSI session in its place (with the same ISID).
+ Therefore, the TSIH in the Login PDU MUST be zero to signal session
+ reinstatement. Session reinstatement causes all the tasks that were
+ active on the old session to be immediately terminated by the target
+ without further notice to the initiator.
+
+ The initiator session state MUST be FAILED (Section 7.3 Session State
+ Diagrams) when the initiator attempts a session reinstatement.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 64]
+
+RFC 3720 iSCSI April 2004
+
+
+ Session closure is an event defined to be one of the following:
+
+ - A successful "session close" logout.
+ - A successful "connection close" logout for the last Full Feature
+ Phase connection when no other connection in the session is
+ waiting for cleanup (Section 7.2 Connection Cleanup State Diagram
+ for Initiators and Targets) and no tasks in the session are
+ waiting for reassignment.
+
+ Session timeout is an event defined to occur when the last connection
+ state timeout expires and no tasks are waiting for reassignment.
+ This takes the session to the FREE state (N6 transition in the
+ session state diagram).
+
+5.3.5.1. Loss of Nexus Notification
+
+ The iSCSI layer provides the SCSI layer with the "I_T nexus loss"
+ notification when any one of the following events happens:
+
+ a) Successful completion of session reinstatement.
+ b) Session closure event.
+ c) Session timeout event.
+
+ Certain SCSI object clearing actions may result due to the
+ notification in the SCSI end nodes, as documented in Appendix F.
+ - Clearing Effects of Various Events on Targets -.
+
+5.3.6. Session Continuation and Failure
+
+ Session continuation is the process by which the state of a
+ preexisting session continues to be used by connection reinstatement
+ (Section 5.3.4 Connection Reinstatement), or by adding a connection
+ with a new CID. Either of these actions associates the new transport
+ connection with the session state.
+
+ Session failure is an event where the last Full Feature Phase
+ connection reaches the CLEANUP_WAIT state (Section 7.2 Connection
+ Cleanup State Diagram for Initiators and Targets), or completes a
+ successful recovery logout, thus causing all active tasks (that are
+ formerly allegiant to the connection) to start waiting for task
+ reassignment.
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 65]
+
+RFC 3720 iSCSI April 2004
+
+
+5.4. Operational Parameter Negotiation Outside the Login Phase
+
+ Some operational parameters MAY be negotiated outside (after) the
+ Login Phase.
+
+ Parameter negotiation in Full Feature Phase is done through Text
+ requests and responses. Operational parameter negotiation MAY
+ involve several Text request-response exchanges, which the initiator
+ always starts and terminates using the same Initiator Task Tag. The
+ initiator MUST indicate its intent to terminate the negotiation by
+ setting the F bit to 1; the target sets the F bit to 1 on the last
+ response.
+
+ If the target responds to a Text request with the F bit set to 1 and
+ with a Text response with the F bit set to 0, the initiator should
+ keep sending the Text request (even empty) with the F bit set to 1,
+ while it still wants to finish the negotiation, until it receives the
+ Text response with the F bit set to 1. Responding to a Text request
+ with the F bit set to 1 with an empty (no key=value pairs) response
+ with the F bit set to 0 is discouraged.
+
+ Targets MUST NOT submit parameters that require an additional
+ initiator Text request in a Text response with the F bit set to 1.
+
+ In a negotiation sequence, the F bit settings in one pair of Text
+ request-responses have no bearing on the F bit settings of the next
+ pair. An initiator that has the F bit set to 1 in a request and is
+ being answered with an F bit setting of 0 may issue the next request
+ with the F bit set to 0.
+
+ Whenever the target responds with the F bit set to 0, it MUST set the
+ Target Transfer Tag to a value other than the default 0xffffffff.
+
+ An initiator MAY reset an operational parameter negotiation by
+ issuing a Text request with the Target Transfer Tag set to the value
+ 0xffffffff after receiving a response with the Target Transfer Tag
+ set to a value other than 0xffffffff. A target may reset an
+ operational parameter negotiation by answering a Text request with a
+ Reject PDU.
+
+ Neither the initiator nor the target should attempt to declare or
+ negotiate a parameter more than once during any negotiation sequence
+ without an intervening operational parameter negotiation reset,
+ except for responses to specific keys that explicitly allow repeated
+ key declarations (e.g., TargetAddress). If detected by the target,
+ this MUST result in a Reject PDU with a reason of "protocol error".
+ The initiator MUST reset the negotiation as outlined above.
+
+
+
+
+Satran, et al. Standards Track [Page 66]
+
+RFC 3720 iSCSI April 2004
+
+
+ Parameters negotiated by a text exchange negotiation sequence only
+ become effective after the negotiation sequence is completed.
+
+6. iSCSI Error Handling and Recovery
+
+6.1. Overview
+
+6.1.1. Background
+
+ The following two considerations prompted the design of much of the
+ error recovery functionality in iSCSI:
+
+ i) An iSCSI PDU may fail the digest check and be dropped, despite
+ being received by the TCP layer. The iSCSI layer must
+ optionally be allowed to recover such dropped PDUs.
+ ii) A TCP connection may fail at any time during the data
+ transfer. All the active tasks must optionally be allowed to
+ continue on a different TCP connection within the same
+ session.
+
+ Implementations have considerable flexibility in deciding what degree
+ of error recovery to support, when to use it and by which mechanisms
+ to achieve the required behavior. Only the externally visible
+ actions of the error recovery mechanisms must be standardized to
+ ensure interoperability.
+
+ This chapter describes a general model for recovery in support of
+ interoperability. See Appendix E. - Algorithmic Presentation of
+ Error Recovery Classes - for further detail on how the described
+ model may be implemented. Compliant implementations do not have to
+ match the implementation details of this model as presented, but the
+ external behavior of such implementations must correspond to the
+ externally observable characteristics of the presented model.
+
+6.1.2. Goals
+
+ The major design goals of the iSCSI error recovery scheme are as
+ follows:
+
+ a) Allow iSCSI implementations to meet different requirements by
+ defining a collection of error recovery mechanisms that
+ implementations may choose from.
+ b) Ensure interoperability between any two implementations
+ supporting different sets of error recovery capabilities.
+ c) Define the error recovery mechanisms to ensure command
+ ordering even in the face of errors, for initiators that
+ demand ordering.
+
+
+
+
+Satran, et al. Standards Track [Page 67]
+
+RFC 3720 iSCSI April 2004
+
+
+ d) Do not make additions in the fast path, but allow moderate
+ complexity in the error recovery path.
+ e) Prevent both the initiator and target from attempting to
+ recover the same set of PDUs at the same time. For example,
+ there must be a clear "error recovery functionality
+ distribution" between the initiator and target.
+
+6.1.3. Protocol Features and State Expectations
+
+ The initiator mechanisms defined in connection with error recovery
+ are:
+
+ a) NOP-OUT to probe sequence numbers of the target (section
+ 10.18)
+ b) Command retry (section 6.2.1)
+ c) Recovery R2T support (section 6.7)
+ d) Requesting retransmission of status/data/R2T using the SNACK
+ facility (section 10.16)
+ e) Acknowledging the receipt of the data (section 10.16)
+ f) Reassigning the connection allegiance of a task to a different
+ TCP connection (section 6.2.2)
+ g) Terminating the entire iSCSI session to start afresh (section
+ 6.1.4.4)
+
+ The target mechanisms defined in connection with error recovery are:
+
+ a) NOP-IN to probe sequence numbers of the initiator (section
+ 10.19)
+ b) Requesting retransmission of data using the recovery R2T
+ feature (section 6.7)
+ c) SNACK support (section 10.16) d) Requesting that parts of
+ read data be acknowledged (section 10.7.2)
+ e) Allegiance reassignment support (section 6.2.2)
+ f) Terminating the entire iSCSI session to force the initiator to
+ start over (section 6.1.4.4)
+
+ For any outstanding SCSI command, it is assumed that iSCSI, in
+ conjunction with SCSI at the initiator, is able to keep enough
+ information to be able to rebuild the command PDU, and that outgoing
+ data is available (in host memory) for retransmission while the
+ command is outstanding. It is also assumed that at the target,
+ incoming data (read data) MAY be kept for recovery or it can be
+ reread from a device server.
+
+ It is further assumed that a target will keep the "status & sense"
+ for a command it has executed if it supports status retransmission.
+ A target that agrees to support data retransmission is expected to be
+ prepared to retransmit the outgoing data (i.e., Data-In) on request
+
+
+
+Satran, et al. Standards Track [Page 68]
+
+RFC 3720 iSCSI April 2004
+
+
+ until either the status for the completed command is acknowledged, or
+ the data in question has been separately acknowledged.
+
+6.1.4. Recovery Classes
+
+ iSCSI enables the following classes of recovery (in the order of
+ increasing scope of affected iSCSI tasks):
+
+ - Within a command (i.e., without requiring command restart).
+ - Within a connection (i.e., without requiring the connection to
+ be rebuilt, but perhaps requiring command restart).
+ - Connection recovery (i.e., perhaps requiring connections to be
+ rebuilt and commands to be reissued).
+ - Session recovery.
+
+ The recovery scenarios detailed in the rest of this section are
+ representative rather than exclusive. In every case, they detail the
+ lowest class recovery that MAY be attempted. The implementer is left
+ to decide under which circumstances to escalate to the next recovery
+ class and/or what recovery classes to implement. Both the iSCSI
+ target and initiator MAY escalate the error handling to an error
+ recovery class, which impacts a larger number of iSCSI tasks in any
+ of the cases identified in the following discussion.
+
+ In all classes, the implementer has the choice of deferring errors to
+ the SCSI initiator (with an appropriate response code), in which case
+ the task, if any, has to be removed from the target and all the side
+ effects, such as ACA, must be considered.
+
+ Use of within-connection and within-command recovery classes MUST NOT
+ be attempted before the connection is in Full Feature Phase.
+
+ In the detailed description of the recovery classes, the mandating
+ terms (MUST, SHOULD, MAY, etc.) indicate normative actions to be
+ executed if the recovery class is supported and used.
+
+6.1.4.1. Recovery Within-command
+
+ At the target, the following cases lend themselves to
+ within-command recovery:
+
+ - Lost data PDU - realized through one of the following:
+
+ a) Data digest error - dealt with as specified in Section 6.7
+ Digest Errors, using the option of a recovery R2T.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 69]
+
+RFC 3720 iSCSI April 2004
+
+
+ b) Sequence reception timeout (no data or
+ partial-data-and-no-F-bit) - considered an implicit sequence
+ error and dealt with as specified in Section 6.8 Sequence
+ Errors, using the option of a recovery R2T.
+ c) Header digest error, which manifests as a sequence reception
+ timeout or a sequence error - dealt with as specified in
+ Section 6.8 Sequence Errors, using the option of a recovery
+ R2T.
+
+ At the initiator, the following cases lend themselves to
+ within-command recovery:
+
+ Lost data PDU or lost R2T - realized through one of the
+ following:
+
+ a) Data digest error - dealt with as specified in Section 6.7
+ Digest Errors, using the option of a SNACK.
+ b) Sequence reception timeout (no status) or response reception
+ timeout - dealt with as specified in Section 6.8 Sequence
+ Errors, using the option of a SNACK.
+ c) Header digest error, which manifests as a sequence reception
+ timeout or a sequence error - dealt with as specified in
+ Section 6.8 Sequence Errors, using the option of a SNACK.
+
+ To avoid a race with the target, which may already have a recovery
+ R2T or a termination response on its way, an initiator SHOULD NOT
+ originate a SNACK for an R2T based on its internal timeouts (if any).
+ Recovery in this case is better left to the target.
+
+ The timeout values used by the initiator and target are outside the
+ scope of this document. Sequence reception timeout is generally a
+ large enough value to allow the data sequence transfer to be
+ complete.
+
+6.1.4.2. Recovery Within-connection
+
+ At the initiator, the following cases lend themselves to
+ within-connection recovery:
+
+ - Requests not acknowledged for a long time. Requests are
+ acknowledged explicitly through ExpCmdSN or implicitly by
+ receiving data and/or status. The initiator MAY retry
+ non-acknowledged commands as specified in Section 6.2 Retry and
+ Reassign in Recovery.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 70]
+
+RFC 3720 iSCSI April 2004
+
+
+ - Lost iSCSI numbered Response. It is recognized by either
+ identifying a data digest error on a Response PDU or a Data-In
+ PDU carrying the status, or by receiving a Response PDU with a
+ higher StatSN than expected. In the first case, digest error
+ handling is done as specified in Section 6.7 Digest Errors using
+ the option of a SNACK. In the second case, sequence error
+ handling is done as specified in Section 6.8 Sequence Errors,
+ using the option of a SNACK.
+
+ At the target, the following cases lend themselves to
+ within-connection recovery:
+
+ - Status/Response not acknowledged for a long time. The target MAY
+ issue a NOP-IN (with a valid Target Transfer Tag or otherwise)
+ that carries the next status sequence number it is going to use
+ in the StatSN field. This helps the initiator detect any missing
+ StatSN(s) and issue a SNACK for the status.
+
+ The timeout values used by the initiator and the target are outside
+ the scope of this document.
+
+6.1.4.3. Connection Recovery
+
+ At an iSCSI initiator, the following cases lend themselves to
+ connection recovery:
+
+ - TCP connection failure: The initiator MUST close the connection.
+ It then MUST either implicitly or explicitly logout the failed
+ connection with the reason code "remove the connection for
+ recovery" and reassign connection allegiance for all commands
+ still in progress associated with the failed connection on one or
+ more connections (some or all of which MAY be newly established
+ connections) using the "Task reassign" task management function
+ (see Section 10.5.1 Function). For an initiator, a command is in
+ progress as long as it has not received a response or a Data-In
+ PDU including status.
+
+ Note: The logout function is mandatory. However, a new connection
+ establishment is only mandatory if the failed connection was the
+ last or only connection in the session.
+
+ - Receiving an Asynchronous Message that indicates one or all
+ connections in a session has been dropped. The initiator MUST
+ handle it as a TCP connection failure for the connection(s)
+ referred to in the Message.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 71]
+
+RFC 3720 iSCSI April 2004
+
+
+ At an iSCSI target, the following cases lend themselves to connection
+ recovery:
+
+ - TCP connection failure. The target MUST close the connection and,
+ if more than one connection is available, the target SHOULD send
+ an Asynchronous Message that indicates it has dropped the
+ connection. Then, the target will wait for the initiator to
+ continue recovery.
+
+6.1.4.4. Session Recovery
+
+ Session recovery should be performed when all other recovery attempts
+ have failed. Very simple initiators and targets MAY perform session
+ recovery on all iSCSI errors and rely on recovery on the SCSI layer
+ and above.
+
+ Session recovery implies the closing of all TCP connections,
+ internally aborting all executing and queued tasks for the given
+ initiator at the target, terminating all outstanding SCSI commands
+ with an appropriate SCSI service response at the initiator, and
+ restarting a session on a new set of connection(s) (TCP connection
+ establishment and login on all new connections).
+
+ For possible clearing effects of session recovery on SCSI and iSCSI
+ objects, refer to Appendix F. - Clearing Effects of Various Events on
+ Targets -.
+
+6.1.5. Error Recovery Hierarchy
+
+ The error recovery classes described so far are organized into a
+ hierarchy for ease in understanding and to limit the implementation
+ complexity. With few and well defined recovery levels
+ interoperability is easier to achieve. The attributes of this
+ hierarchy are as follows:
+
+ a) Each level is a superset of the capabilities of the previous
+ level. For example, Level 1 support implies supporting all
+ capabilities of Level 0 and more.
+ b) As a corollary, supporting a higher error recovery level means
+ increased sophistication and possibly an increase in resource
+ requirements.
+ c) Supporting error recovery level "n" is advertised and
+ negotiated by each iSCSI entity by exchanging the text key
+ "ErrorRecoveryLevel=n". The lower of the two exchanged values
+ is the operational ErrorRecoveryLevel for the session.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 72]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following diagram represents the error recovery hierarchy.
+
+ +
+ /
+ / 2 \ <-- Connection recovery
+ +-----+
+ / 1 \ <-- Digest failure recovery
+ +---------+
+ / 0 \ <-- Session failure recovery
+ +-------------+
+
+ The following table lists the error recovery capabilities expected
+ from the implementations that support each error recovery level.
+
+ +-------------------+--------------------------------------------+
+ |ErrorRecoveryLevel | Associated Error recovery capabilities |
+ +-------------------+--------------------------------------------+
+ | 0 | Session recovery class |
+ | | (Section 6.1.4.4 Session Recovery) |
+ +-------------------+--------------------------------------------+
+ | 1 | Digest failure recovery (See Note below.) |
+ | | plus the capabilities of ER Level 0 |
+ +-------------------+--------------------------------------------+
+ | 2 | Connection recovery class |
+ | | (Section 6.1.4.3 Connection Recovery) |
+ | | plus the capabilities of ER Level 1 |
+ +-------------------+--------------------------------------------+
+
+ Note: Digest failure recovery is comprised of two recovery classes:
+ Within-Connection recovery class (Section 6.1.4.2 Recovery Within-
+ connection) and Within-Command recovery class (Section 6.1.4.1
+ Recovery Within-command).
+
+ When a defined value of ErrorRecoveryLevel is proposed by an
+ originator in a text negotiation, the originator MUST support the
+ functionality defined for the proposed value and additionally, the
+ functionality corresponding to any defined value numerically less
+ than the proposed. When a defined value of ErrorRecoveryLevel is
+ returned by a responder in a text negotiation, the responder MUST
+ support the functionality corresponding to the ErrorRecoveryLevel it
+ is accepting.
+
+ When either party attempts to use error recovery functionality beyond
+ what is negotiated, the recovery attempts MAY fail unless an a priori
+ agreement outside the scope of this document exists between the two
+ parties to provide such support.
+
+
+
+
+
+Satran, et al. Standards Track [Page 73]
+
+RFC 3720 iSCSI April 2004
+
+
+ Implementations MUST support error recovery level "0", while the rest
+ are OPTIONAL to implement. In implementation terms, the above
+ striation means that the following incremental sophistication with
+ each level is required.
+
+ +-------------------+---------------------------------------------+
+ |Level transition | Incremental requirement |
+ +-------------------+---------------------------------------------+
+ | 0->1 | PDU retransmissions on the same connection |
+ +-------------------+---------------------------------------------+
+ | 1->2 | Retransmission across connections and |
+ | | allegiance reassignment |
+ +-------------------+---------------------------------------------+
+
+6.2. Retry and Reassign in Recovery
+
+ This section summarizes two important and somewhat related iSCSI
+ protocol features used in error recovery.
+
+6.2.1. Usage of Retry
+
+ By resending the same iSCSI command PDU ("retry") in the absence of a
+ command acknowledgement (by way of an ExpCmdSN update) or a response,
+ an initiator attempts to "plug" (what it thinks are) the
+ discontinuities in CmdSN ordering on the target end. Discarded
+ command PDUs, due to digest errors, may have created these
+ discontinuities.
+
+ Retry MUST NOT be used for reasons other than plugging command
+ sequence gaps, and in particular, cannot be used for requesting PDU
+ retransmissions from a target. Any such PDU retransmission requests
+ for a currently allegiant command in progress may be made using the
+ SNACK mechanism described in section 10.16, although the usage of
+ SNACK is OPTIONAL.
+
+ If initiators, as part of plugging command sequence gaps as described
+ above, inadvertently issue retries for allegiant commands already in
+ progress (i.e., targets did not see the discontinuities in CmdSN
+ ordering), the duplicate commands are silently ignored by targets as
+ specified in section 3.2.2.1.
+
+ When an iSCSI command is retried, the command PDU MUST carry the
+ original Initiator Task Tag and the original operational attributes
+ (e.g., flags, function names, LUN, CDB etc.) as well as the original
+ CmdSN. The command being retried MUST be sent on the same connection
+ as the original command unless the original connection was already
+ successfully logged out.
+
+
+
+
+Satran, et al. Standards Track [Page 74]
+
+RFC 3720 iSCSI April 2004
+
+
+6.2.2. Allegiance Reassignment
+
+ By issuing a "task reassign" task management request (Section 10.5.1
+ Function), the initiator signals its intent to continue an already
+ active command (but with no current connection allegiance) as part of
+ connection recovery. This means that a new connection allegiance is
+ requested for the command, which seeks to associate it to the
+ connection on which the task management request is being issued.
+ Before the allegiance reassignment is attempted for a task, an
+ implicit or explicit Logout with the reason code "remove the
+ connection for recovery" ( see section 10.14) MUST be successfully
+ completed for the previous connection to which the task was
+ allegiant.
+
+ In reassigning connection allegiance for a command, the targets
+ SHOULD continue the command from its current state. For example,
+ when reassigning read commands, the target SHOULD take advantage of
+ the ExpDataSN field provided by the Task Management function request
+ (which must be set to zero if there was no data transfer) and bring
+ the read command to completion by sending the remaining data and
+ sending (or resending) the status. ExpDataSN acknowledges all data
+ sent up to, but not including, the Data-In PDU and or R2T with DataSN
+ (or R2TSN) equal to ExpDataSN. However, targets may choose to
+ send/receive all unacknowledged data or all of the data on a
+ reassignment of connection allegiance if unable to recover or
+ maintain an accurate state. Initiators MUST not subsequently request
+ data retransmission through Data SNACK for PDUs numbered less than
+ ExpDataSN (i.e., prior to the acknowledged sequence number). For all
+ types of commands, a reassignment request implies that the task is
+ still considered in progress by the initiator and the target must
+ conclude the task appropriately if the target returns the "Function
+ Complete" response to the reassignment request. This might possibly
+ involve retransmission of data/R2T/status PDUs as necessary, but MUST
+ involve the (re)transmission of the status PDU.
+
+ It is OPTIONAL for targets to support the allegiance reassignment.
+ This capability is negotiated via the ErrorRecoveryLevel text key
+ during the login time. When a target does not support allegiance
+ reassignment, it MUST respond with a Task Management response code of
+ "Allegiance reassignment not supported". If allegiance reassignment
+ is supported by the target, but the task is still allegiant to a
+ different connection, or a successful recovery Logout of the
+ previously allegiant connection was not performed, the target MUST
+ respond with a Task Management response code of "Task still
+ allegiant".
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 75]
+
+RFC 3720 iSCSI April 2004
+
+
+ If allegiance reassignment is supported by the target, the Task
+ Management response to the reassignment request MUST be issued before
+ the reassignment becomes effective.
+
+ If a SCSI Command that involves data input is reassigned, any SNACK
+ Tag it holds for a final response from the original connection is
+ deleted and the default value of 0 MUST be used instead.
+
+6.3. Usage Of Reject PDU in Recovery
+
+ Targets MUST NOT implicitly terminate an active task by sending a
+ Reject PDU for any PDU exchanged during the life of the task. If the
+ target decides to terminate the task, a Response PDU (SCSI, Text,
+ Task, etc.) must be returned by the target to conclude the task. If
+ the task had never been active before the Reject (i.e., the Reject is
+ on the command PDU), targets should not send any further responses
+ because the command itself is being discarded.
+
+ The above rule means that the initiator can eventually expect a
+ response on receiving Rejects, if the received Reject is for a PDU
+ other than the command PDU itself. The non-command Rejects only have
+ diagnostic value in logging the errors, and they can be used for
+ retransmission decisions by the initiators.
+
+ The CmdSN of the rejected command PDU (if it is a non-immediate
+ command) MUST NOT be considered received by the target (i.e., a
+ command sequence gap must be assumed for the CmdSN), even though the
+ CmdSN of the rejected command PDU may be reliably ascertained. Upon
+ receiving the Reject, the initiator MUST plug the CmdSN gap in order
+ to continue to use the session. The gap may be plugged either by
+ transmitting a command PDU with the same CmdSN, or by aborting the
+ task (see section 6.9 on how an abort may plug a CmdSN gap).
+
+ When a data PDU is rejected and its DataSN can be ascertained, a
+ target MUST advance ExpDataSN for the current data burst if a
+ recovery R2T is being generated. The target MAY advance its
+ ExpDataSN if it does not attempt to recover the lost data PDU.
+
+6.4. Connection Timeout Management
+
+ iSCSI defines two session-global timeout values (in seconds)
+ - Time2Wait and Time2Retain - that are applicable when an iSCSI Full
+ Feature Phase connection is taken out of service either intentionally
+ or by an exception. Time2Wait is the initial "respite time" before
+ attempting an explicit/implicit Logout for the CID in question or
+ task reassignment for the affected tasks (if any). Time2Retain is
+ the maximum time after the initial respite interval that the task
+ and/or connection state(s) is/are guaranteed to be maintained on the
+
+
+
+Satran, et al. Standards Track [Page 76]
+
+RFC 3720 iSCSI April 2004
+
+
+ target to cater to a possible recovery attempt. Recovery attempts
+ for the connection and/or task(s) SHOULD NOT be made before Time2Wait
+ seconds, but MUST be completed within Time2Retain seconds after that
+ initial Time2Wait waiting period.
+
+6.4.1. Timeouts on Transport Exception Events
+
+ A transport connection shutdown or a transport reset without any
+ preceding iSCSI protocol interactions informing the end-points of the
+ fact causes a Full Feature Phase iSCSI connection to be abruptly
+ terminated. The timeout values to be used in this case are the
+ negotiated values of defaultTime2Wait (Section 12.15
+ DefaultTime2Wait) and DefaultTime2Retain (Section 12.16
+ DefaultTime2Retain) text keys for the session.
+
+6.4.2. Timeouts on Planned Decommissioning
+
+ Any planned decommissioning of a Full Feature Phase iSCSI connection
+ is preceded by either a Logout Response PDU, or an Async Message PDU.
+ The Time2Wait and Time2Retain field values (section 10.15) in a
+ Logout Response PDU, and the Parameter2 and Parameter3 fields of an
+ Async Message (AsyncEvent types "drop the connection" or "drop all
+ the connections"; section 10.9.1) specify the timeout values to be
+ used in each of these cases.
+
+ These timeout values are only applicable for the affected connection,
+ and the tasks active on that connection. These timeout values have
+ no bearing on initiator timers (if any) that are already running on
+ connections or tasks associated with that session.
+
+6.5. Implicit Termination of Tasks
+
+ A target implicitly terminates the active tasks due to iSCSI protocol
+ dynamics in the following cases:
+
+ a) When a connection is implicitly or explicitly logged out with
+ the reason code of "Close the connection" and there are active
+ tasks allegiant to that connection.
+
+ b) When a connection fails and the connection state eventually
+ times out (state transition M1 in Section 7.2.2 State
+ Transition Descriptions for Initiators and Targets) and there
+ are active tasks allegiant to that connection.
+
+ c) When a successful Logout with the reason code of "remove the
+ connection for recovery" is performed while there are active
+ tasks allegiant to that connection, and those tasks eventually
+
+
+
+
+Satran, et al. Standards Track [Page 77]
+
+RFC 3720 iSCSI April 2004
+
+
+ time out after the Time2Wait and Time2Retain periods without
+ allegiance reassignment.
+
+ d) When a connection is implicitly or explicitly logged out with
+ the reason code of "Close the session" and there are active
+ tasks in that session.
+
+ If the tasks terminated in the above cases a), b, c) and d)are SCSI
+ tasks, they must be internally terminated as if with CHECK CONDITION
+ status. This status is only meaningful for appropriately handling
+ the internal SCSI state and SCSI side effects with respect to
+ ordering because this status is never communicated back as a
+ terminating status to the initiator. However additional actions may
+ have to be taken at SCSI level depending on the SCSI context as
+ defined by the SCSI standards (e.g., queued commands and ACA, in
+ cases a), b), and c), after the tasks are terminated, the target MUST
+ report a Unit Attention condition on the next command processed on
+ any connection for each affected I_T_L nexus with the status of CHECK
+ CONDITION, and the ASC/ASCQ value of 47h/7Fh - "SOME COMMANDS CLEARED
+ BY ISCSI PROTOCOL EVENT" , etc. - see [SAM2] and [SPC3]).
+
+6.6. Format Errors
+
+ The following two explicit violations of PDU layout rules are format
+ errors:
+
+ a) Illegal contents of any PDU header field except the Opcode
+ (legal values are specified in Section 10 iSCSI PDU Formats).
+ b) Inconsistent field contents (consistent field contents are
+ specified in Section 10 iSCSI PDU Formats).
+
+ Format errors indicate a major implementation flaw in one of the
+ parties.
+
+ When a target or an initiator receives an iSCSI PDU with a format
+ error, it MUST immediately terminate all transport connections in the
+ session either with a connection close or with a connection reset and
+ escalate the format error to session recovery (see Section 6.1.4.4
+ Session Recovery).
+
+6.7. Digest Errors
+
+ The discussion of the legal choices in handling digest errors below
+ excludes session recovery as an explicit option, but either party
+ detecting a digest error may choose to escalate the error to session
+ recovery.
+
+
+
+
+
+Satran, et al. Standards Track [Page 78]
+
+RFC 3720 iSCSI April 2004
+
+
+ When a target or an initiator receives any iSCSI PDU, with a header
+ digest error, it MUST either discard the header and all data up to
+ the beginning of a later PDU or close the connection. Because the
+ digest error indicates that the length field of the header may have
+ been corrupted, the location of the beginning of a later PDU needs to
+ be reliably ascertained by other means such as the operation of a
+ sync and steering layer.
+
+ When a target receives any iSCSI PDU with a payload digest error, it
+ MUST answer with a Reject PDU with a reason code of
+ Data-Digest-Error and discard the PDU.
+
+ - If the discarded PDU is a solicited or unsolicited iSCSI data
+ PDU (for immediate data in a command PDU, non-data PDU rule
+ below applies), the target MUST do one of the following:
+ a) Request retransmission with a recovery R2T.
+ b) Terminate the task with a response PDU with a CHECK
+ CONDITION Status and an iSCSI Condition of "protocol service
+ CRC error" (Section 10.4.7.2 Sense Data). If the target
+ chooses to implement this option, it MUST wait to receive
+ all the data (signaled by a Data PDU with the final bit set
+ for all outstanding R2Ts) before sending the response PDU.
+ A task management command (such as an abort task) from the
+ initiator during this wait may also conclude the task.
+ - No further action is necessary for targets if the discarded PDU
+ is a non-data PDU. In case of immediate data being present on
+ a discarded command, the immediate data is implicitly recovered
+ when the task is retried (see section 6.2.1), followed by the
+ entire data transfer for the task.
+
+ When an initiator receives any iSCSI PDU with a payload digest error,
+ it MUST discard the PDU.
+
+ - If the discarded PDU is an iSCSI data PDU, the initiator MUST do
+ one of the following:
+
+ a) Request the desired data PDU through SNACK. In response to the
+ SNACK, the target MUST either resend the data PDU or reject the
+ SNACK with a Reject PDU with a reason code of "SNACK reject" in
+ which case:
+ i) If the status has not already been sent for the command,
+ the target MUST terminate the command with a CHECK
+ CONDITION Status and an iSCSI Condition of "SNACK rejected"
+ (Section 10.4.7.2 Sense Data).
+ ii) If the status was already sent, no further action is
+ necessary for the target. The initiator in this case MUST
+ wait for the status to be received and then discard it, so
+ as to internally signal the completion with CHECK CONDITION
+
+
+
+Satran, et al. Standards Track [Page 79]
+
+RFC 3720 iSCSI April 2004
+
+
+ Status and an iSCSI Condition of "protocol service CRC
+ error" (Section 10.4.7.2 Sense Data).
+ b) Abort the task and terminate the command with an error.
+
+ - If the discarded PDU is a response PDU, the initiator MUST do one
+ of the following:
+
+ a) Request PDU retransmission with a status SNACK.
+ b) Logout the connection for recovery and continue the tasks on a
+ different connection instance as described in Section 6.2 Retry
+ and Reassign in Recovery.
+ c) Logout to close the connection (abort all the commands
+ associated with the connection).
+
+ - No further action is necessary for initiators if the discarded PDU
+ is an unsolicited PDU (e.g., Async, Reject). Task timeouts as in
+ the initiator waiting for a command completion, or process
+ timeouts, as in the target waiting for a Logout, will ensure that
+ the correct operational behavior will result in these cases
+ despite the discarded PDU.
+
+6.8. Sequence Errors
+
+ When an initiator receives an iSCSI R2T/data PDU with an out of order
+ R2TSN/DataSN or a SCSI response PDU with an ExpDataSN that implies
+ missing data PDU(s), it means that the initiator must have detected a
+ header or payload digest error on one or more earlier R2T/data PDUs.
+ The initiator MUST address these implied digest errors as described
+ in Section 6.7 Digest Errors. When a target receives a data PDU with
+ an out of order DataSN, it means that the target must have hit a
+ header or payload digest error on at least one of the earlier data
+ PDUs. The target MUST address these implied digest errors as
+ described in Section 6.7 Digest Errors.
+
+ When an initiator receives an iSCSI status PDU with an out of order
+ StatSN that implies missing responses, it MUST address the one or
+ more missing status PDUs as described in Section 6.7 Digest Errors.
+ As a side effect of receiving the missing responses, the initiator
+ may discover missing data PDUs. If the initiator wants to recover
+ the missing data for a command, it MUST NOT acknowledge the received
+ responses that start from the StatSN of the relevant command, until
+ it has completed receiving all the data PDUs of the command.
+
+ When an initiator receives duplicate R2TSNs (due to proactive
+ retransmission of R2Ts by the target) or duplicate DataSNs (due to
+ proactive SNACKs by the initiator), it MUST discard the duplicates.
+
+
+
+
+
+Satran, et al. Standards Track [Page 80]
+
+RFC 3720 iSCSI April 2004
+
+
+6.9. SCSI Timeouts
+
+ An iSCSI initiator MAY attempt to plug a command sequence gap on the
+ target end (in the absence of an acknowledgement of the command by
+ way of ExpCmdSN) before the ULP timeout by retrying the
+ unacknowledged command, as described in Section 6.2 Retry and
+ Reassign in Recovery.
+
+ On a ULP timeout for a command (that carried a CmdSN of n), if the
+ iSCSI initiator intends to continue the session, it MUST abort the
+ command by either using an appropriate Task Management function
+ request for the specific command, or a "close the connection" Logout.
+ When using an ABORT TASK, if the ExpCmdSN is still less than (n+1),
+ the target may see the abort request while missing the original
+ command itself due to one of the following reasons:
+
+ - Original command was dropped due to digest error.
+ - Connection on which the original command was sent was
+ successfully logged out. Upon logout, the unacknowledged
+ commands issued on the connection being logged out are
+ discarded.
+
+ If the abort request is received and the original command is missing,
+ targets MUST consider the original command with that RefCmdSN to be
+ received and issue a Task Management response with the response code:
+ "Function Complete". This response concludes the task on both ends.
+ If the abort request is received and the target can determine (based
+ on the Referenced Task Tag) that the command was received and
+ executed and also that the response was sent prior to the abort, then
+ the target MUST respond with the response code of "Task Does Not
+ Exist".
+
+6.10. Negotiation Failures
+
+ Text request and response sequences, when used to set/negotiate
+ operational parameters, constitute the negotiation/parameter setting.
+ A negotiation failure is considered to be one or more of the
+ following:
+
+ - None of the choices, or the stated value, is acceptable to one
+ of the sides in the negotiation.
+ - The text request timed out and possibly terminated.
+ - The text request was answered with a Reject PDU.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 81]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following two rules should be used to address negotiation
+ failures:
+
+ - During Login, any failure in negotiation MUST be considered a
+ login process failure and the Login Phase must be terminated,
+ and with it, the connection. If the target detects the
+ failure, it must terminate the login with the appropriate Login
+ Response code.
+
+ - A failure in negotiation, while in the Full Feature Phase, will
+ terminate the entire negotiation sequence that may consist of a
+ series of text requests that use the same Initiator Task Tag.
+ The operational parameters of the session or the connection
+ MUST continue to be the values agreed upon during an earlier
+ successful negotiation (i.e., any partial results of this
+ unsuccessful negotiation MUST NOT take effect and MUST be
+ discarded).
+
+6.11. Protocol Errors
+
+ Mapping framed messages over a "stream" connection, such as TCP,
+ makes the proposed mechanisms vulnerable to simple software framing
+ errors. On the other hand, the introduction of framing mechanisms to
+ limit the effects of these errors may be onerous on performance for
+ simple implementations. Command Sequence Numbers and the above
+ mechanisms for connection drop and reestablishment help handle this
+ type of mapping errors.
+
+ All violations of iSCSI PDU exchange sequences specified in this
+ document are also protocol errors. This category of errors can only
+ be addressed by fixing the implementations; iSCSI defines Reject and
+ response codes to enable this.
+
+6.12. Connection Failures
+
+ iSCSI can keep a session in operation if it is able to
+ keep/establish at least one TCP connection between the initiator and
+ the target in a timely fashion. Targets and/or initiators may
+ recognize a failing connection by either transport level means (TCP),
+ a gap in the command sequence number, a response stream that is not
+ filled for a long time, or by a failing iSCSI NOP (acting as a ping).
+ The latter MAY be used periodically to increase the speed and
+ likelihood of detecting connection failures. Initiators and targets
+ MAY also use the keep-alive option on the TCP connection to enable
+ early link failure detection on otherwise idle links.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 82]
+
+RFC 3720 iSCSI April 2004
+
+
+ On connection failure, the initiator and target MUST do one of the
+ following:
+
+ - Attempt connection recovery within the session (Section 6.1.4.3
+ Connection Recovery).
+
+ - Logout the connection with the reason code "closes the
+ connection" (Section 10.14.5 Implicit termination of tasks),
+ re-issue missing commands, and implicitly terminate all active
+ commands. This option requires support for the
+ within-connection recovery class (Section 6.1.4.2 Recovery
+ Within-connection).
+
+ - Perform session recovery (Section 6.1.4.4 Session Recovery).
+
+ Either side may choose to escalate to session recovery (via the
+ initiator dropping all the connections, or via an Async Message that
+ announces the similar intent from a target), and the other side MUST
+ give it precedence. On a connection failure, a target MUST terminate
+ and/or discard all of the active immediate commands regardless of
+ which of the above options is used (i.e., immediate commands are not
+ recoverable across connection failures).
+
+6.13. Session Errors
+
+ If all of the connections of a session fail and cannot be
+ reestablished in a short time, or if initiators detect protocol
+ errors repeatedly, an initiator may choose to terminate a session and
+ establish a new session.
+
+ In this case, the initiator takes the following actions:
+
+ - Resets or closes all the transport connections.
+ - Terminates all outstanding requests with an appropriate
+ response before initiating a new session. If the same I_T
+ nexus is intended to be reestablished, the initiator MUST
+ employ session reinstatement (see section 5.3.5).
+
+ When the session timeout (the connection state timeout for the last
+ failed connection) happens on the target, it takes the following
+ actions:
+
+ - Resets or closes the TCP connections (closes the session).
+ - Terminates all active tasks that were allegiant to the
+ connection(s) that constituted the session.
+
+ A target MUST also be prepared to handle a session reinstatement
+ request from the initiator, that may be addressing session errors.
+
+
+
+Satran, et al. Standards Track [Page 83]
+
+RFC 3720 iSCSI April 2004
+
+
+7. State Transitions
+
+ iSCSI connections and iSCSI sessions go through several well-defined
+ states from the time they are created to the time they are cleared.
+
+ The connection state transitions are described in two separate but
+ dependent state diagrams for ease in understanding. The first
+ diagram, "standard connection state diagram", describes the
+ connection state transitions when the iSCSI connection is not waiting
+ for, or undergoing, a cleanup by way of an explicit or implicit
+ Logout. The second diagram, "connection cleanup state diagram",
+ describes the connection state transitions while performing the iSCSI
+ connection cleanup.
+
+ The "session state diagram" describes the state transitions an iSCSI
+ session would go through during its lifetime, and it depends on the
+ states of possibly multiple iSCSI connections that participate in the
+ session.
+
+ States and state transitions are described in the text, tables and
+ diagrams. The diagrams are used for illustration. The text and the
+ tables are the governing specification.
+
+7.1. Standard Connection State Diagrams
+
+7.1.1. State Descriptions for Initiators and Targets
+
+ State descriptions for the standard connection state diagram are as
+ follows:
+
+ -S1: FREE
+ -initiator: State on instantiation, or after successful
+ connection closure.
+ -target: State on instantiation, or after successful connection
+ closure.
+ -S2: XPT_WAIT
+ -initiator: Waiting for a response to its transport connection
+ establishment request.
+ -target: Illegal
+ -S3: XPT_UP
+ -initiator: Illegal
+ -target: Waiting for the Login process to commence.
+ -S4: IN_LOGIN
+ -initiator: Waiting for the Login process to conclude, possibly
+ involving several PDU exchanges.
+ -target: Waiting for the Login process to conclude, possibly
+ involving several PDU exchanges.
+
+
+
+
+Satran, et al. Standards Track [Page 84]
+
+RFC 3720 iSCSI April 2004
+
+
+ -S5: LOGGED_IN
+ -initiator: In Full Feature Phase, waiting for all internal,
+ iSCSI, and transport events.
+ -target: In Full Feature Phase, waiting for all internal, iSCSI,
+ and transport events.
+ -S6: IN_LOGOUT
+ -initiator: Waiting for a Logout response.
+ -target: Waiting for an internal event signaling completion of
+ logout processing.
+ -S7: LOGOUT_REQUESTED
+ -initiator: Waiting for an internal event signaling readiness to
+ proceed with Logout.
+ -target: Waiting for the Logout process to start after having
+ requested a Logout via an Async Message.
+ -S8: CLEANUP_WAIT
+ -initiator: Waiting for the context and/or resources to initiate
+ the cleanup processing for this CSM.
+ -target: Waiting for the cleanup process to start for this CSM.
+
+7.1.2. State Transition Descriptions for Initiators and Targets
+
+ -T1:
+ -initiator: Transport connect request was made (e.g., TCP SYN
+ sent).
+ -target: Illegal
+ -T2:
+ -initiator: Transport connection request timed out, a transport
+ reset was received, or an internal event of receiving a
+ Logout response (success) on another connection for a
+ "close the session" Logout request was received.
+ -target:Illegal
+ -T3:
+ -initiator: Illegal
+ -target: Received a valid transport connection request that
+ establishes the transport connection.
+ -T4:
+ -initiator: Transport connection established, thus prompting the
+ initiator to start the iSCSI Login.
+ -target: Initial iSCSI Login Request was received.
+ -T5:
+ -initiator: The final iSCSI Login Response with a Status-Class
+ of zero was received.
+ -target: The final iSCSI Login Request to conclude the Login
+ Phase was received, thus prompting the target to send the
+ final iSCSI Login Response with a Status-Class of zero.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 85]
+
+RFC 3720 iSCSI April 2004
+
+
+ -T6:
+ -initiator: Illegal
+ -target: Timed out waiting for an iSCSI Login, transport
+ disconnect indication was received, transport reset was
+ received, or an internal event indicating a transport
+ timeout was received. In all these cases, the connection is
+ to be closed.
+ -T7:
+ -initiator - one of the following events caused the transition:
+ - The final iSCSI Login Response was received with a
+ non-zero Status-Class.
+ - Login timed out.
+ - A transport disconnect indication was received.
+ - A transport reset was received.
+ - An internal event was received indicating a transport
+ timeout.
+ - An internal event of receiving a Logout response (success)
+ on another connection for a "close the session" Logout
+ request was received.
+
+ In all these cases, the transport connection is closed.
+
+ -target - one of the following events caused the transition:
+ - The final iSCSI Login Request to conclude the Login Phase
+ was received, prompting the target to send the final iSCSI
+ Login Response with a non-zero Status-Class.
+ - Login timed out.
+ - Transport disconnect indication was received.
+ - Transport reset was received.
+ - An internal event indicating a transport timeout was
+ received.
+ - On another connection a "close the session" Logout request
+ was received.
+ In all these cases, the connection is to be closed.
+ -T8:
+ -initiator: An internal event of receiving a Logout response
+ (success) on another connection for a "close the session"
+ Logout request was received, thus closing this connection
+ requiring no further cleanup.
+ -target: An internal event of sending a Logout response
+ (success) on another connection for a "close the session"
+ Logout request was received, or an internal event of a
+ successful connection/session reinstatement is received,
+ thus prompting the target to close this connection cleanly.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 86]
+
+RFC 3720 iSCSI April 2004
+
+
+ -T9, T10:
+ -initiator: An internal event that indicates the readiness to
+ start the Logout process was received, thus prompting an
+ iSCSI Logout to be sent by the initiator.
+ -target: An iSCSI Logout request was received.
+ -T11, T12:
+ -initiator: Async PDU with AsyncEvent "Request Logout" was
+ received.
+ -target: An internal event that requires the decommissioning of
+ the connection is received, thus causing an Async PDU with
+ an AsyncEvent "Request Logout" to be sent.
+ -T13:
+ -initiator: An iSCSI Logout response (success) was received, or
+ an internal event of receiving a Logout response (success)
+ on another connection for a "close the session" Logout
+ request was received.
+ -target: An internal event was received that indicates
+ successful processing of the Logout, which prompts an iSCSI
+ Logout response (success) to be sent; an internal event of
+ sending a Logout response (success) on another connection
+ for a "close the session" Logout request was received; or an
+ internal event of a successful connection/session
+ reinstatement is received. In all these cases, the
+ transport connection is closed.
+
+ -T14:
+ -initiator: Async PDU with AsyncEvent "Request Logout" was
+ received again.
+ -target: Illegal
+ -T15, T16:
+ -initiator: One or more of the following events caused this
+ transition:
+ -Internal event that indicates a transport connection
+ timeout was received thus prompting transport RESET or
+ transport connection closure.
+ -A transport RESET.
+ -A transport disconnect indication.
+ -Async PDU with AsyncEvent "Drop connection" (for this CID).
+ -Async PDU with AsyncEvent "Drop all connections".
+ -target: One or more of the following events caused this
+ transition:
+ -Internal event that indicates a transport connection
+ timeout was received, thus prompting transport RESET or
+ transport connection closure.
+ -An internal event of a failed connection/session
+ reinstatement is received.
+ -A transport RESET.
+ -A transport disconnect indication.
+
+
+
+Satran, et al. Standards Track [Page 87]
+
+RFC 3720 iSCSI April 2004
+
+
+ -Internal emergency cleanup event was received which prompts
+ an Async PDU with AsyncEvent "Drop connection" (for this
+ CID), or event "Drop all connections".
+ -T17:
+ -initiator: One or more of the following events caused this
+ transition:
+ -Logout response, (failure i.e., a non-zero status) was
+ received, or Logout timed out.
+ -Any of the events specified for T15 and T16.
+ -target: One or more of the following events caused this
+ transition:
+ -Internal event that indicates a failure of the Logout
+ processing was received, which prompts a Logout response
+ (failure, i.e., a non-zero status) to be sent.
+ -Any of the events specified for T15 and T16.
+ -T18:
+ -initiator: An internal event of receiving a Logout response
+ (success) on another connection for a "close the session"
+ Logout request was received.
+ -target: An internal event of sending a Logout response
+ (success) on another connection for a "close the session"
+ Logout request was received, or an internal event of a
+ successful connection/session reinstatement is received. In
+ both these cases, the connection is closed.
+
+ The CLEANUP_WAIT state (S8) implies that there are possible iSCSI
+ tasks that have not reached conclusion and are still considered busy.
+
+7.1.3. Standard Connection State Diagram for an Initiator
+
+ Symbolic names for States:
+
+ S1: FREE
+ S2: XPT_WAIT
+ S4: IN_LOGIN
+ S5: LOGGED_IN
+ S6: IN_LOGOUT
+ S7: LOGOUT_REQUESTED
+ S8: CLEANUP_WAIT
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 88]
+
+RFC 3720 iSCSI April 2004
+
+
+ States S5, S6, and S7 constitute the Full Feature Phase operation of
+ the connection.
+
+ The state diagram is as follows:
+
+ -------<-------------+
+ +--------->/ S1 \<----+ |
+ T13| +->\ /<-+ \ |
+ | / ---+--- \ \ |
+ | / | T2 \ | |
+ | T8 | |T1 | | |
+ | | | / |T7 |
+ | | | / | |
+ | | | / | |
+ | | V / / |
+ | | ------- / / |
+ | | / S2 \ / |
+ | | \ / / |
+ | | ---+--- / |
+ | | |T4 / |
+ | | V / | T18
+ | | ------- / |
+ | | / S4 \ |
+ | | \ / |
+ | | ---+--- | T15
+ | | |T5 +--------+---------+
+ | | | /T16+-----+------+ |
+ | | | / -+-----+--+ | |
+ | | | / / S7 \ |T12| |
+ | | | / +->\ /<-+ V V
+ | | | / / -+----- -------
+ | | | / /T11 |T10 / S8 \
+ | | V / / V +----+ \ /
+ | | ---+-+- ----+-- | -------
+ | | / S5 \T9 / S6 \<+ ^
+ | +-----\ /--->\ / T14 |
+ | ------- --+----+------+T17
+ +---------------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 89]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following state transition table represents the above diagram.
+ Each row represents the starting state for a given transition, which
+ after taking a transition marked in a table cell would end in the
+ state represented by the column of the cell. For example, from state
+ S1, the connection takes the T1 transition to arrive at state S2.
+ The fields marked "-" correspond to undefined transitions.
+
+ +----+---+---+---+---+----+---+
+ |S1 |S2 |S4 |S5 |S6 |S7 |S8 |
+ ---+----+---+---+---+---+----+---+
+ S1| - |T1 | - | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S2|T2 |- |T4 | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S4|T7 |- |- |T5 | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S5|T8 |- |- | - |T9 |T11 |T15|
+ ---+----+---+---+---+---+----+---+
+ S6|T13 |- |- | - |T14|- |T17|
+ ---+----+---+---+---+---+----+---+
+ S7|T18 |- |- | - |T10|T12 |T16|
+ ---+----+---+---+---+---+----+---+
+ S8| - |- |- | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+
+7.1.4. Standard Connection State Diagram for a Target
+
+ Symbolic names for States:
+
+ S1: FREE
+ S3: XPT_UP
+ S4: IN_LOGIN
+ S5: LOGGED_IN
+ S6: IN_LOGOUT
+ S7: LOGOUT_REQUESTED
+ S8: CLEANUP_WAIT
+
+ States S5, S6, and S7 constitute the Full Feature Phase operation of
+ the connection.
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 90]
+
+RFC 3720 iSCSI April 2004
+
+
+ The state diagram is as follows:
+
+ -------<-------------+
+ +--------->/ S1 \<----+ |
+ T13| +->\ /<-+ \ |
+ | / ---+--- \ \ |
+ | / | T6 \ | |
+ | T8 | |T3 | | |
+ | | | / |T7 |
+ | | | / | |
+ | | | / | |
+ | | V / / |
+ | | ------- / / |
+ | | / S3 \ / |
+ | | \ / / | T18
+ | | ---+--- / |
+ | | |T4 / |
+ | | V / |
+ | | ------- / |
+ | | / S4 \ |
+ | | \ / |
+ | | ---+--- T15 |
+ | | |T5 +--------+---------+
+ | | | /T16+-----+------+ |
+ | | | / -+-----+---+ | |
+ | | | / / S7 \ |T12| |
+ | | | / +->\ /<-+ V V
+ | | | / / -+----- -------
+ | | | / /T11 |T10 / S8 \
+ | | V / / V \ /
+ | | ---+-+- ------- -------
+ | | / S5 \T9 / S6 \ ^
+ | +-----\ /--->\ / |
+ | ------- --+----+--------+T17
+ +---------------------------+
+
+ The following state transition table represents the above diagram,
+ and follows the conventions described for the initiator diagram.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 91]
+
+RFC 3720 iSCSI April 2004
+
+
+ +----+---+---+---+---+----+---+
+ |S1 |S3 |S4 |S5 |S6 |S7 |S8 |
+ ---+----+---+---+---+---+----+---+
+ S1| - |T3 | - | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S3|T6 |- |T4 | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S4|T7 |- |- |T5 | - | - | - |
+ ---+----+---+---+---+---+----+---+
+ S5|T8 |- |- | - |T9 |T11 |T15|
+ ---+----+---+---+---+---+----+---+
+ S6|T13 |- |- | - |- |- |T17|
+ ---+----+---+---+---+---+----+---+
+ S7|T18 |- |- | - |T10|T12 |T16|
+ ---+----+---+---+---+---+----+---+
+ S8| - |- |- | - | - | - | - |
+ ---+----+---+---+---+---+----+---+
+
+7.2. Connection Cleanup State Diagram for Initiators and Targets
+
+ Symbolic names for states:
+
+ R1: CLEANUP_WAIT (same as S8)
+ R2: IN_CLEANUP
+ R3: FREE (same as S1)
+
+ Whenever a connection state machine (e.g., CSM-C) enters the
+ CLEANUP_WAIT state (S8), it must go through the state transitions
+ described in the connection cleanup state diagram either a) using a
+ separate full-feature phase connection (let's call it CSM-E) in the
+ LOGGED_IN state in the same session, or b) using a new transport
+ connection (let's call it CSM-I) in the FREE state that is to be
+ added to the same session. In the CSM-E case, an explicit logout for
+ the CID that corresponds to CSM-C (either as a connection or session
+ logout) needs to be performed to complete the cleanup. In the CSM-I
+ case, an implicit logout for the CID that corresponds to CSM-C needs
+ to be performed by way of connection reinstatement (section 5.3.4)
+ for that CID. In either case, the protocol exchanges on CSM-E or
+ CSM-I determine the state transitions for CSM-C. Therefore, this
+ cleanup state diagram is only applicable to the instance of the
+ connection in cleanup (i.e., CSM-C). In the case of an implicit
+ logout for example, CSM-C reaches FREE (R3) at the time CSM-I reaches
+ LOGGED_IN. In the case of an explicit logout, CSM-C reaches FREE
+ (R3) when CSM-E receives a successful logout response while
+ continuing to be in the LOGGED_IN state.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 92]
+
+RFC 3720 iSCSI April 2004
+
+
+ An initiator must initiate an explicit or implicit connection logout
+ for a connection in the CLEANUP_WAIT state, if the initiator intends
+ to continue using the associated iSCSI session.
+
+ The following state diagram applies to both initiators and targets.
+
+ -------
+ / R1 \
+ +--\ /<-+
+ / ---+---
+ / | \ M3
+ M1 | |M2 |
+ | | /
+ | | /
+ | | /
+ | V /
+ | ------- /
+ | / R2 \
+ | \ /
+ | -------
+ | |
+ | |M4
+ | |
+ | |
+ | |
+ | V
+ | -------
+ | / R3 \
+ +---->\ /
+ -------
+
+ The following state transition table represents the above diagram,
+ and follows the same conventions as in earlier sections.
+
+ +----+----+----+
+ |R1 |R2 |R3 |
+ -----+----+----+----+
+ R1 | - |M2 |M1 |
+ -----+----+----+----+
+ R2 |M3 | - |M4 |
+ -----+----+----+----+
+ R3 | - | - | - |
+ -----+----+----+----+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 93]
+
+RFC 3720 iSCSI April 2004
+
+
+7.2.1. State Descriptions for Initiators and Targets
+
+ -R1: CLEANUP_WAIT (Same as S8)
+ -initiator: Waiting for the internal event to initiate the
+ cleanup processing for CSM-C.
+ -target: Waiting for the cleanup process to start for CSM-C.
+ -R2: IN_CLEANUP
+ -initiator: Waiting for the connection cleanup process to
+ conclude for CSM-C.
+ -target: Waiting for the connection cleanup process to conclude
+ for CSM-C.
+ -R3: FREE (Same as S1)
+ -initiator: End state for CSM-C.
+ -target: End state for CSM-C.
+
+7.2.2. State Transition Descriptions for Initiators and Targets
+
+ -M1: One or more of the following events was received:
+ -initiator:
+ -An internal event that indicates connection state timeout.
+ -An internal event of receiving a successful Logout response
+ on a different connection for a "close the session"
+ Logout.
+ -target:
+ -An internal event that indicates connection state timeout.
+ -An internal event of sending a Logout response (success) on
+ a different connection for a "close the session" Logout
+ request.
+
+ -M2: An implicit/explicit logout process was initiated by the
+ initiator.
+ -In CSM-I usage:
+ -initiator: An internal event requesting the connection (or
+ session) reinstatement was received, thus prompting a
+ connection (or session) reinstatement Login to be sent
+ transitioning CSM-I to state IN_LOGIN.
+ -target: A connection/session reinstatement Login was
+ received while in state XPT_UP.
+ -In CSM-E usage:
+ -initiator: An internal event that indicates that an
+ explicit logout was sent for this CID in state LOGGED_IN.
+ -target: An explicit logout was received for this CID in
+ state LOGGED_IN.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 94]
+
+RFC 3720 iSCSI April 2004
+
+
+ -M3: Logout failure detected
+ -In CSM-I usage:
+ -initiator: CSM-I failed to reach LOGGED_IN and arrived into
+ FREE instead.
+ -target: CSM-I failed to reach LOGGED_IN and arrived into
+ FREE instead.
+ -In CSM-E usage:
+ -initiator: CSM-E either moved out of LOGGED_IN, or Logout
+ timed out and/or aborted, or Logout response (failure)
+ was received.
+ -target: CSM-E either moved out of LOGGED_IN, Logout timed
+ out and/or aborted, or an internal event that indicates a
+ failed Logout processing was received. A Logout response
+ (failure) was sent in the last case.
+
+ -M4: Successful implicit/explicit logout was performed.
+
+ - In CSM-I usage:
+ -initiator: CSM-I reached state LOGGED_IN, or an internal
+ event of receiving a Logout response (success) on another
+ connection for a "close the session" Logout request was
+ received.
+ -target: CSM-I reached state LOGGED_IN, or an internal event
+ of sending a Logout response (success) on a different
+ connection for a "close the session" Logout request was
+ received.
+ - In CSM-E usage:
+ -initiator: CSM-E stayed in LOGGED_IN and received a Logout
+ response (success), or an internal event of receiving a
+ Logout response (success) on another connection for a
+ "close the session" Logout request was received.
+ -target: CSM-E stayed in LOGGED_IN and an internal event
+ indicating a successful Logout processing was received,
+ or an internal event of sending a Logout response
+ (success) on a different connection for a "close the
+ session" Logout request was received.
+
+7.3. Session State Diagrams
+
+7.3.1. Session State Diagram for an Initiator
+
+ Symbolic Names for States:
+
+ Q1: FREE
+ Q3: LOGGED_IN
+ Q4: FAILED
+
+ State Q3 represents the Full Feature Phase operation of the session.
+
+
+
+Satran, et al. Standards Track [Page 95]
+
+RFC 3720 iSCSI April 2004
+
+
+ The state diagram is as follows:
+
+ -------
+ / Q1 \
+ +------>\ /<-+
+ / ---+--- |
+ / | |N3
+ N6 | |N1 |
+ | | |
+ | N4 | |
+ | +--------+ | /
+ | | | | /
+ | | | | /
+ | | V V /
+ -+--+-- -----+-
+ / Q4 \ N5 / Q3 \
+ \ /<---\ /
+ ------- -------
+
+ The state transition table is as follows:
+
+ +----+----+----+
+ |Q1 |Q3 |Q4 |
+ -----+----+----+----+
+ Q1 | - |N1 | - |
+ -----+----+----+----+
+ Q3 |N3 | - |N5 |
+ -----+----+----+----+
+ Q4 |N6 |N4 | - |
+ -----+----+----+----+
+
+7.3.2. Session State Diagram for a Target
+
+ Symbolic Names for States:
+
+ Q1: FREE
+ Q2: ACTIVE
+ Q3: LOGGED_IN
+ Q4: FAILED
+ Q5: IN_CONTINUE
+
+ State Q3 represents the Full Feature Phase operation of the session.
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 96]
+
+RFC 3720 iSCSI April 2004
+
+
+ The state diagram is as follows:
+
+ -------
+ +------------------>/ Q1 \
+ / +-------------->\ /<-+
+ | | ---+--- |
+ | | ^ | |N3
+ N6 | |N11 N9| V N1 |
+ | | +------ |
+ | | / Q2 \ |
+ | | \ / |
+ | --+---- +--+--- |
+ | / Q5 \ | |
+ | \ / N10 | |
+ | +-+---+------------+ |N2 /
+ | ^ | | | /
+ |N7| |N8 | | /
+ | | | | V /
+ -+--+-V V----+-
+ / Q4 \ N5 / Q3 \
+ \ /<-------------\ /
+ ------- -------
+
+ The state transition table is as follows:
+
+ +----+----+----+----+----+
+ |Q1 |Q2 |Q3 |Q4 |Q5 |
+ -----+----+----+----+----+----+
+ Q1 | - |N1 | - | - | - |
+ -----+----+----+----+----+----+
+ Q2 |N9 | - |N2 | - | - |
+ -----+----+----+----+----+----+
+ Q3 |N3 | - | - |N5 | - |
+ -----+----+----+----+----+----+
+ Q4 |N6 | - | - | - |N7 |
+ -----+----+----+----+----+----+
+ Q5 |N11 | - |N10 |N8 | - |
+ -----+----+----+----+----+----+
+
+7.3.3. State Descriptions for Initiators and Targets
+
+ -Q1: FREE
+ -initiator: State on instantiation or after cleanup.
+ -target: State on instantiation or after cleanup.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 97]
+
+RFC 3720 iSCSI April 2004
+
+
+ -Q2: ACTIVE
+ -initiator: Illegal.
+ -target: The first iSCSI connection in the session transitioned
+ to IN_LOGIN, waiting for it to complete the login process.
+
+ -Q3: LOGGED_IN
+ -initiator: Waiting for all session events.
+ -target: Waiting for all session events.
+
+ -Q4: FAILED
+ -initiator: Waiting for session recovery or session
+ continuation.
+ -target: Waiting for session recovery or session continuation.
+
+ -Q5: IN_CONTINUE
+ -initiator: Illegal.
+ -target: Waiting for session continuation attempt to reach a
+ conclusion.
+
+7.3.4. State Transition Descriptions for Initiators and Targets
+
+ -N1:
+ -initiator: At least one transport connection reached the
+ LOGGED_IN state.
+ -target: The first iSCSI connection in the session had reached
+ the IN_LOGIN state.
+
+ -N2:
+ -initiator: Illegal.
+ -target: At least one iSCSI connection reached the LOGGED_IN
+ state.
+
+ -N3:
+ -initiator: Graceful closing of the session via session closure
+ (Section 5.3.6 Session Continuation and Failure).
+ -target: Graceful closing of the session via session closure
+ (Section 5.3.6 Session Continuation and Failure) or a
+ successful session reinstatement cleanly closed the session.
+
+ -N4:
+ -initiator: A session continuation attempt succeeded.
+ -target: Illegal.
+
+ -N5:
+ -initiator: Session failure (Section 5.3.6 Session Continuation
+ and Failure) occurred.
+ -target: Session failure (Section 5.3.6 Session Continuation and
+ Failure) occurred.
+
+
+
+Satran, et al. Standards Track [Page 98]
+
+RFC 3720 iSCSI April 2004
+
+
+ -N6:
+ -initiator: Session state timeout occurred, or a session
+ reinstatement cleared this session instance. This results
+ in the freeing of all associated resources and the session
+ state is discarded.
+ -target: Session state timeout occurred, or a session
+ reinstatement cleared this session instance. This results
+ in the freeing of all associated resources and the session
+ state is discarded.
+
+ -N7:
+ -initiator: Illegal.
+ -target: A session continuation attempt is initiated.
+
+ -N8:
+ -initiator: Illegal.
+ -target: The last session continuation attempt failed.
+
+ -N9:
+ -initiator: Illegal.
+ -target: Login attempt on the leading connection failed.
+
+ -N10:
+ -initiator: Illegal.
+ -target: A session continuation attempt succeeded.
+
+ -N11:
+ -initiator: Illegal.
+ -target: A successful session reinstatement cleanly closed the
+ session.
+
+8. Security Considerations
+
+ Historically, native storage systems have not had to consider
+ security because their environments offered minimal security risks.
+ That is, these environments consisted of storage devices either
+ directly attached to hosts or connected via a Storage Area Network
+ (SAN) distinctly separate from the communications network. The use
+ of storage protocols, such as SCSI, over IP-networks requires that
+ security concerns be addressed. iSCSI implementations MUST provide
+ means of protection against active attacks (e.g., pretending to be
+ another identity, message insertion, deletion, modification, and
+ replaying) and passive attacks (e.g., eavesdropping, gaining
+ advantage by analyzing the data sent over the line).
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 99]
+
+RFC 3720 iSCSI April 2004
+
+
+ Although technically possible, iSCSI SHOULD NOT be configured without
+ security. iSCSI configured without security should be confined, in
+ extreme cases, to closed environments without any security risk.
+ [RFC3723] specifies the mechanisms that must be used in order to
+ mitigate risks fully described in that document.
+
+ The following section describes the security mechanisms provided by
+ an iSCSI implementation.
+
+8.1. iSCSI Security Mechanisms
+
+ The entities involved in iSCSI security are the initiator, target,
+ and the IP communication end points. iSCSI scenarios in which
+ multiple initiators or targets share a single communication end point
+ are expected. To accommodate such scenarios, iSCSI uses two separate
+ security mechanisms: In-band authentication between the initiator and
+ the target at the iSCSI connection level (carried out by exchange of
+ iSCSI Login PDUs), and packet protection (integrity, authentication,
+ and confidentiality) by IPsec at the IP level. The two security
+ mechanisms complement each other. The in-band authentication
+ provides end-to-end trust (at login time) between the iSCSI initiator
+ and the target while IPsec provides a secure channel between the IP
+ communication end points.
+
+ Further details on typical iSCSI scenarios and the relation between
+ the initiators, targets, and the communication end points can be
+ found in [RFC3723].
+
+8.2. In-band Initiator-Target Authentication
+
+ During login, the target MAY authenticate the initiator and the
+ initiator MAY authenticate the target. The authentication is
+ performed on every new iSCSI connection by an exchange of iSCSI Login
+ PDUs using a negotiated authentication method.
+
+ The authentication method cannot assume an underlying IPsec
+ protection, because IPsec is optional to use. An attacker should
+ gain as little advantage as possible by inspecting the authentication
+ phase PDUs. Therefore, a method using clear text (or equivalent)
+ passwords is not acceptable; on the other hand, identity protection
+ is not strictly required.
+
+ The authentication mechanism protects against an unauthorized login
+ to storage resources by using a false identity (spoofing). Once the
+ authentication phase is completed, if the underlying IPsec is not
+ used, all PDUs are sent and received in clear. The authentication
+
+
+
+
+
+Satran, et al. Standards Track [Page 100]
+
+RFC 3720 iSCSI April 2004
+
+
+ mechanism alone (without underlying IPsec) should only be used when
+ there is no risk of eavesdropping, message insertion, deletion,
+ modification, and replaying.
+
+ Section 11 iSCSI Security Text Keys and Authentication Methods
+ defines several authentication methods and the exact steps that must
+ be followed in each of them, including the iSCSI-text-keys and their
+ allowed values in each step. Whenever an iSCSI initiator gets a
+ response whose keys, or their values, are not according to the step
+ definition, it MUST abort the connection. Whenever an iSCSI target
+ gets a response whose keys, or their values, are not according to the
+ step definition, it MUST answer with a Login reject with the
+ "Initiator Error" or "Missing Parameter" status. These statuses are
+ not intended for cryptographically incorrect values such as the CHAP
+ response, for which "Authentication Failure" status MUST be
+ specified. The importance of this rule can be illustrated in CHAP
+ with target authentication (see Section 11.1.4 Challenge Handshake
+ Authentication Protocol (CHAP)) where the initiator would have been
+ able to conduct a reflection attack by omitting his response key
+ (CHAP_R) using the same CHAP challenge as the target and reflecting
+ the target's response back to the target. In CHAP, this is prevented
+ because the target must answer the missing CHAP_R key with a Login
+ reject with the "Missing Parameter" status.
+
+ For some of the authentication methods, a key specifies the identity
+ of the iSCSI initiator or target for authentication purposes. The
+ value associated with that key MAY be different from the iSCSI name
+ and SHOULD be configurable. (CHAP_N, see Section 11.1.4 Challenge
+ Handshake Authentication Protocol (CHAP) and SRP_U, see Section
+ 11.1.3 Secure Remote Password (SRP)).
+
+8.2.1. CHAP Considerations
+
+ Compliant iSCSI initiators and targets MUST implement the CHAP
+ authentication method [RFC1994] (according to Section 11.1.4
+ Challenge Handshake Authentication Protocol (CHAP) including the
+ target authentication option).
+
+ When CHAP is performed over a non-encrypted channel, it is vulnerable
+ to an off-line dictionary attack. Implementations MUST support use
+ of up to 128 bit random CHAP secrets, including the means to generate
+ such secrets and to accept them from an external generation source.
+ Implementations MUST NOT provide secret generation (or expansion)
+ means other than random generation.
+
+ An administrative entity of an environment in which CHAP is used with
+ a secret that has less than 96 random bits MUST enforce IPsec
+ encryption (according to the implementation requirements in Section
+
+
+
+Satran, et al. Standards Track [Page 101]
+
+RFC 3720 iSCSI April 2004
+
+
+ 8.3.2 Confidentiality) to protect the connection. Moreover, in this
+ case IKE authentication with group pre-shared cryptographic keys
+ SHOULD NOT be used unless it is not essential to protect group
+ members against off-line dictionary attacks by other members.
+
+ CHAP secrets MUST be an integral number of bytes (octets). A
+ compliant implementation SHOULD NOT continue with the login step in
+ which it should send a CHAP response (CHAP_R, Section 11.1.4
+ Challenge Handshake Authentication Protocol (CHAP)) unless it can
+ verify that the CHAP secret is at least 96 bits, or that IPsec
+ encryption is being used to protect the connection.
+
+ Any CHAP secret used for initiator authentication MUST NOT be
+ configured for authentication of any target, and any CHAP secret used
+ for target authentication MUST NOT be configured for authentication
+ of any initiator. If the CHAP response received by one end of an
+ iSCSI connection is the same as the CHAP response that the receiving
+ endpoint would have generated for the same CHAP challenge, the
+ response MUST be treated as an authentication failure and cause the
+ connection to close (this ensures that the same CHAP secret is not
+ used for authentication in both directions). Also, if an iSCSI
+ implementation can function as both initiator and target, different
+ CHAP secrets and identities MUST be configured for these two roles.
+ The following is an example of the attacks prevented by the above
+ requirements:
+
+ Rogue wants to impersonate Storage to Alice, and knows that a
+ single secret is used for both directions of Storage-Alice
+ authentication.
+
+ Rogue convinces Alice to open two connections to Rogue, and Rogue
+ identifies itself as Storage on both connections.
+
+ Rogue issues a CHAP challenge on connection 1, waits for Alice to
+ respond, and then reflects Alice's challenge as the initial
+ challenge to Alice on connection 2.
+
+ If Alice doesn't check for the reflection across connections,
+ Alice's response on connection 2 enables Rogue to impersonate
+ Storage on connection 1, even though Rogue does not know the
+ Alice-Storage CHAP secret.
+
+ Originators MUST NOT reuse the CHAP challenge sent by the Responder
+ for the other direction of a bidirectional authentication.
+ Responders MUST check for this condition and close the iSCSI TCP
+ connection if it occurs.
+
+
+
+
+
+Satran, et al. Standards Track [Page 102]
+
+RFC 3720 iSCSI April 2004
+
+
+ The same CHAP secret SHOULD NOT be configured for authentication of
+ multiple initiators or multiple targets, as this enables any of them
+ to impersonate any other one of them, and compromising one of them
+ enables the attacker to impersonate any of them. It is recommended
+ that iSCSI implementations check for use of identical CHAP secrets by
+ different peers when this check is feasible, and take appropriate
+ measures to warn users and/or administrators when this is detected.
+
+ When an iSCSI initiator or target authenticates itself to
+ counterparts in multiple administrative domains, it SHOULD use a
+ different CHAP secret for each administrative domain to avoid
+ propagating security compromises across domains.
+
+ Within a single administrative domain:
+ - A single CHAP secret MAY be used for authentication of an initiator
+ to multiple targets.
+ - A single CHAP secret MAY be used for an authentication of a target
+ to multiple initiators when the initiators use an external server
+ (e.g., RADIUS) to verify the target's CHAP responses and do not know
+ the target's CHAP secret.
+
+ If an external response verification server (e.g., RADIUS) is not
+ used, employing a single CHAP secret for authentication of a target
+ to multiple initiators requires that all such initiators know that
+ target secret. Any of these initiators can impersonate the target to
+ any other such initiator, and compromise of such an initiator enables
+ an attacker to impersonate the target to all such initiators.
+ Targets SHOULD use separate CHAP secrets for authentication to each
+ initiator when such risks are of concern; in this situation it may be
+ useful to configure a separate logical iSCSI target with its own
+ iSCSI Node Name for each initiator or group of initiators among which
+ such separation is desired.
+
+8.2.2. SRP Considerations
+
+ The strength of the SRP authentication method (specified in
+ [RFC2945]) is dependent on the characteristics of the group being
+ used (i.e., the prime modulus N and generator g). As described in
+ [RFC2945], N is required to be a Sophie-German prime (of the form
+ N = 2q + 1, where q is also prime) and the generator g is a primitive
+ root of GF(n). In iSCSI authentication, the prime modulus N MUST be
+ at least 768 bits.
+
+ The list of allowed SRP groups is provided in [RFC3723].
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 103]
+
+RFC 3720 iSCSI April 2004
+
+
+8.3. IPsec
+
+ iSCSI uses the IPsec mechanism for packet protection (cryptographic
+ integrity, authentication, and confidentiality) at the IP level
+ between the iSCSI communicating end points. The following sections
+ describe the IPsec protocols that must be implemented for data
+ integrity and authentication, confidentiality, and cryptographic key
+ management.
+
+ An iSCSI initiator or target may provide the required IPsec support
+ fully integrated or in conjunction with an IPsec front-end device.
+ In the latter case, the compliance requirements with regard to IPsec
+ support apply to the "combined device". Only the "combined device"
+ is to be considered an iSCSI device.
+
+ Detailed considerations and recommendations for using IPsec for iSCSI
+ are provided in [RFC3723].
+
+8.3.1. Data Integrity and Authentication
+
+ Data authentication and integrity is provided by a cryptographic
+ keyed Message Authentication Code in every sent packet. This code
+ protects against message insertion, deletion, and modification.
+ Protection against message replay is realized by using a sequence
+ counter.
+
+ An iSCSI compliant initiator or target MUST provide data integrity
+ and authentication by implementing IPsec [RFC2401] with ESP [RFC2406]
+ in tunnel mode and MAY provide data integrity and authentication by
+ implementing IPsec with ESP in transport mode. The IPsec
+ implementation MUST fulfill the following iSCSI specific
+ requirements:
+
+ - HMAC-SHA1 MUST be implemented [RFC2404].
+ - AES CBC MAC with XCBC extensions SHOULD be implemented
+ [RFC3566].
+
+ The ESP anti-replay service MUST also be implemented.
+
+ At the high speeds iSCSI is expected to operate, a single IPsec SA
+ could rapidly cycle through the 32-bit IPsec sequence number space.
+ In view of this, it may be desirable in the future for an iSCSI
+ implementation that operates at speeds of 1 Gbps or greater to
+ implement the IPsec sequence number extension [SEQ-EXT].
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 104]
+
+RFC 3720 iSCSI April 2004
+
+
+8.3.2. Confidentiality
+
+ Confidentiality is provided by encrypting the data in every packet.
+ When confidentiality is used it MUST be accompanied by data integrity
+ and authentication to provide comprehensive protection against
+ eavesdropping, message insertion, deletion, modification, and
+ replaying.
+
+ An iSCSI compliant initiator or target MUST provide confidentiality
+ by implementing IPsec [RFC2401] with ESP [RFC2406] in tunnel mode and
+ MAY provide confidentiality by implementing IPsec with ESP in
+ transport mode, with the following iSCSI specific requirements:
+
+ - 3DES in CBC mode MUST be implemented [RFC2451].
+ - AES in Counter mode SHOULD be implemented [RFC3686].
+
+ DES in CBC mode SHOULD NOT be used due to its inherent weakness. The
+ NULL encryption algorithm MUST also be implemented.
+
+8.3.3. Policy, Security Associations, and Cryptographic Key Management
+
+ A compliant iSCSI implementation MUST meet the cryptographic key
+ management requirements of the IPsec protocol suite. Authentication,
+ security association negotiation, and cryptographic key management
+ MUST be provided by implementing IKE [RFC2409] using the IPsec DOI
+ [RFC2407] with the following iSCSI specific requirements:
+
+ - Peer authentication using a pre-shared cryptographic key MUST be
+ supported. Certificate-based peer authentication using digital
+ signatures MAY be supported. Peer authentication using the
+ public key encryption methods outlined in IKE sections 5.2 and
+ 5.3[7] SHOULD NOT be used.
+
+ - When digital signatures are used to achieve authentication, an
+ IKE negotiator SHOULD use IKE Certificate Request Payload(s) to
+ specify the certificate authority. IKE negotiators SHOULD check
+ the pertinent Certificate Revocation List (CRL) before accepting
+ a PKI certificate for use in IKE authentication procedures.
+
+ - Conformant iSCSI implementations MUST support IKE Main Mode and
+ SHOULD support Aggressive Mode. IKE main mode with pre-shared
+ key authentication method SHOULD NOT be used when either the
+ initiator or the target uses dynamically assigned IP addresses.
+ While in many cases pre-shared keys offer good security,
+ situations in which dynamically assigned addresses are used force
+ the use of a group pre-shared key, which creates vulnerability to
+ a man-in-the-middle attack.
+
+
+
+
+Satran, et al. Standards Track [Page 105]
+
+RFC 3720 iSCSI April 2004
+
+
+ - In the IKE Phase 2 Quick Mode, exchanges for creating the Phase 2
+ SA, the Identity Payload, fields MUST be present. ID_IPV4_ADDR,
+ ID_IPV6_ADDR (if the protocol stack supports IPv6) and ID_FQDN
+ Identity payloads MUST be supported; ID_USER_FQDN SHOULD be
+ supported. The IP Subnet, IP Address Range, ID_DER_ASN1_DN, and
+ ID_DER_ASN1_GN formats SHOULD NOT be used. The ID_KEY_ID
+ Identity Payload MUST NOT be used.
+
+ Manual cryptographic keying MUST NOT be used because it does not
+ provide the necessary re-keying support.
+
+ When IPsec is used, the receipt of an IKE Phase 2 delete message
+ SHOULD NOT be interpreted as a reason for tearing down the iSCSI TCP
+ connection. If additional traffic is sent on it, a new IKE Phase 2
+ SA will be created to protect it.
+
+ The method used by the initiator to determine whether the target
+ should be connected using IPsec is regarded as an issue of IPsec
+ policy administration, and thus not defined in the iSCSI standard.
+
+ If an iSCSI target is discovered via a SendTargets request in a
+ discovery session not using IPsec, the initiator should assume that
+ it does not need IPsec to establish a session to that target. If an
+ iSCSI target is discovered using a discovery session that does use
+ IPsec, the initiator SHOULD use IPsec when establishing a session to
+ that target.
+
+9. Notes to Implementers
+
+ This section notes some of the performance and reliability
+ considerations of the iSCSI protocol. This protocol was designed to
+ allow efficient silicon and software implementations. The iSCSI task
+ tag mechanism was designed to enable Direct Data Placement (DDP - a
+ DMA form) at the iSCSI level or lower.
+
+ The guiding assumption made throughout the design of this protocol is
+ that targets are resource constrained relative to initiators.
+
+ Implementers are also advised to consider the implementation
+ consequences of the iSCSI to SCSI mapping model as outlined in
+ Section 3.4.3 Consequences of the Model.
+
+9.1. Multiple Network Adapters
+
+ The iSCSI protocol allows multiple connections, not all of which need
+ to go over the same network adapter. If multiple network connections
+ are to be utilized with hardware support, the iSCSI protocol
+
+
+
+
+Satran, et al. Standards Track [Page 106]
+
+RFC 3720 iSCSI April 2004
+
+
+ command-data-status allegiance to one TCP connection ensures that
+ there is no need to replicate information across network adapters or
+ otherwise require them to cooperate.
+
+ However, some task management commands may require some loose form of
+ cooperation or replication at least on the target.
+
+9.1.1. Conservative Reuse of ISIDs
+
+ Historically, the SCSI model (and implementations and applications
+ based on that model) has assumed that SCSI ports are static, physical
+ entities. Recent extensions to the SCSI model have taken advantage
+ of persistent worldwide unique names for these ports. In iSCSI
+ however, the SCSI initiator ports are the endpoints of dynamically
+ created sessions, so the presumptions of "static and physical" do not
+ apply. In any case, the model clauses (particularly, Section 3.4.2
+ SCSI Architecture Model) provide for persistent, reusable names for
+ the iSCSI-type SCSI initiator ports even though there does not need
+ to be any physical entity bound to these names.
+
+ To both minimize the disruption of legacy applications and to better
+ facilitate the SCSI features that rely on persistent names for SCSI
+ ports, iSCSI implementations SHOULD attempt to provide a stable
+ presentation of SCSI Initiator Ports (both to the upper OS-layers and
+ to the targets to which they connect). This can be achieved in an
+ initiator implementation by conservatively reusing ISIDs. In other
+ words, the same ISID should be used in the Login process to multiple
+ target portal groups (of the same iSCSI Target or different iSCSI
+ Targets). The ISID RULE (Section 3.4.3 Consequences of the Model)
+ only prohibits reuse to the same target portal group. It does not
+ "preclude" reuse to other target portal groups. The principle of
+ conservative reuse "encourages" reuse to other target portal groups.
+ When a SCSI target device sees the same (InitiatorName, ISID) pair in
+ different sessions to different target portal groups, it can identify
+ the underlying SCSI Initiator Port on each session as the same SCSI
+ port. In effect, it can recognize multiple paths from the same
+ source.
+
+9.1.2. iSCSI Name, ISID, and TPGT Use
+
+ The designers of the iSCSI protocol envisioned there being one iSCSI
+ Initiator Node Name per operating system image on a machine. This
+ enables SAN resource configuration and authentication schemes based
+ on a system's identity. It supports the notion that it should be
+ possible to assign access to storage resources based on "initiator
+ device" identity.
+
+
+
+
+
+Satran, et al. Standards Track [Page 107]
+
+RFC 3720 iSCSI April 2004
+
+
+ When there are multiple hardware or software components coordinated
+ as a single iSCSI Node, there must be some (logical) entity that
+ represents the iSCSI Node that makes the iSCSI Node Name available to
+ all components involved in session creation and login. Similarly,
+ this entity that represents the iSCSI Node must be able to coordinate
+ session identifier resources (ISID for initiators) to enforce both
+ the ISID and TSIH RULES (see Section 3.4.3 Consequences of the
+ Model).
+
+ For targets, because of the closed environment, implementation of
+ this entity should be straightforward. However, vendors of iSCSI
+ hardware (e.g., NICs or HBAs) intended for targets, SHOULD provide
+ mechanisms for configuration of the iSCSI Node Name across the portal
+ groups instantiated by multiple instances of these components within
+ a target.
+
+ However, complex targets making use of multiple Target Portal Group
+ Tags may reconfigure them to achieve various quality goals. The
+ initiators have two mechanisms at their disposal to discover and/or
+ check reconfiguring targets - the discovery session type and a key
+ returned by the target during login to confirm the TPGT. An
+ initiator should attempt to "rediscover" the target configuration
+ anytime a session is terminated unexpectedly.
+
+ For initiators, in the long term, it is expected that operating
+ system vendors will take on the role of this entity and provide
+ standard APIs that can inform components of their iSCSI Node Name and
+ can configure and/or coordinate ISID allocation, use, and reuse.
+
+ Recognizing that such initiator APIs are not available today, other
+ implementations of the role of this entity are possible. For
+ example, a human may instantiate the (common) Node name as part of
+ the installation process of each iSCSI component involved in session
+ creation and login. This may be done either by pointing the
+ component to a vendor-specific location for this datum or to a
+ system-wide location. The structure of the ISID namespace (see
+ Section 10.12.5 ISID and [RFC3721]) facilitates implementation of the
+ ISID coordination by allowing each component vendor to independently
+ (of other vendor's components) coordinate allocation, use, and reuse
+ of its own partition of the ISID namespace in a vendor-specific
+ manner. Partitioning of the ISID namespace within initiator portal
+ groups managed by that vendor allows each such initiator portal group
+ to act independently of all other portal groups when selecting an
+ ISID for a login; this facilitates enforcement of the ISID RULE (see
+ Section 3.4.3 Consequences of the Model) at the initiator.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 108]
+
+RFC 3720 iSCSI April 2004
+
+
+ A vendor of iSCSI hardware (e.g., NICs or HBAs) intended for use in
+ initiators MUST implement a mechanism for configuring the iSCSI Node
+ Name. Vendors, and administrators must ensure that iSCSI Node Names
+ are unique worldwide. It is therefore important that when one
+ chooses to reuse the iSCSI Node Name of a disabled unit, not to
+ re-assign that name to the original unit unless its worldwide
+ uniqueness can be ascertained again.
+
+ In addition, a vendor of iSCSI hardware must implement a mechanism to
+ configure and/or coordinate ISIDs for all sessions managed by
+ multiple instances of that hardware within a given iSCSI Node. Such
+ configuration might be either permanently pre-assigned at the factory
+ (in a necessarily globally unique way), statically assigned (e.g.,
+ partitioned across all the NICs at initialization in a locally unique
+ way), or dynamically assigned (e.g., on-line allocator, also in a
+ locally unique way). In the latter two cases, the configuration may
+ be via public APIs (perhaps driven by an independent vendor's
+ software, such as the OS vendor) or via private APIs driven by the
+ vendor's own software.
+
+9.2. Autosense and Auto Contingent Allegiance (ACA)
+
+ Autosense refers to the automatic return of sense data to the
+ initiator in case a command did not complete successfully. iSCSI
+ initiators and targets MUST support and use autosense.
+
+ ACA helps preserve ordered command execution in the presence of
+ errors. As iSCSI can have many commands in-flight between initiator
+ and target, iSCSI initiators and targets SHOULD support ACA.
+
+9.3. iSCSI Timeouts
+
+ iSCSI recovery actions are often dependent on iSCSI time-outs being
+ recognized and acted upon before SCSI time-outs. Determining the
+ right time-outs to use for various iSCSI actions (command
+ acknowledgements expected, status acknowledgements, etc.) is very
+ much dependent on infrastructure (hardware, links, TCP/IP stack,
+ iSCSI driver). As a guide, the implementer may use an average
+ Nop-Out/Nop-In turnaround delay multiplied by a "safety factor"
+ (e.g., 4) as a good estimate for the basic delay of the iSCSI stack
+ for a given connection. The safety factor should account for the
+ network load variability. For connection teardown the implementer
+ may want to consider also the TCP common practice for the given
+ infrastructure.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 109]
+
+RFC 3720 iSCSI April 2004
+
+
+ Text negotiations MAY also be subject to either time-limits or limits
+ in the number of exchanges. Those SHOULD be generous enough to avoid
+ affecting interoperability (e.g., allowing each key to be negotiated
+ on a separate exchange).
+
+ The relation between iSCSI timeouts and SCSI timeouts should also be
+ considered. SCSI timeouts should be longer than iSCSI timeouts plus
+ the time required for iSCSI recovery whenever iSCSI recovery is
+ planned. Alternatively, an implementer may choose to interlock iSCSI
+ timeouts and recovery with SCSI timeouts so that SCSI recovery will
+ become active only where iSCSI is not planned to, or failed to,
+ recover.
+
+ The implementer may also want to consider the interaction between
+ various iSCSI exception events - such as a digest failure - and
+ subsequent timeouts. When iSCSI error recovery is active, a digest
+ failure is likely to result in discovering a missing command or data
+ PDU. In these cases, an implementer may want to lower the timeout
+ values to enable faster initiation for recovery procedures.
+
+9.4. Command Retry and Cleaning Old Command Instances
+
+ To avoid having old, retried command instances appear in a valid
+ command window after a command sequence number wrap around, the
+ protocol requires (see Section 3.2.2.1 Command Numbering and
+ Acknowledging) that on every connection on which a retry has been
+ issued, a non-immediate command be issued and acknowledged within a
+ 2**31-1 commands interval from the CmdSN of the retried command.
+ This requirement can be fulfilled by an implementation in several
+ ways.
+
+ The simplest technique to use is to send a (non-retry) non-immediate
+ SCSI command (or a NOP if no SCSI command is available for a while)
+ after every command retry on the connection on which the retry was
+ attempted. As errors are deemed rare events, this technique is
+ probably the most effective, as it does not involve additional checks
+ at the initiator when issuing commands.
+
+9.5. Synch and Steering Layer and Performance
+
+ While a synch and steering layer is optional, an initiator/target
+ that does not have it working against a target/initiator that demands
+ synch and steering may experience performance degradation caused by
+ packet reordering and loss. Providing a synch and steering mechanism
+ is recommended for all high-speed implementations.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 110]
+
+RFC 3720 iSCSI April 2004
+
+
+9.6. Considerations for State-dependent Devices and Long-lasting SCSI
+ Operations
+
+ Sequential access devices operate on the principle that the position
+ of the device is based on the last command processed. As such,
+ command processing order and knowledge of whether or not the previous
+ command was processed is of the utmost importance to maintain data
+ integrity. For example, inadvertent retries of SCSI commands when it
+ is not known if the previous SCSI command was processed is a
+ potential data integrity risk.
+
+ For a sequential access device, consider the scenario in which a SCSI
+ SPACE command to backspace one filemark is issued and then re-issued
+ due to no status received for the command. If the first SPACE
+ command was actually processed, the re-issued SPACE command, if
+ processed, will cause the position to change. Thus, a subsequent
+ write operation will write data to the wrong position and any
+ previous data at that position will be overwritten.
+
+ For a medium changer device, consider the scenario in which an
+ EXCHANGE MEDIUM command (the SOURCE ADDRESS and DESTINATION ADDRESS
+ are the same thus performing a swap) is issued and then re-issued due
+ to no status received for the command. If the first EXCHANGE MEDIUM
+ command was actually processed, the re-issued EXCHANGE MEDIUM
+ command, if processed, will perform the swap again. The net effect
+ is that a swap was not performed thus leaving a data integrity
+ exposure.
+
+ All commands that change the state of the device (as in SPACE
+ commands for sequential access devices, and EXCHANGE MEDIUM for
+ medium changer device), MUST be issued as non-immediate commands for
+ deterministic and in order delivery to iSCSI targets.
+
+ For many of those state changing commands, the execution model also
+ assumes that the command is executed exactly once. Devices
+ implementing READ POSITION and LOCATE provide a means for SCSI level
+ command recovery and new tape-class devices should support those
+ commands. In their absence a retry at SCSI level is difficult and
+ error recovery at iSCSI level is advisable.
+
+ Devices operating on long latency delivery subsystems and performing
+ long lasting SCSI operations may need mechanisms that enable
+ connection replacement while commands are running (e.g., during an
+ extended copy operation).
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 111]
+
+RFC 3720 iSCSI April 2004
+
+
+9.6.1. Determining the Proper ErrorRecoveryLevel
+
+ The implementation and use of a specific ErrorRecoveryLevel should be
+ determined based on the deployment scenarios of a given iSCSI
+ implementation. Generally, the following factors must be considered
+ before deciding on the proper level of recovery:
+
+ a) Application resilience to I/O failures.
+ b) Required level of availability in the face of transport
+ connection failures.
+ c) Probability of transport layer "checksum escape". This in
+ turn decides the iSCSI digest failure frequency, and thus the
+ criticality of iSCSI-level error recovery. The details of
+ estimating this probability are outside the scope of this
+ document.
+
+
+ A consideration of the above factors for SCSI tape devices as an
+ example suggests that implementations SHOULD use ErrorRecoveryLevel=1
+ when transport connection failure is not a concern and SCSI level
+ recovery is unavailable, and ErrorRecoveryLevel=2 when the connection
+ failure is also of high likelihood during a backup/retrieval.
+
+ For extended copy operations, implementations SHOULD use
+ ErrorRecoveryLevel=2 whenever there is a relatively high likelihood
+ of connection failure.
+
+10. iSCSI PDU Formats
+
+ All multi-byte integers that are specified in formats defined in this
+ document are to be represented in network byte order (i.e., big
+ endian). Any field that appears in this document assumes that the
+ most significant byte is the lowest numbered byte and the most
+ significant bit (within byte or field) is the lowest numbered bit
+ unless specified otherwise.
+
+ Any compliant sender MUST set all bits not defined and all reserved
+ fields to zero unless specified otherwise. Any compliant receiver
+ MUST ignore any bit not defined and all reserved fields unless
+ specified otherwise. Receipt of reserved code values in defined
+ fields MUST be reported as a protocol error.
+
+ Reserved fields are marked by the word "reserved", some abbreviation
+ of "reserved", or by "." for individual bits when no other form of
+ marking is technically feasible.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 112]
+
+RFC 3720 iSCSI April 2004
+
+
+10.1. iSCSI PDU Length and Padding
+
+ iSCSI PDUs are padded to the closest integer number of four byte
+ words. The padding bytes SHOULD be sent as 0.
+
+10.2. PDU Template, Header, and Opcodes
+
+ All iSCSI PDUs have one or more header segments and, optionally, a
+ data segment. After the entire header segment group a header-digest
+ MAY follow. The data segment MAY also be followed by a data-digest.
+
+ The Basic Header Segment (BHS) is the first segment in all of the
+ iSCSI PDUs. The BHS is a fixed-length 48-byte header segment. It
+ MAY be followed by Additional Header Segments (AHS), a Header-Digest,
+ a Data Segment, and/or a Data-Digest.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 113]
+
+RFC 3720 iSCSI April 2004
+
+
+ The overall structure of an iSCSI PDU is as follows:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0/ Basic Header Segment (BHS) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48/ Additional Header Segment 1 (AHS) (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ / Additional Header Segment 2 (AHS) (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ ----
+ +---------------+---------------+---------------+---------------+
+ / Additional Header Segment n (AHS) (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ ----
+ +---------------+---------------+---------------+---------------+
+ k/ Header-Digest (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ l/ Data Segment(optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ m/ Data-Digest (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+
+ All PDU segments and digests are padded to the closest integer number
+ of four byte words. For example, all PDU segments and digests start
+ at a four byte word boundary and the padding ranges from 0 to 3
+ bytes. The padding bytes SHOULD be sent as 0.
+
+ iSCSI response PDUs do not have AH Segments.
+
+10.2.1. Basic Header Segment (BHS)
+
+ The BHS is 48 bytes long. The Opcode and DataSegmentLength fields
+ appear in all iSCSI PDUs. In addition, when used, the Initiator Task
+ Tag and Logical Unit Number always appear in the same location in the
+ header.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 114]
+
+RFC 3720 iSCSI April 2004
+
+
+ The format of the BHS is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| Opcode |F| Opcode-specific fields |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Opcode-specific fields |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20/ Opcode-specific fields /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48
+
+10.2.1.1 I
+
+ For request PDUs, the I bit set to 1 is an immediate delivery marker.
+
+10.2.1.2. Opcode
+
+ The Opcode indicates the type of iSCSI PDU the header encapsulates.
+
+ The Opcodes are divided into two categories: initiator opcodes and
+ target opcodes. Initiator opcodes are in PDUs sent by the initiator
+ (request PDUs). Target opcodes are in PDUs sent by the target
+ (response PDUs).
+
+ Initiators MUST NOT use target opcodes and targets MUST NOT use
+ initiator opcodes.
+
+ Initiator opcodes defined in this specification are:
+
+ 0x00 NOP-Out
+ 0x01 SCSI Command (encapsulates a SCSI Command Descriptor Block)
+ 0x02 SCSI Task Management function request
+ 0x03 Login Request
+ 0x04 Text Request
+ 0x05 SCSI Data-Out (for WRITE operations)
+ 0x06 Logout Request
+ 0x10 SNACK Request
+ 0x1c-0x1e Vendor specific codes
+
+
+
+Satran, et al. Standards Track [Page 115]
+
+RFC 3720 iSCSI April 2004
+
+
+
+ Target opcodes are:
+
+ 0x20 NOP-In
+ 0x21 SCSI Response - contains SCSI status and possibly sense
+ information or other response information.
+ 0x22 SCSI Task Management function response
+ 0x23 Login Response
+ 0x24 Text Response
+ 0x25 SCSI Data-In - for READ operations.
+ 0x26 Logout Response
+ 0x31 Ready To Transfer (R2T) - sent by target when it is ready
+ to receive data.
+ 0x32 Asynchronous Message - sent by target to indicate certain
+ special conditions.
+ 0x3c-0x3e Vendor specific codes
+ 0x3f Reject
+
+ All other opcodes are reserved.
+
+10.2.1.3. Final (F) bit
+
+ When set to 1 it indicates the final (or only) PDU of a sequence.
+
+10.2.1.4. Opcode-specific Fields
+
+ These fields have different meanings for different opcode types.
+
+10.2.1.5. TotalAHSLength
+
+ Total length of all AHS header segments in units of four byte words
+ including padding, if any.
+
+ The TotalAHSLength is only used in PDUs that have an AHS and MUST be
+ 0 in all other PDUs.
+
+10.2.1.6. DataSegmentLength
+
+ This is the data segment payload length in bytes (excluding padding).
+ The DataSegmentLength MUST be 0 whenever the PDU has no data segment.
+
+10.2.1.7. LUN
+
+ Some opcodes operate on a specific Logical Unit. The Logical Unit
+ Number (LUN) field identifies which Logical Unit. If the opcode does
+ not relate to a Logical Unit, this field is either ignored or may be
+ used in an opcode specific way. The LUN field is 64-bits and should
+
+
+
+
+Satran, et al. Standards Track [Page 116]
+
+RFC 3720 iSCSI April 2004
+
+
+ be formatted in accordance with [SAM2]. For example, LUN[0] from
+ [SAM2] is BHS byte 8 and so on up to LUN[7] from [SAM2], which is BHS
+ byte 15.
+
+10.2.1.8. Initiator Task Tag
+
+ The initiator assigns a Task Tag to each iSCSI task it issues. While
+ a task exists, this tag MUST uniquely identify the task session-wide.
+ SCSI may also use the initiator task tag as part of the SCSI task
+ identifier when the timespan during which an iSCSI initiator task tag
+ must be unique extends over the timespan during which a SCSI task tag
+ must be unique. However, the iSCSI Initiator Task Tag must exist and
+ be unique even for untagged SCSI commands.
+
+10.2.2. Additional Header Segment (AHS)
+
+ The general format of an AHS is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0| AHSLength | AHSType | AHS-Specific |
+ +---------------+---------------+---------------+---------------+
+ 4/ AHS-Specific /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ x
+
+10.2.2.1. AHSType
+
+ The AHSType field is coded as follows:
+
+ bit 0-1 - Reserved
+
+ bit 2-7 - AHS code
+
+ 0 - Reserved
+ 1 - Extended CDB
+ 2 - Expected Bidirectional Read Data Length
+ 3 - 63 Reserved
+
+10.2.2.2. AHSLength
+
+ This field contains the effective length in bytes of the AHS
+ excluding AHSType and AHSLength and padding, if any. The AHS is
+ padded to the smallest integer number of 4 byte words (i.e., from 0
+ up to 3 padding bytes).
+
+
+
+Satran, et al. Standards Track [Page 117]
+
+RFC 3720 iSCSI April 2004
+
+
+10.2.2.3. Extended CDB AHS
+
+ The format of the Extended CDB AHS is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0| AHSLength (CDBLength-15) | 0x01 | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4/ ExtendedCDB...+padding /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ x
+
+ This type of AHS MUST NOT be used if the CDBLength is less than 17.
+ The length includes the reserved byte 3.
+
+10.2.2.4. Bidirectional Expected Read-Data Length AHS
+
+ The format of the Bidirectional Read Expected Data Transfer Length
+ AHS is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0| AHSLength (0x0005) | 0x02 | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4| Expected Read-Data Length |
+ +---------------+---------------+---------------+---------------+
+ 8
+
+10.2.3. Header Digest and Data Digest
+
+ Optional header and data digests protect the integrity of the header
+ and data, respectively. The digests, if present, are located,
+ respectively, after the header and PDU-specific data, and cover
+ respectively the header and the PDU data, each including the padding
+ bytes, if any.
+
+ The existence and type of digests are negotiated during the Login
+ Phase.
+
+ The separation of the header and data digests is useful in iSCSI
+ routing applications, in which only the header changes when a message
+ is forwarded. In this case, only the header digest should be
+ recalculated.
+
+
+
+Satran, et al. Standards Track [Page 118]
+
+RFC 3720 iSCSI April 2004
+
+
+ Digests are not included in data or header length fields.
+
+ A zero-length Data Segment also implies a zero-length data-digest.
+
+10.2.4. Data Segment
+
+ The (optional) Data Segment contains PDU associated data. Its
+ payload effective length is provided in the BHS field -
+ DataSegmentLength. The Data Segment is also padded to an integer
+ number of 4 byte words.
+
+10.3. SCSI Command
+
+ The format of the SCSI Command PDU is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| 0x01 |F|R|W|. .|ATTR | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| Logical Unit Number (LUN) |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Expected Data Transfer Length |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32/ SCSI Command Descriptor Block (CDB) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48/ AHS (Optional) /
+ +---------------+---------------+---------------+---------------+
+ x/ Header Digest (Optional) /
+ +---------------+---------------+---------------+---------------+
+ y/ (DataSegment, Command Data) (Optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ z/ Data Digest (Optional) /
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+Satran, et al. Standards Track [Page 119]
+
+RFC 3720 iSCSI April 2004
+
+
+10.3.1. Flags and Task Attributes (byte 1)
+
+ The flags for a SCSI Command are:
+
+ bit 0 (F) is set to 1 when no unsolicited SCSI Data-Out PDUs follow
+ this PDU. When F=1 for a write and if Expected Data
+ Transfer Length is larger than the DataSegmentLength, the
+ target may solicit additional data through R2T.
+
+ bit 1 (R) is set to 1 when the command is expected to input data.
+
+ bit 2 (W) is set to 1 when the command is expected to output data.
+
+ bit 3-4 Reserved.
+
+ bit 5-7 contains Task Attributes.
+
+ Task Attributes (ATTR) have one of the following integer values (see
+ [SAM2] for details):
+
+ 0 - Untagged
+ 1 - Simple
+ 2 - Ordered
+ 3 - Head of Queue
+ 4 - ACA
+ 5-7 - Reserved
+
+ Setting both the W and the F bit to 0 is an error. Either or both of
+ R and W MAY be 1 when either the Expected Data Transfer Length and/or
+ Bidirectional Read Expected Data Transfer Length are 0, but they MUST
+ NOT both be 0 when the Expected Data Transfer Length and/or
+ Bidirectional Read Expected Data Transfer Length are not 0 (i.e.,
+ when some data transfer is expected the transfer direction is
+ indicated by the R and/or W bit).
+
+10.3.2. CmdSN - Command Sequence Number
+
+ Enables ordered delivery across multiple connections in a single
+ session.
+
+10.3.3. ExpStatSN
+
+ Command responses up to ExpStatSN-1 (mod 2**32) have been received
+ (acknowledges status) on the connection.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 120]
+
+RFC 3720 iSCSI April 2004
+
+
+10.3.4. Expected Data Transfer Length
+
+ For unidirectional operations, the Expected Data Transfer Length
+ field contains the number of bytes of data involved in this SCSI
+ operation. For a unidirectional write operation (W flag set to 1 and
+ R flag set to 0), the initiator uses this field to specify the number
+ of bytes of data it expects to transfer for this operation. For a
+ unidirectional read operation (W flag set to 0 and R flag set to 1),
+ the initiator uses this field to specify the number of bytes of data
+ it expects the target to transfer to the initiator. It corresponds
+ to the SAM2 byte count.
+
+ For bidirectional operations (both R and W flags are set to 1), this
+ field contains the number of data bytes involved in the write
+ transfer. For bidirectional operations, an additional header segment
+ MUST be present in the header sequence that indicates the
+ Bidirectional Read Expected Data Transfer Length. The Expected Data
+ Transfer Length field and the Bidirectional Read Expected Data
+ Transfer Length field correspond to the SAM2 byte count
+
+ If the Expected Data Transfer Length for a write and the length of
+ the immediate data part that follows the command (if any) are the
+ same, then no more data PDUs are expected to follow. In this case,
+ the F bit MUST be set to 1.
+
+ If the Expected Data Transfer Length is higher than the
+ FirstBurstLength (the negotiated maximum amount of unsolicited data
+ the target will accept), the initiator MUST send the maximum amount
+ of unsolicited data OR ONLY the immediate data, if any.
+
+ Upon completion of a data transfer, the target informs the initiator
+ (through residual counts) of how many bytes were actually processed
+ (sent and/or received) by the target.
+
+10.3.5. CDB - SCSI Command Descriptor Block
+
+ There are 16 bytes in the CDB field to accommodate the commonly used
+ CDBs. Whenever the CDB is larger than 16 bytes, an Extended CDB AHS
+ MUST be used to contain the CDB spillover.
+
+10.3.6. Data Segment - Command Data
+
+ Some SCSI commands require additional parameter data to accompany the
+ SCSI command. This data may be placed beyond the boundary of the
+ iSCSI header in a data segment. Alternatively, user data (e.g., from
+ a WRITE operation) can be placed in the data segment (both cases are
+
+
+
+
+
+Satran, et al. Standards Track [Page 121]
+
+RFC 3720 iSCSI April 2004
+
+
+ referred to as immediate data). These data are governed by the rules
+ for solicited vs. unsolicited data outlined in Section 3.2.4.2 Data
+ Transfer Overview.
+
+10.4. SCSI Response
+
+ The format of the SCSI Response PDU is:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x21 |1|. .|o|u|O|U|.| Response | Status |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| SNACK Tag or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| ExpDataSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40| Bidirectional Read Residual Count or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 44| Residual Count or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / Data Segment (Optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 122]
+
+RFC 3720 iSCSI April 2004
+
+
+10.4.1. Flags (byte 1)
+
+ bit 1-2 Reserved.
+
+ bit 3 - (o) set for Bidirectional Read Residual Overflow. In this
+ case, the Bidirectional Read Residual Count indicates the number
+ of bytes that were not transferred to the initiator because the
+ initiator's Expected Bidirectional Read Data Transfer Length was
+ not sufficient.
+
+ bit 4 - (u) set for Bidirectional Read Residual Underflow. In this
+ case, the Bidirectional Read Residual Count indicates the number
+ of bytes that were not transferred to the initiator out of the
+ number of bytes expected to be transferred.
+
+ bit 5 - (O) set for Residual Overflow. In this case, the Residual
+ Count indicates the number of bytes that were not transferred
+ because the initiator's Expected Data Transfer Length was not
+ sufficient. For a bidirectional operation, the Residual Count
+ contains the residual for the write operation.
+
+ bit 6 - (U) set for Residual Underflow. In this case, the Residual
+ Count indicates the number of bytes that were not transferred out
+ of the number of bytes that were expected to be transferred. For
+ a bidirectional operation, the Residual Count contains the
+ residual for the write operation.
+
+ bit 7 - (0) Reserved.
+
+ Bits O and U and bits o and u are mutually exclusive (i.e., having
+ both o and u or O and U set to 1 is a protocol error). For a
+ response other than "Command Completed at Target", bits 3-6 MUST be
+ 0.
+
+10.4.2. Status
+
+ The Status field is used to report the SCSI status of the command (as
+ specified in [SAM2]) and is only valid if the Response Code is
+ Command Completed at target.
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 123]
+
+RFC 3720 iSCSI April 2004
+
+
+ Some of the status codes defined in [SAM2] are:
+
+ 0x00 GOOD
+ 0x02 CHECK CONDITION
+ 0x08 BUSY
+ 0x18 RESERVATION CONFLICT
+ 0x28 TASK SET FULL
+ 0x30 ACA ACTIVE
+ 0x40 TASK ABORTED
+
+ See [SAM2] for the complete list and definitions.
+
+ If a SCSI device error is detected while data from the initiator is
+ still expected (the command PDU did not contain all the data and the
+ target has not received a Data PDU with the final bit Set), the
+ target MUST wait until it receives a Data PDU with the F bit set in
+ the last expected sequence before sending the Response PDU.
+
+10.4.3. Response
+
+ This field contains the iSCSI service response.
+
+ iSCSI service response codes defined in this specification are:
+
+ 0x00 - Command Completed at Target
+ 0x01 - Target Failure
+ 0x80-0xff - Vendor specific
+
+ All other response codes are reserved.
+
+ The Response is used to report a Service Response. The mapping of
+ the response code into a SCSI service response code value, if needed,
+ is outside the scope of this document. However, in symbolic terms
+ response value 0x00 maps to the SCSI service response (see [SAM2] and
+ [SPC3]) of TASK COMPLETE or LINKED COMMAND COMPLETE. All other
+ Response values map to the SCSI service response of SERVICE DELIVERY
+ OR TARGET FAILURE.
+
+ If a PDU that includes SCSI status (Response PDU or Data-In PDU
+ including status) does not arrive before the session is terminated,
+ the SCSI service response is SERVICE DELIVERY OR TARGET FAILURE.
+
+ A non-zero Response field indicates a failure to execute the command
+ in which case the Status and Flag fields are undefined.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 124]
+
+RFC 3720 iSCSI April 2004
+
+
+10.4.4. SNACK Tag
+
+ This field contains a copy of the SNACK Tag of the last SNACK Tag
+ accepted by the target on the same connection and for the command for
+ which the response is issued. Otherwise it is reserved and should be
+ set to 0.
+
+ After issuing a R-Data SNACK the initiator must discard any SCSI
+ status unless contained in an SCSI Response PDU carrying the same
+ SNACK Tag as the last issued R-Data SNACK for the SCSI command on the
+ current connection.
+
+ For a detailed discussion on R-Data SNACK see Section 10.16 SNACK
+ Request.
+
+10.4.5. Residual Count
+
+ The Residual Count field MUST be valid in the case where either the U
+ bit or the O bit is set. If neither bit is set, the Residual Count
+ field is reserved. Targets may set the residual count and initiators
+ may use it when the response code is "completed at target" (even if
+ the status returned is not GOOD). If the O bit is set, the Residual
+ Count indicates the number of bytes that were not transferred because
+ the initiator's Expected Data Transfer Length was not sufficient. If
+ the U bit is set, the Residual Count indicates the number of bytes
+ that were not transferred out of the number of bytes expected to be
+ transferred.
+
+10.4.6. Bidirectional Read Residual Count
+
+ The Bidirectional Read Residual Count field MUST be valid in the case
+ where either the u bit or the o bit is set. If neither bit is set,
+ the Bidirectional Read Residual Count field is reserved. Targets may
+ set the Bidirectional Read Residual Count and initiators may use it
+ when the response code is "completed at target". If the o bit is
+ set, the Bidirectional Read Residual Count indicates the number of
+ bytes that were not transferred to the initiator because the
+ initiator's Expected Bidirectional Read Transfer Length was not
+ sufficient. If the u bit is set, the Bidirectional Read Residual
+ Count indicates the number of bytes that were not transferred to the
+ initiator out of the number of bytes expected to be transferred.
+
+10.4.7. Data Segment - Sense and Response Data Segment
+
+ iSCSI targets MUST support and enable autosense. If Status is CHECK
+ CONDITION (0x02), then the Data Segment MUST contain sense data for
+ the failed command.
+
+
+
+
+Satran, et al. Standards Track [Page 125]
+
+RFC 3720 iSCSI April 2004
+
+
+ For some iSCSI responses, the response data segment MAY contain some
+ response related information, (e.g., for a target failure, it may
+ contain a vendor specific detailed description of the failure).
+
+ If the DataSegmentLength is not 0, the format of the Data Segment is
+ as follows:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|SenseLength | Sense Data |
+ +---------------+---------------+---------------+---------------+
+ x/ Sense Data /
+ +---------------+---------------+---------------+---------------+
+ y/ Response Data /
+ / /
+ +---------------+---------------+---------------+---------------+
+ z|
+
+10.4.7.1. SenseLength
+
+ Length of Sense Data.
+
+10.4.7.2. Sense Data
+
+ The Sense Data contains detailed information about a check condition
+ and [SPC3] specifies the format and content of the Sense Data.
+
+ Certain iSCSI conditions result in the command being terminated at
+ the target (response Command Completed at Target) with a SCSI Check
+ Condition Status as outlined in the next table:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 126]
+
+RFC 3720 iSCSI April 2004
+
+
+ +--------------------------+----------+---------------------------+
+ | iSCSI Condition |Sense | Additional Sense Code & |
+ | |Key | Qualifier |
+ +--------------------------+----------+---------------------------+
+ | Unexpected unsolicited |Aborted | ASC = 0x0c ASCQ = 0x0c |
+ | data |Command-0B| Write Error |
+ +--------------------------+----------+---------------------------+
+ | Incorrect amount of data |Aborted | ASC = 0x0c ASCQ = 0x0d |
+ | |Command-0B| Write Error |
+ +--------------------------+----------+---------------------------+
+ | Protocol Service CRC |Aborted | ASC = 0x47 ASCQ = 0x05 |
+ | error |Command-0B| CRC Error Detected |
+ +--------------------------+----------+---------------------------+
+ | SNACK rejected |Aborted | ASC = 0x11 ASCQ = 0x13 |
+ | |Command-0B| Read Error |
+ +--------------------------+----------+---------------------------+
+
+ The target reports the "Incorrect amount of data" condition if during
+ data output the total data length to output is greater than
+ FirstBurstLength and the initiator sent unsolicited non-immediate
+ data but the total amount of unsolicited data is different than
+ FirstBurstLength. The target reports the same error when the amount
+ of data sent as a reply to an R2T does not match the amount
+ requested.
+
+10.4.8. ExpDataSN
+
+ The number of R2T and Data-In (read) PDUs the target has sent for the
+ command.
+
+ This field MUST be 0 if the response code is not Command Completed at
+ Target or the target sent no Data-In PDUs for the command.
+
+10.4.9. StatSN - Status Sequence Number
+
+ StatSN is a Sequence Number that the target iSCSI layer generates per
+ connection and that in turn, enables the initiator to acknowledge
+ status reception. StatSN is incremented by 1 for every
+ response/status sent on a connection except for responses sent as a
+ result of a retry or SNACK. In the case of responses sent due to a
+ retransmission request, the StatSN MUST be the same as the first time
+ the PDU was sent unless the connection has since been restarted.
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 127]
+
+RFC 3720 iSCSI April 2004
+
+
+10.4.10. ExpCmdSN - Next Expected CmdSN from this Initiator
+
+ ExpCmdSN is a Sequence Number that the target iSCSI returns to the
+ initiator to acknowledge command reception. It is used to update a
+ local variable with the same name. An ExpCmdSN equal to MaxCmdSN+1
+ indicates that the target cannot accept new commands.
+
+10.4.11. MaxCmdSN - Maximum CmdSN from this Initiator
+
+ MaxCmdSN is a Sequence Number that the target iSCSI returns to the
+ initiator to indicate the maximum CmdSN the initiator can send. It
+ is used to update a local variable with the same name. If MaxCmdSN
+ is equal to ExpCmdSN-1, this indicates to the initiator that the
+ target cannot receive any additional commands. When MaxCmdSN changes
+ at the target while the target has no pending PDUs to convey this
+ information to the initiator, it MUST generate a NOP-IN to carry the
+ new MaxCmdSN.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 128]
+
+RFC 3720 iSCSI April 2004
+
+
+10.5. Task Management Function Request
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| 0x02 |1| Function | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| Logical Unit Number (LUN) or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Referenced Task Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32| RefCmdSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 36| ExpDataSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+10.5.1. Function
+
+ The Task Management functions provide an initiator with a way to
+ explicitly control the execution of one or more Tasks (SCSI and iSCSI
+ tasks). The Task Management function codes are listed below. For a
+ more detailed description of SCSI task management, see [SAM2].
+
+ 1 - ABORT TASK - aborts the task identified by the Referenced Task
+ Tag field.
+
+ 2 - ABORT TASK SET - aborts all Tasks issued via this session on the
+ logical unit.
+
+ 3 - CLEAR ACA - clears the Auto Contingent Allegiance condition.
+
+
+
+
+
+Satran, et al. Standards Track [Page 129]
+
+RFC 3720 iSCSI April 2004
+
+
+ 4 - CLEAR TASK SET - aborts all Tasks in the appropriate task set as
+ defined by the TST field in the Control mode page (see [SPC3]).
+
+ 5 - LOGICAL UNIT RESET
+
+ 6 - TARGET WARM RESET
+
+ 7 - TARGET COLD RESET
+
+ 8 - TASK REASSIGN - reassigns connection allegiance for the task
+ identified by the Referenced Task Tag field to this connection,
+ thus resuming the iSCSI exchanges for the task.
+
+ For all these functions, the Task Management function response MUST
+ be returned as detailed in Section 10.6 Task Management Function
+ Response. All these functions apply to the referenced tasks
+ regardless of whether they are proper SCSI tasks or tagged iSCSI
+ operations. Task management requests must act on all the commands
+ from the same session having a CmdSN lower than the task management
+ CmdSN. LOGICAL UNIT RESET, TARGET WARM RESET and TARGET COLD RESET
+ may affect commands from other sessions or commands from the same
+ session with CmdSN equal or exceeding CmdSN.
+
+ If the task management request is marked for immediate delivery, it
+ must be considered immediately for execution, but the operations
+ involved (all or part of them) may be postponed to allow the target
+ to receive all relevant tasks. According to [SAM2], for all the
+ tasks covered by the Task Management response (i.e., with CmdSN lower
+ than the task management command CmdSN) but except the Task
+ Management response to a TASK REASSIGN, additional responses MUST NOT
+ be delivered to the SCSI layer after the Task Management response.
+ The iSCSI initiator MAY deliver to the SCSI layer all responses
+ received before the Task Management response (i.e., it is a matter of
+ implementation if the SCSI responses, received before the Task
+ Management response but after the task management request was issued,
+ are delivered to the SCSI layer by the iSCSI layer in the initiator).
+ The iSCSI target MUST ensure that no responses for the tasks covered
+ by a task management function are delivered to the iSCSI initiator
+ after the Task Management response except for a task covered by a
+ TASK REASSIGN.
+
+ For ABORT TASK SET and CLEAR TASK SET, the issuing initiator MUST
+ continue to respond to all valid target transfer tags (received via
+ R2T, Text Response, NOP-In, or SCSI Data-In PDUs) related to the
+ affected task set, even after issuing the task management request.
+ The issuing initiator SHOULD however terminate (i.e., by setting the
+ F-bit to 1) these response sequences as quickly as possible. The
+ target on its part MUST wait for responses on all affected target
+
+
+
+Satran, et al. Standards Track [Page 130]
+
+RFC 3720 iSCSI April 2004
+
+
+ transfer tags before acting on either of these two task management
+ requests. In case all or part of the response sequence is not
+ received (due to digest errors) for a valid TTT, the target MAY treat
+ it as a case of within-command error recovery class (see Section
+ 6.1.4.1 Recovery Within-command) if it is supporting
+ ErrorRecoveryLevel >= 1, or alternatively may drop the connection to
+ complete the requested task set function.
+
+ If an ABORT TASK is issued for a task created by an immediate command
+ then RefCmdSN MUST be that of the Task Management request itself
+ (i.e., CmdSN and RefCmdSN are equal); otherwise RefCmdSN MUST be set
+ to the CmdSN of the task to be aborted (lower than CmdSN).
+
+ If the connection is still active (it is not undergoing an implicit
+ or explicit logout), ABORT TASK MUST be issued on the same connection
+ to which the task to be aborted is allegiant at the time the Task
+ Management Request is issued. If the connection is implicitly or
+ explicitly logged out (i.e., no other request will be issued on the
+ failing connection and no other response will be received on the
+ failing connection), then an ABORT TASK function request may be
+ issued on another connection. This Task Management request will then
+ establish a new allegiance for the command to be aborted as well as
+ abort it (i.e., the task to be aborted will not have to be retried or
+ reassigned, and its status, if issued but not acknowledged, will be
+ reissued followed by the Task Management response).
+
+ At the target an ABORT TASK function MUST NOT be executed on a Task
+ Management request; such a request MUST result in Task Management
+ response of "Function rejected".
+
+ For the LOGICAL UNIT RESET function, the target MUST behave as
+ dictated by the Logical Unit Reset function in [SAM2].
+
+ The implementation of the TARGET WARM RESET function and the TARGET
+ COLD RESET function is OPTIONAL and when implemented, should act as
+ described below. The TARGET WARM RESET is also subject to SCSI
+ access controls on the requesting initiator as defined in [SPC3].
+ When authorization fails at the target, the appropriate response as
+ described in Section 10.6 Task Management Function Response MUST be
+ returned by the target. The TARGET COLD RESET function is not
+ subject to SCSI access controls, but its execution privileges may be
+ managed by iSCSI mechanisms such as login authentication.
+
+ When executing the TARGET WARM RESET and TARGET COLD RESET functions,
+ the target cancels all pending operations on all Logical Units known
+ by the issuing initiator. Both functions are equivalent to the
+ Target Reset function specified by [SAM2]. They can affect many
+ other initiators logged in with the servicing SCSI target port.
+
+
+
+Satran, et al. Standards Track [Page 131]
+
+RFC 3720 iSCSI April 2004
+
+
+ The target MUST treat the TARGET COLD RESET function additionally as
+ a power on event, thus terminating all of its TCP connections to all
+ initiators (all sessions are terminated). For this reason, the
+ Service Response (defined by [SAM2]) for this SCSI task management
+ function may not be reliably delivered to the issuing initiator port.
+
+ For the TASK REASSIGN function, the target should reassign the
+ connection allegiance to this new connection (and thus resume iSCSI
+ exchanges for the task). TASK REASSIGN MUST ONLY be received by the
+ target after the connection on which the command was previously
+ executing has been successfully logged-out. The Task Management
+ response MUST be issued before the reassignment becomes effective.
+ For additional usage semantics see Section 6.2 Retry and Reassign in
+ Recovery.
+
+ At the target a TASK REASSIGN function request MUST NOT be executed
+ to reassign the connection allegiance of a Task Management function
+ request, an active text negotiation task, or a Logout task; such a
+ request MUST result in Task Management response of "Function
+ rejected".
+
+ TASK REASSIGN MUST be issued as an immediate command.
+
+10.5.2. TotalAHSLength and DataSegmentLength
+
+ For this PDU TotalAHSLength and DataSegmentLength MUST be 0.
+
+10.5.3. LUN
+
+ This field is required for functions that address a specific LU
+ (ABORT TASK, CLEAR TASK SET, ABORT TASK SET, CLEAR ACA, LOGICAL UNIT
+ RESET) and is reserved in all others.
+
+10.5.4. Referenced Task Tag
+
+ The Initiator Task Tag of the task to be aborted for the ABORT TASK
+ function or reassigned for the TASK REASSIGN function. For all the
+ other functions this field MUST be set to the reserved value
+ 0xffffffff.
+
+10.5.5. RefCmdSN
+
+ If an ABORT TASK is issued for a task created by an immediate command
+ then RefCmdSN MUST be that of the Task Management request itself
+ (i.e., CmdSN and RefCmdSN are equal).
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 132]
+
+RFC 3720 iSCSI April 2004
+
+
+ For an ABORT TASK of a task created by non-immediate command RefCmdSN
+ MUST be set to the CmdSN of the task identified by the Referenced
+ Task Tag field. Targets must use this field as described in section
+ 10.6.1 when the task identified by the Referenced Task Tag field is
+ not with the target.
+
+ Otherwise, this field is reserved.
+
+10.5.6. ExpDataSN
+
+ For recovery purposes, the iSCSI target and initiator maintain a data
+ acknowledgement reference number - the first input DataSN number
+ unacknowledged by the initiator. When issuing a new command, this
+ number is set to 0. If the function is TASK REASSIGN, which
+ establishes a new connection allegiance for a previously issued Read
+ or Bidirectional command, ExpDataSN will contain an updated data
+ acknowledgement reference number or the value 0; the latter
+ indicating that the data acknowledgement reference number is
+ unchanged. The initiator MUST discard any data PDUs from the
+ previous execution that it did not acknowledge and the target MUST
+ transmit all Data-In PDUs (if any) starting with the data
+ acknowledgement reference number. The number of retransmitted PDUs
+ may or may not be the same as the original transmission depending on
+ if there was a change in MaxRecvDataSegmentLength in the
+ reassignment. The target MAY also send no more Data-In PDUs if all
+ data has been acknowledged.
+
+ The value of ExpDataSN MUST be 0 or higher than the DataSN of the
+ last acknowledged Data-In PDU, but not larger than DataSN+1 of the
+ last Data-In PDU sent by the target. Any other value MUST be ignored
+ by the target.
+
+ For other functions this field is reserved.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 133]
+
+RFC 3720 iSCSI April 2004
+
+
+10.6. Task Management Function Response
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x22 |1| Reserved | Response | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------------------------------------------------------+
+ 8/ Reserved /
+ / /
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ For the functions ABORT TASK, ABORT TASK SET, CLEAR ACA, CLEAR TASK
+ SET, LOGICAL UNIT RESET, TARGET COLD RESET, TARGET WARM RESET and
+ TASK REASSIGN, the target performs the requested Task Management
+ function and sends a Task Management response back to the initiator.
+ For TASK REASSIGN, the new connection allegiance MUST ONLY become
+ effective at the target after the target issues the Task Management
+ Response.
+
+10.6.1. Response
+
+ The target provides a Response, which may take on the following
+ values:
+
+ a) 0 - Function complete.
+ b) 1 - Task does not exist.
+ c) 2 - LUN does not exist.
+ d) 3 - Task still allegiant.
+ e) 4 - Task allegiance reassignment not supported.
+
+
+
+
+Satran, et al. Standards Track [Page 134]
+
+RFC 3720 iSCSI April 2004
+
+
+ f) 5 - Task management function not supported.
+ g) 6 - Function authorization failed.
+ h) 255 - Function rejected.
+
+ All other values are reserved.
+
+ For a discussion on usage of response codes 3 and 4, see Section
+ 6.2.2 Allegiance Reassignment.
+
+ For the TARGET COLD RESET and TARGET WARM RESET functions, the target
+ cancels all pending operations across all Logical Units known to the
+ issuing initiator. For the TARGET COLD RESET function, the target
+ MUST then close all of its TCP connections to all initiators
+ (terminates all sessions).
+
+ The mapping of the response code into a SCSI service response code
+ value, if needed, is outside the scope of this document. However, in
+ symbolic terms Response values 0 and 1 map to the SCSI service
+ response of FUNCTION COMPLETE. All other Response values map to the
+ SCSI service response of FUNCTION REJECTED. If a Task Management
+ function response PDU does not arrive before the session is
+ terminated, the SCSI service response is SERVICE DELIVERY OR TARGET
+ FAILURE.
+
+ The response to ABORT TASK SET and CLEAR TASK SET MUST only be issued
+ by the target after all of the commands affected have been received
+ by the target, the corresponding task management functions have been
+ executed by the SCSI target, and the delivery of all responses
+ delivered until the task management function completion have been
+ confirmed (acknowledged through ExpStatSN) by the initiator on all
+ connections of this session. For the exact timeline of events, refer
+ to Section 10.6.2 Task Management Actions on Task Sets.
+
+ For the ABORT TASK function,
+
+ a) If the Referenced Task Tag identifies a valid task leading to
+ a successful termination, then targets must return the
+ "Function complete" response.
+ b) If the Referenced Task Tag does not identify an existing task,
+ but if the CmdSN indicated by the RefCmdSN field in the Task
+ Management function request is within the valid CmdSN window
+ and less than the CmdSN of the Task Management function
+ request itself, then targets must consider the CmdSN received
+ and return the "Function complete" response.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 135]
+
+RFC 3720 iSCSI April 2004
+
+
+ c) If the Referenced Task Tag does not identify an existing task
+ and if the CmdSN indicated by the RefCmdSN field in the Task
+ Management function request is outside the valid CmdSN window,
+ then targets must return the "Task does not exist" response.
+
+10.6.2. Task Management Actions on Task Sets
+
+ The execution of ABORT TASK SET and CLEAR TASK SET Task Management
+ function requests consists of the following sequence of events in the
+ specified order on each of the entities.
+
+ The initiator:
+
+ a) Issues ABORT TASK SET/CLEAR TASK SET request.
+ b) Continues to respond to each target transfer tag received
+ for the affected task set.
+ c) Receives any responses for the tasks in the affected task
+ set (may process them as usual because they are guaranteed
+ to be valid).
+ d) Receives the task set management response, thus concluding
+ all the tasks in the affected task set.
+
+ The target:
+
+ a) Receives the ABORT TASK SET/CLEAR TASK SET request.
+ b) Waits for all target transfer tags to be responded to and
+ for all affected tasks in the task set to be received.
+ c) Propagates the command to and receives the response from the
+ target SCSI layer.
+ d) Takes note of last-sent StatSN on each of the connections in
+ the iSCSI sessions (one or more) sharing the affected task
+ set, and waits for acknowledgement of each StatSN (may
+ solicit for acknowledgement by way of a NOP-In). If some
+ tasks originate from non-iSCSI I_T_L nexi then the means by
+ which the target insures that all affected tasks have
+ returned their status to the initiator are defined by the
+ specific protocol.
+
+ e) Sends the task set management response to the issuing
+ initiator.
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 136]
+
+RFC 3720 iSCSI April 2004
+
+
+10.6.3. TotalAHSLength and DataSegmentLength
+
+ For this PDU TotalAHSLength and DataSegmentLength MUST be 0.
+
+10.7. SCSI Data-Out & SCSI Data-In
+
+ The SCSI Data-Out PDU for WRITE operations has the following format:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x05 |F| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 36| DataSN |
+ +---------------+---------------+---------------+---------------+
+ 40| Buffer Offset |
+ +---------------+---------------+---------------+---------------+
+ 44| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 137]
+
+RFC 3720 iSCSI April 2004
+
+
+ The SCSI Data-In PDU for READ operations has the following format:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x25 |F|A|0 0 0|O|U|S| Reserved |Status or Rsvd |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| DataSN |
+ +---------------+---------------+---------------+---------------+
+ 40| Buffer Offset |
+ +---------------+---------------+---------------+---------------+
+ 44| Residual Count |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ Status can accompany the last Data-In PDU if the command did not end
+ with an exception (i.e., the status is "good status" - GOOD,
+ CONDITION MET or INTERMEDIATE CONDITION MET). The presence of status
+ (and of a residual count) is signaled though the S flag bit.
+ Although targets MAY choose to send even non-exception status in
+ separate responses, initiators MUST support non-exception status in
+ Data-In PDUs.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 138]
+
+RFC 3720 iSCSI April 2004
+
+
+10.7.1. F (Final) Bit
+
+ For outgoing data, this bit is 1 for the last PDU of unsolicited data
+ or the last PDU of a sequence that answers an R2T.
+
+ For incoming data, this bit is 1 for the last input (read) data PDU
+ of a sequence. Input can be split into several sequences, each
+ having its own F bit. Splitting the data stream into sequences does
+ not affect DataSN counting on Data-In PDUs. It MAY be used as a
+ "change direction" indication for Bidirectional operations that need
+ such a change.
+
+ DataSegmentLength MUST not exceed MaxRecvDataSegmentLength for the
+ direction it is sent and the total of all the DataSegmentLength of
+ all PDUs in a sequence MUST not exceed MaxBurstLength (or
+ FirstBurstLength for unsolicited data). However the number of
+ individual PDUs in a sequence (or in total) may be higher than the
+ MaxBurstLength (or FirstBurstLength) to MaxRecvDataSegmentLength
+ ratio (as PDUs may be limited in length by the sender capabilities).
+ Using DataSegmentLength of 0 may increase beyond what is reasonable
+ for the number of PDUs and should therefore be avoided.
+
+ For Bidirectional operations, the F bit is 1 for both the end of the
+ input sequences and the end of the output sequences.
+
+10.7.2. A (Acknowledge) Bit
+
+ For sessions with ErrorRecoveryLevel 1 or higher, the target sets
+ this bit to 1 to indicate that it requests a positive acknowledgement
+ from the initiator for the data received. The target should use the
+ A bit moderately; it MAY only set the A bit to 1 once every
+ MaxBurstLength bytes, or on the last Data-In PDU that concludes the
+ entire requested read data transfer for the task from the target's
+ perspective, and it MUST NOT do so more frequently. The target MUST
+ NOT set to 1 the A bit for sessions with ErrorRecoveryLevel=0. The
+ initiator MUST ignore the A bit set to 1 for sessions with
+ ErrorRecoveryLevel=0.
+
+ On receiving a Data-In PDU with the A bit set to 1 on a session with
+ ErrorRecoveryLevel greater than 0, if there are no holes in the read
+ data until that Data-In PDU, the initiator MUST issue a SNACK of type
+ DataACK except when it is able to acknowledge the status for the task
+ immediately via ExpStatSN on other outbound PDUs if the status for
+ the task is also received. In the latter case (acknowledgement
+ through ExpStatSN), sending a SNACK of type DataACK in response to
+ the A bit is OPTIONAL, but if it is done, it must not be sent after
+ the status acknowledgement through ExpStatSN. If the initiator has
+ detected holes in the read data prior to that Data-In PDU, it MUST
+
+
+
+Satran, et al. Standards Track [Page 139]
+
+RFC 3720 iSCSI April 2004
+
+
+ postpone issuing the SNACK of type DataACK until the holes are
+ filled. An initiator also MUST NOT acknowledge the status for the
+ task before those holes are filled. A status acknowledgement for a
+ task that generated the Data-In PDUs is considered by the target as
+ an implicit acknowledgement of the Data-In PDUs if such an
+ acknowledgement was requested by the target.
+
+10.7.3. Flags (byte 1)
+
+ The last SCSI Data packet sent from a target to an initiator for a
+ SCSI command that completed successfully (with a status of GOOD,
+ CONDITION MET, INTERMEDIATE or INTERMEDIATE CONDITION MET) may also
+ optionally contain the Status for the data transfer. As Sense Data
+ cannot be sent together with the Command Status, if the command is
+ completed with an error, then the response and sense data MUST be
+ sent in a SCSI Response PDU (i.e., MUST NOT be sent in a SCSI Data
+ packet). If Status is sent with the data, then a SCSI Response PDU
+ MUST NOT be sent as this would violate SCSI rules (a single status).
+ For Bidirectional commands, the status MUST be sent in a SCSI
+ Response PDU.
+
+ bit 2-4 - Reserved.
+
+ bit 5-6 - used the same as in a SCSI Response. These bits are
+ only valid when S is set to 1. For details see Section
+ 10.4.1 Flags (byte 1).
+
+ bit 7 S (status)- set to indicate that the Command Status field
+ contains status. If this bit is set to 1, the F bit
+ MUST also be set to 1.
+
+ The fields StatSN, Status, and Residual Count only have meaningful
+ content if the S bit is set to 1 and their values are defined in
+ Section 10.4 SCSI Response.
+
+10.7.4. Target Transfer Tag and LUN
+
+ On outgoing data, the Target Transfer Tag is provided to the target
+ if the transfer is honoring an R2T. In this case, the Target
+ Transfer Tag field is a replica of the Target Transfer Tag provided
+ with the R2T.
+
+ On incoming data, the Target Transfer Tag and LUN MUST be provided by
+ the target if the A bit is set to 1; otherwise they are reserved.
+ The Target Transfer Tag and LUN are copied by the initiator into the
+ SNACK of type DataACK that it issues as a result of receiving a SCSI
+ Data-In PDU with the A bit set to 1.
+
+
+
+
+Satran, et al. Standards Track [Page 140]
+
+RFC 3720 iSCSI April 2004
+
+
+ The Target Transfer Tag values are not specified by this protocol
+ except that the value 0xffffffff is reserved and means that the
+ Target Transfer Tag is not supplied. If the Target Transfer Tag is
+ provided, then the LUN field MUST hold a valid value and be
+ consistent with whatever was specified with the command; otherwise,
+ the LUN field is reserved.
+
+10.7.5. DataSN
+
+ For input (read) or bidirectional Data-In PDUs, the DataSN is the
+ input PDU number within the data transfer for the command identified
+ by the Initiator Task Tag.
+
+ R2T and Data-In PDUs, in the context of bidirectional commands, share
+ the numbering sequence (see Section 3.2.2.3 Data Sequencing).
+
+ For output (write) data PDUs, the DataSN is the Data-Out PDU number
+ within the current output sequence. The current output sequence is
+ either identified by the Initiator Task Tag (for unsolicited data) or
+ is a data sequence generated for one R2T (for data solicited through
+ R2T).
+
+10.7.6. Buffer Offset
+
+ The Buffer Offset field contains the offset of this PDU payload data
+ within the complete data transfer. The sum of the buffer offset and
+ length should not exceed the expected transfer length for the
+ command.
+
+ The order of data PDUs within a sequence is determined by
+ DataPDUInOrder. When set to Yes, it means that PDUs have to be in
+ increasing Buffer Offset order and overlays are forbidden.
+
+ The ordering between sequences is determined by DataSequenceInOrder.
+ When set to Yes, it means that sequences have to be in increasing
+ Buffer Offset order and overlays are forbidden.
+
+10.7.7. DataSegmentLength
+
+ This is the data payload length of a SCSI Data-In or SCSI Data-Out
+ PDU. The sending of 0 length data segments should be avoided, but
+ initiators and targets MUST be able to properly receive 0 length data
+ segments.
+
+ The Data Segments of Data-In and Data-Out PDUs SHOULD be filled to
+ the integer number of 4 byte words (real payload) unless the F bit is
+ set to 1.
+
+
+
+
+Satran, et al. Standards Track [Page 141]
+
+RFC 3720 iSCSI April 2004
+
+
+10.8. Ready To Transfer (R2T)
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x31 |1| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| R2TSN |
+ +---------------+---------------+---------------+---------------+
+ 40| Buffer Offset |
+ +---------------+---------------+---------------+---------------+
+ 44| Desired Data Transfer Length |
+ +---------------------------------------------------------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ When an initiator has submitted a SCSI Command with data that passes
+ from the initiator to the target (WRITE), the target may specify
+ which blocks of data it is ready to receive. The target may request
+ that the data blocks be delivered in whichever order is convenient
+ for the target at that particular instant. This information is
+ passed from the target to the initiator in the Ready To Transfer
+ (R2T) PDU.
+
+ In order to allow write operations without an explicit initial R2T,
+ the initiator and target MUST have negotiated the key InitialR2T to
+ No during Login.
+
+ An R2T MAY be answered with one or more SCSI Data-Out PDUs with a
+ matching Target Transfer Tag. If an R2T is answered with a single
+ Data-Out PDU, the Buffer Offset in the Data PDU MUST be the same as
+
+
+
+Satran, et al. Standards Track [Page 142]
+
+RFC 3720 iSCSI April 2004
+
+
+ the one specified by the R2T, and the data length of the Data PDU
+ MUST be the same as the Desired Data Transfer Length specified in the
+ R2T. If the R2T is answered with a sequence of Data PDUs, the Buffer
+ Offset and Length MUST be within the range of those specified by R2T,
+ and the last PDU MUST have the F bit set to 1. If the last PDU
+ (marked with the F bit) is received before the Desired Data Transfer
+ Length is transferred, a target MAY choose to Reject that
+
+ PDU with "Protocol error" reason code. DataPDUInOrder governs the
+ Data-Out PDU ordering. If DataPDUInOrder is set to Yes, the Buffer
+ Offsets and Lengths for consecutive PDUs MUST form a continuous
+ non-overlapping range and the PDUs MUST be sent in increasing offset
+ order.
+
+ The target may send several R2T PDUs. It, therefore, can have a
+ number of pending data transfers. The number of outstanding R2T PDUs
+ are limited by the value of the negotiated key MaxOutstandingR2T.
+ Within a connection, outstanding R2Ts MUST be fulfilled by the
+ initiator in the order in which they were received.
+
+ R2T PDUs MAY also be used to recover Data Out PDUs. Such an R2T
+ (Recovery-R2T) is generated by a target upon detecting the loss of
+ one or more Data-Out PDUs due to:
+
+ - Digest error
+ - Sequence error
+ - Sequence reception timeout
+
+ A Recovery-R2T carries the next unused R2TSN, but requests part of or
+ the entire data burst that an earlier R2T (with a lower R2TSN) had
+ already requested.
+
+ DataSequenceInOrder governs the buffer offset ordering in consecutive
+ R2Ts. If DataSequenceInOrder is Yes, then consecutive R2Ts MUST
+ refer to continuous non-overlapping ranges except for Recovery-R2Ts.
+
+10.8.1. TotalAHSLength and DataSegmentLength
+
+ For this PDU TotalAHSLength and DataSegmentLength MUST be 0.
+
+10.8.2. R2TSN
+
+ R2TSN is the R2T PDU input PDU number within the command identified
+ by the Initiator Task Tag.
+
+ For bidirectional commands R2T and Data-In PDUs share the input PDU
+ numbering sequence (see Section 3.2.2.3 Data Sequencing).
+
+
+
+
+Satran, et al. Standards Track [Page 143]
+
+RFC 3720 iSCSI April 2004
+
+
+10.8.3. StatSN
+
+ The StatSN field will contain the next StatSN. The StatSN for this
+ connection is not advanced after this PDU is sent.
+
+10.8.4. Desired Data Transfer Length and Buffer Offset
+
+ The target specifies how many bytes it wants the initiator to send
+ because of this R2T PDU. The target may request the data from the
+ initiator in several chunks, not necessarily in the original order of
+ the data. The target, therefore, also specifies a Buffer Offset that
+ indicates the point at which the data transfer should begin, relative
+ to the beginning of the total data transfer. The Desired Data
+ Transfer Length MUST NOT be 0 and MUST not exceed MaxBurstLength.
+
+10.8.5. Target Transfer Tag
+
+ The target assigns its own tag to each R2T request that it sends to
+ the initiator. This tag can be used by the target to easily identify
+ the data it receives. The Target Transfer Tag and LUN are copied in
+ the outgoing data PDUs and are only used by the target. There is no
+ protocol rule about the Target Transfer Tag except that the value
+ 0xffffffff is reserved and MUST NOT be sent by a target in an R2T.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 144]
+
+RFC 3720 iSCSI April 2004
+
+
+10.9. Asynchronous Message
+
+ An Asynchronous Message may be sent from the target to the initiator
+ without correspondence to a particular command. The target specifies
+ the reason for the event and sense data.
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x32 |1| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 20| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| AsyncEvent | AsyncVCode | Parameter1 or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40| Parameter2 or Reserved | Parameter3 or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 44| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment - Sense Data and iSCSI Event Data /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ Some Asynchronous Messages are strictly related to iSCSI while others
+ are related to SCSI [SAM2].
+
+ StatSN counts this PDU as an acknowledgeable event (StatSN is
+ advanced), which allows for initiator and target state
+ synchronization.
+
+
+
+Satran, et al. Standards Track [Page 145]
+
+RFC 3720 iSCSI April 2004
+
+
+10.9.1. AsyncEvent
+
+ The codes used for iSCSI Asynchronous Messages (events) are:
+
+ 0 - a SCSI Asynchronous Event is reported in the sense data.
+ Sense Data that accompanies the report, in the data segment,
+ identifies the condition. The sending of a SCSI Event
+ (Asynchronous Event Reporting in SCSI terminology) is
+ dependent on the target support for SCSI asynchronous event
+ reporting (see [SAM2]) as indicated in the standard INQUIRY
+ data (see [SPC3]). Its use may be enabled by parameters in
+ the SCSI Control mode page (see [SPC3]).
+
+ 1 - target requests Logout. This Async Message MUST be sent on
+ the same connection as the one requesting to be logged out.
+ The initiator MUST honor this request by issuing a Logout as
+ early as possible, but no later than Parameter3 seconds.
+ Initiator MUST send a Logout with a reason code of "Close the
+ connection" OR "Close the session" to close all the
+ connections. Once this message is received, the initiator
+ SHOULD NOT issue new iSCSI commands on the connection to be
+ logged out. The target MAY reject any new I/O requests that
+ it receives after this Message with the reason code "Waiting
+ for Logout". If the initiator does not Logout in Parameter3
+ seconds, the target should send an Async PDU with iSCSI event
+ code "Dropped the connection" if possible, or simply terminate
+ the transport connection. Parameter1 and Parameter2 are
+ reserved.
+
+ 2 - target indicates it will drop the connection. The Parameter1
+ field indicates the CID of the connection that is going to be
+ dropped.
+
+ The Parameter2 field (Time2Wait) indicates, in seconds, the
+ minimum time to wait before attempting to reconnect or
+ reassign.
+
+ The Parameter3 field (Time2Retain) indicates the maximum time
+ allowed to reassign commands after the initial wait (in
+ Parameter2).
+
+ If the initiator does not attempt to reconnect and/or reassign
+ the outstanding commands within the time specified by
+ Parameter3, or if Parameter3 is 0, the target will terminate
+ all outstanding commands on this connection. In this case, no
+ other responses should be expected from the target for the
+ outstanding commands on this connection.
+
+
+
+
+Satran, et al. Standards Track [Page 146]
+
+RFC 3720 iSCSI April 2004
+
+
+ A value of 0 for Parameter2 indicates that reconnect can be
+ attempted immediately.
+
+ 3 - target indicates it will drop all the connections of this
+ session.
+
+ Parameter1 field is reserved.
+
+ The Parameter2 field (Time2Wait) indicates, in seconds, the
+ minimum time to wait before attempting to reconnect. The
+ Parameter3 field (Time2Retain) indicates the maximum time
+ allowed to reassign commands after the initial wait (in
+ Parameter2).
+
+ If the initiator does not attempt to reconnect and/or reassign
+ the outstanding commands within the time specified by
+ Parameter3, or if Parameter3 is 0, the session is terminated.
+
+ In this case, the target will terminate all outstanding
+ commands in this session; no other responses should be
+ expected from the target for the outstanding commands in this
+ session. A value of 0 for Parameter2 indicates that reconnect
+ can be attempted immediately.
+
+ 4 - target requests parameter negotiation on this connection. The
+ initiator MUST honor this request by issuing a Text Request
+ (that can be empty) on the same connection as early as
+ possible, but no later than Parameter3 seconds, unless a Text
+ Request is already pending on the connection, or by issuing a
+ Logout Request. If the initiator does not issue a Text
+ Request the target may reissue the Asynchronous Message
+ requesting parameter negotiation.
+
+ 255 - vendor specific iSCSI Event. The AsyncVCode details the
+ vendor code, and data MAY accompany the report.
+
+ All other event codes are reserved.
+
+10.9.2. AsyncVCode
+
+ AsyncVCode is a vendor specific detail code that is only valid if the
+ AsyncEvent field indicates a vendor specific event. Otherwise, it is
+ reserved.
+
+10.9.3. LUN
+
+ The LUN field MUST be valid if AsyncEvent is 0. Otherwise, this
+ field is reserved.
+
+
+
+Satran, et al. Standards Track [Page 147]
+
+RFC 3720 iSCSI April 2004
+
+
+10.9.4. Sense Data and iSCSI Event Data
+
+ For a SCSI event, this data accompanies the report in the data
+ segment and identifies the condition.
+
+ For an iSCSI event, additional vendor-unique data MAY accompany the
+ Async event. Initiators MAY ignore the data when not understood
+ while processing the rest of the PDU.
+
+ If the DataSegmentLength is not 0, the format of the DataSegment is
+ as follows:
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|SenseLength | Sense Data |
+ +---------------+---------------+---------------+---------------+
+ x/ Sense Data /
+ +---------------+---------------+---------------+---------------+
+ y/ iSCSI Event Data /
+ / /
+ +---------------+---------------+---------------+---------------+
+ z|
+
+10.9.4.1. SenseLength
+
+ This is the length of Sense Data. When the Sense Data field is empty
+ (e.g., the event is not a SCSI event) SenseLength is 0.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 148]
+
+RFC 3720 iSCSI April 2004
+
+
+10.10. Text Request
+
+ The Text Request is provided to allow for the exchange of information
+ and for future extensions. It permits the initiator to inform a
+ target of its capabilities or to request some special operations.
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| 0x04 |F|C| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment (Text) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ An initiator MUST have at most one outstanding Text Request on a
+ connection at any given time.
+
+ On a connection failure, an initiator must either explicitly abort
+ any active allegiant text negotiation task or must cause such a task
+ to be implicitly terminated by the target.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 149]
+
+RFC 3720 iSCSI April 2004
+
+
+10.10.1. F (Final) Bit
+
+ When set to 1, indicates that this is the last or only text request
+ in a sequence of Text Requests; otherwise, it indicates that more
+ Text Requests will follow.
+
+10.10.2. C (Continue) Bit
+
+ When set to 1, indicates that the text (set of key=value pairs) in
+ this Text Request is not complete (it will be continued on subsequent
+ Text Requests); otherwise, it indicates that this Text Request ends a
+ set of key=value pairs. A Text Request with the C bit set to 1 MUST
+ have the F bit set to 0.
+
+10.10.3. Initiator Task Tag
+
+ The initiator assigned identifier for this Text Request. If the
+ command is sent as part of a sequence of text requests and responses,
+ the Initiator Task Tag MUST be the same for all the requests within
+ the sequence (similar to linked SCSI commands). The I bit for all
+ requests in a sequence also MUST be the same.
+
+10.10.4. Target Transfer Tag
+
+ When the Target Transfer Tag is set to the reserved value 0xffffffff,
+ it tells the target that this is a new request and the target resets
+ any internal state associated with the Initiator Task Tag (resets the
+ current negotiation state).
+
+ The target sets the Target Transfer Tag in a text response to a value
+ other than the reserved value 0xffffffff whenever it indicates that
+ it has more data to send or more operations to perform that are
+ associated with the specified Initiator Task Tag. It MUST do so
+ whenever it sets the F bit to 0 in the response. By copying the
+ Target Transfer Tag from the response to the next Text Request, the
+ initiator tells the target to continue the operation for the specific
+ Initiator Task Tag. The initiator MUST ignore the Target Transfer
+ Tag in the Text Response when the F bit is set to 1.
+
+ This mechanism allows the initiator and target to transfer a large
+ amount of textual data over a sequence of text-command/text-response
+ exchanges, or to perform extended negotiation sequences.
+
+ If the Target Transfer Tag is not 0xffffffff, the LUN field MUST be
+ sent by the target in the Text Response.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 150]
+
+RFC 3720 iSCSI April 2004
+
+
+ A target MAY reset its internal negotiation state if an exchange is
+ stalled by the initiator for a long time or if it is running out of
+ resources.
+
+ Long text responses are handled as in the following example:
+
+ I->T Text SendTargets=All (F=1,TTT=0xffffffff)
+ T->I Text <part 1> (F=0,TTT=0x12345678)
+ I->T Text <empty> (F=1, TTT=0x12345678)
+ T->I Text <part 2> (F=0, TTT=0x12345678)
+ I->T Text <empty> (F=1, TTT=0x12345678)
+ ...
+ T->I Text <part n> (F=1, TTT=0xffffffff)
+
+10.10.5. Text
+
+ The data lengths of a text request MUST NOT exceed the iSCSI target
+ MaxRecvDataSegmentLength (a per connection and per direction
+ negotiated parameter). The text format is specified in Section 5.2
+ Text Mode Negotiation.
+
+ Chapter 11 and Chapter 12 list some basic Text key=value pairs, some
+ of which can be used in Login Request/Response and some in Text
+ Request/Response.
+
+ A key=value pair can span Text request or response boundaries. A
+ key=value pair can start in one PDU and continue on the next. In
+ other words the end of a PDU does not necessarily signal the end of a
+ key=value pair.
+
+ The target responds by sending its response back to the initiator.
+ The response text format is similar to the request text format. The
+ text response MAY refer to key=value pairs presented in an earlier
+ text request and the text in the request may refer to earlier
+ responses.
+
+ Chapter 5 details the rules for the Text Requests and Responses.
+
+ Text operations are usually meant for parameter setting/
+ negotiations, but can also be used to perform some long lasting
+ operations.
+
+ Text operations that take a long time should be placed in their own
+ Text request.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 151]
+
+RFC 3720 iSCSI April 2004
+
+
+10.11. Text Response
+
+ The Text Response PDU contains the target's responses to the
+ initiator's Text request. The format of the Text field matches that
+ of the Text request.
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x24 |F|C| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment (Text) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+10.11.1. F (Final) Bit
+
+ When set to 1, in response to a Text Request with the Final bit set
+ to 1, the F bit indicates that the target has finished the whole
+ operation. Otherwise, if set to 0 in response to a Text Request with
+ the Final Bit set to 1, it indicates that the target has more work to
+ do (invites a follow-on text request). A Text Response with the F
+ bit set to 1 in response to a Text Request with the F bit set to 0 is
+ a protocol error.
+
+
+
+Satran, et al. Standards Track [Page 152]
+
+RFC 3720 iSCSI April 2004
+
+
+ A Text Response with the F bit set to 1 MUST NOT contain key=value
+ pairs that may require additional answers from the initiator.
+
+ A Text Response with the F bit set to 1 MUST have a Target Transfer
+ Tag field set to the reserved value of 0xffffffff.
+
+ A Text Response with the F bit set to 0 MUST have a Target Transfer
+ Tag field set to a value other than the reserved 0xffffffff.
+
+10.11.2. C (Continue) Bit
+
+ When set to 1, indicates that the text (set of key=value pairs) in
+ this Text Response is not complete (it will be continued on
+ subsequent Text Responses); otherwise, it indicates that this Text
+ Response ends a set of key=value pairs. A Text Response with the C
+ bit set to 1 MUST have the F bit set to 0.
+
+10.11.3. Initiator Task Tag
+
+ The Initiator Task Tag matches the tag used in the initial Text
+ Request.
+
+10.11.4. Target Transfer Tag
+
+ When a target has more work to do (e.g., cannot transfer all the
+ remaining text data in a single Text Response or has to continue the
+ negotiation) and has enough resources to proceed, it MUST set the
+ Target Transfer Tag to a value other than the reserved value of
+ 0xffffffff. Otherwise, the Target Transfer Tag MUST be set to
+ 0xffffffff.
+
+ When the Target Transfer Tag is not 0xffffffff, the LUN field may be
+ significant.
+
+ The initiator MUST copy the Target Transfer Tag and LUN in its next
+ request to indicate that it wants the rest of the data.
+
+ When the target receives a Text Request with the Target Transfer Tag
+ set to the reserved value of 0xffffffff, it resets its internal
+ information (resets state) associated with the given Initiator Task
+ Tag (restarts the negotiation).
+
+ When a target cannot finish the operation in a single Text Response,
+ and does not have enough resources to continue, it rejects the Text
+ Request with the appropriate Reject code.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 153]
+
+RFC 3720 iSCSI April 2004
+
+
+ A target may reset its internal state associated with an Initiator
+ Task Tag (the current negotiation state), state expressed through the
+ Target Transfer Tag if the initiator fails to continue the exchange
+ for some time. The target may reject subsequent Text Requests with
+ the Target Transfer Tag set to the "stale" value.
+
+10.11.5. StatSN
+
+ The target StatSN variable is advanced by each Text Response sent.
+
+10.11.6. Text Response Data
+
+ The data lengths of a text response MUST NOT exceed the iSCSI
+ initiator MaxRecvDataSegmentLength (a per connection and per
+ direction negotiated parameter).
+
+ The text in the Text Response Data is governed by the same rules as
+ the text in the Text Request Data (see Section 10.10.5 Text).
+
+ Although the initiator is the requesting party and controls the
+ request-response initiation and termination, the target can offer
+ key=value pairs of its own as part of a sequence and not only in
+ response to the initiator.
+
+10.12. Login Request
+
+ After establishing a TCP connection between an initiator and a
+ target, the initiator MUST start a Login Phase to gain further access
+ to the target's resources.
+
+ The Login Phase (see Chapter 5) consists of a sequence of Login
+ Requests and Responses that carry the same Initiator Task Tag.
+
+ Login Requests are always considered as immediate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 154]
+
+RFC 3720 iSCSI April 2004
+
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|1| 0x03 |T|C|.|.|CSG|NSG| Version-max | Version-min |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| ISID |
+ + +---------------+---------------+
+ 12| | TSIH |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| CID | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 32| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 36| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48/ DataSegment - Login Parameters in Text request Format /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+
+10.12.1. T (Transit) Bit
+
+ If set to 1, indicates that the initiator is ready to transit to the
+ next stage.
+
+ If the T bit is set to 1 and NSG is FullFeaturePhase, then this also
+ indicates that the initiator is ready for the Final Login Response
+ (see Chapter 5).
+
+10.12.2. C (Continue) Bit
+
+ When set to 1, indicates that the text (set of key=value pairs) in
+ this Login Request is not complete (it will be continued on
+ subsequent Login Requests); otherwise, it indicates that this Login
+ Request ends a set of key=value pairs. A Login Request with the C
+ bit set to 1 MUST have the T bit set to 0.
+
+
+
+
+Satran, et al. Standards Track [Page 155]
+
+RFC 3720 iSCSI April 2004
+
+
+10.12.3. CSG and NSG
+
+ Through these fields, Current Stage (CSG) and Next Stage (NSG), the
+ Login negotiation requests and responses are associated with a
+ specific stage in the session (SecurityNegotiation,
+ LoginOperationalNegotiation, FullFeaturePhase) and may indicate the
+ next stage to which they want to move (see Chapter 5). The next
+ stage value is only valid when the T bit is 1; otherwise, it is
+ reserved.
+
+ The stage codes are:
+
+ - 0 - SecurityNegotiation
+ - 1 - LoginOperationalNegotiation
+ - 3 - FullFeaturePhase
+
+ All other codes are reserved.
+
+10.12.4. Version
+
+ The version number of the current draft is 0x00. As such, all
+ devices MUST carry version 0x00 for both Version-min and Version-max.
+
+10.12.4.1. Version-max
+
+ Maximum Version number supported.
+
+ All Login Requests within the Login Phase MUST carry the same
+ Version-max.
+
+ The target MUST use the value presented with the first Login Request.
+
+10.12.4.2. Version-min
+
+ All Login Requests within the Login Phase MUST carry the same
+ Version-min. The target MUST use the value presented with the first
+ Login Request.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 156]
+
+RFC 3720 iSCSI April 2004
+
+
+10.12.5. ISID
+
+ This is an initiator-defined component of the session identifier and
+ is structured as follows (see [RFC3721] and Section 9.1.1
+ Conservative Reuse of ISIDs for details):
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 8| T | A | B | C |
+ +---------------+---------------+---------------+---------------+
+ 12| D |
+ +---------------+---------------+
+
+ The T field identifies the format and usage of A, B, C, and D as
+ indicated below:
+
+ T
+
+ 00b OUI-Format
+ A&B are a 22 bit OUI
+ (the I/G & U/L bits are omitted)
+ C&D 24 bit qualifier
+ 01b EN - Format (IANA Enterprise Number)
+ A - Reserved
+ B&C EN (IANA Enterprise Number)
+ D - Qualifier
+ 10b "Random"
+ A - Reserved
+ B&C Random
+ D - Qualifier
+ 11b A,B,C&D Reserved
+
+ For the T field values 00b and 01b, a combination of A and B (for
+ 00b) or B and C (for 01b) identifies the vendor or organization whose
+ component (software or hardware) generates this ISID. A vendor or
+ organization with one or more OUIs, or one or more Enterprise
+ Numbers, MUST use at least one of these numbers and select the
+ appropriate value for the T field when its components generate ISIDs.
+ An OUI or EN MUST be set in the corresponding fields in network byte
+ order (byte big-endian).
+
+ If the T field is 10b, B and C are set to a random 24-bit unsigned
+ integer value in network byte order (byte big-endian). See [RFC3721]
+ for how this affects the principle of "conservative reuse".
+
+
+
+
+
+Satran, et al. Standards Track [Page 157]
+
+RFC 3720 iSCSI April 2004
+
+
+ The Qualifier field is a 16 or 24-bit unsigned integer value that
+ provides a range of possible values for the ISID within the selected
+ namespace. It may be set to any value within the constraints
+ specified in the iSCSI protocol (see Section 3.4.3 Consequences of
+ the Model and Section 9.1.1 Conservative Reuse of ISIDs).
+
+ The T field value of 11b is reserved.
+
+ If the ISID is derived from something assigned to a hardware adapter
+ or interface by a vendor, as a preset default value, it MUST be
+ configurable to a value assigned according to the SCSI port behavior
+ desired by the system in which it is installed (see Section 9.1.1
+ Conservative Reuse of ISIDs and Section 9.1.2 iSCSI Name, ISID, and
+ TPGT Use). The resultant ISID MUST also be persistent over power
+ cycles, reboot, card swap, etc.
+
+10.12.6. TSIH
+
+ TSIH must be set in the first Login Request. The reserved value 0
+ MUST be used on the first connection for a new session. Otherwise,
+ the TSIH sent by the target at the conclusion of the successful login
+ of the first connection for this session MUST be used. The TSIH
+ identifies to the target the associated existing session for this new
+ connection.
+
+ All Login Requests within a Login Phase MUST carry the same TSIH.
+
+ The target MUST check the value presented with the first Login
+ Request and act as specified in Section 5.3.1 Login Phase Start.
+
+10.12.7. Connection ID - CID
+
+ A unique ID for this connection within the session.
+
+ All Login Requests within the Login Phase MUST carry the same CID.
+
+ The target MUST use the value presented with the first Login Request.
+
+ A Login Request with a non-zero TSIH and a CID equal to that of an
+ existing connection implies a logout of the connection followed by a
+ Login (see Section 5.3.4 Connection Reinstatement). For the details
+ of the implicit Logout Request, see Section 10.14 Logout Request.
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 158]
+
+RFC 3720 iSCSI April 2004
+
+
+10.12.8. CmdSN
+
+ CmdSN is either the initial command sequence number of a session (for
+ the first Login Request of a session - the "leading" login), or the
+ command sequence number in the command stream if the login is for a
+ new connection in an existing session.
+
+ Examples:
+
+ - Login on a leading connection - if the leading login carries
+ the CmdSN 123, all other Login Requests in the same Login Phase
+ carry the CmdSN 123 and the first non-immediate command in
+ FullFeaturePhase also carries the CmdSN 123.
+
+ - Login on other than a leading connection - if the current CmdSN
+ at the time the first login on the connection is issued is 500,
+ then that PDU carries CmdSN=500. Subsequent Login Requests
+ that are needed to complete this Login Phase may carry a CmdSN
+ higher than 500 if non-immediate requests that were issued on
+ other connections in the same session advance CmdSN.
+
+ If the Login Request is a leading Login Request, the target MUST use
+ the value presented in CmdSN as the target value for ExpCmdSN.
+
+10.12.9. ExpStatSN
+
+ For the first Login Request on a connection this is ExpStatSN for the
+ old connection and this field is only valid if the Login Request
+ restarts a connection (see Section 5.3.4 Connection Reinstatement).
+
+ For subsequent Login Requests it is used to acknowledge the Login
+ Responses with their increasing StatSN values.
+
+10.12.10. Login Parameters
+
+ The initiator MUST provide some basic parameters in order to enable
+ the target to determine if the initiator may use the target's
+ resources and the initial text parameters for the security exchange.
+
+ All the rules specified in Section 10.10.5 Text for text requests
+ also hold for Login Requests. Keys and their explanations are listed
+ in Chapter 11 (security negotiation keys) and Chapter 12 (operational
+ parameter negotiation keys). All keys in Chapter 12, except for the
+ X extension formats, MUST be supported by iSCSI initiators and
+ targets. Keys in Chapter 11 only need to be supported when the
+ function to which they refer is mandatory to implement.
+
+
+
+
+
+Satran, et al. Standards Track [Page 159]
+
+RFC 3720 iSCSI April 2004
+
+
+10.13. Login Response
+
+ The Login Response indicates the progress and/or end of the Login
+ Phase.
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x23 |T|C|.|.|CSG|NSG| Version-max | Version-active|
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| ISID |
+ + +---------------+---------------+
+ 12| | TSIH |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| Status-Class | Status-Detail | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48/ DataSegment - Login Parameters in Text request Format /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+
+10.13.1. Version-max
+
+ This is the highest version number supported by the target.
+
+ All Login Responses within the Login Phase MUST carry the same
+ Version-max.
+
+ The initiator MUST use the value presented as a response to the first
+ Login Request.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 160]
+
+RFC 3720 iSCSI April 2004
+
+
+10.13.2. Version-active
+
+ Indicates the highest version supported by the target and initiator.
+ If the target does not support a version within the range specified
+ by the initiator, the target rejects the login and this field
+ indicates the lowest version supported by the target.
+
+ All Login Responses within the Login Phase MUST carry the same
+ Version-active.
+
+ The initiator MUST use the value presented as a response to the first
+ Login Request.
+
+10.13.3. TSIH
+
+ The TSIH is the target assigned session identifying handle. Its
+ internal format and content are not defined by this protocol except
+ for the value 0 that is reserved. With the exception of the Login
+ Final-Response in a new session, this field should be set to the TSIH
+ provided by the initiator in the Login Request. For a new session,
+ the target MUST generate a non-zero TSIH and ONLY return it in the
+ Login Final-Response (see Section 5.3 Login Phase).
+
+10.13.4. StatSN
+
+ For the first Login Response (the response to the first Login
+ Request), this is the starting status Sequence Number for the
+ connection. The next response of any kind, including the next Login
+ Response, if any, in the same Login Phase, will carry this number +
+ 1. This field is only valid if the Status-Class is 0.
+
+10.13.5. Status-Class and Status-Detail
+
+ The Status returned in a Login Response indicates the execution
+ status of the Login Phase. The status includes:
+
+ Status-Class
+ Status-Detail
+
+ 0 Status-Class indicates success.
+
+ A non-zero Status-Class indicates an exception. In this case,
+ Status-Class is sufficient for a simple initiator to use when
+ handling exceptions, without having to look at the Status-Detail.
+ The Status-Detail allows finer-grained exception handling for more
+ sophisticated initiators and for better information for logging.
+
+
+
+
+
+Satran, et al. Standards Track [Page 161]
+
+RFC 3720 iSCSI April 2004
+
+
+ The status classes are as follows:
+
+ 0 - Success - indicates that the iSCSI target successfully
+ received, understood, and accepted the request. The numbering
+ fields (StatSN, ExpCmdSN, MaxCmdSN) are only valid if
+ Status-Class is 0.
+
+ 1 - Redirection - indicates that the initiator must take further
+ action to complete the request. This is usually due to the
+ target moving to a different address. All of the redirection
+ status class responses MUST return one or more text key
+ parameters of the type "TargetAddress", which indicates the
+ target's new address. A redirection response MAY be issued by
+ a target prior or after completing a security negotiation if a
+ security negotiation is required. A redirection SHOULD be
+ accepted by an initiator even without having the target
+ complete a security negotiation if any security negotiation is
+ required, and MUST be accepted by the initiator after the
+ completion of the security negotiation if any security
+ negotiation is required.
+
+ 2 - Initiator Error (not a format error) - indicates that the
+ initiator most likely caused the error. This MAY be due to a
+ request for a resource for which the initiator does not have
+ permission. The request should not be tried again.
+
+ 3 - Target Error - indicates that the target sees no errors in the
+ initiator's Login Request, but is currently incapable of
+ fulfilling the request. The initiator may re-try the same
+ Login Request later.
+
+ The table below shows all of the currently allocated status codes.
+ The codes are in hexadecimal; the first byte is the status class and
+ the second byte is the status detail.
+
+ -----------------------------------------------------------------
+ Status | Code | Description
+ |(hex) |
+ -----------------------------------------------------------------
+ Success | 0000 | Login is proceeding OK (*1).
+ -----------------------------------------------------------------
+ Target moved | 0101 | The requested iSCSI Target Name (ITN)
+ temporarily | | has temporarily moved
+ | | to the address provided.
+ -----------------------------------------------------------------
+ Target moved | 0102 | The requested ITN has permanently moved
+ permanently | | to the address provided.
+ -----------------------------------------------------------------
+
+
+
+Satran, et al. Standards Track [Page 162]
+
+RFC 3720 iSCSI April 2004
+
+
+ Initiator | 0200 | Miscellaneous iSCSI initiator
+ error | | errors.
+ ----------------------------------------------------------------
+ Authentication| 0201 | The initiator could not be
+ failure | | successfully authenticated or target
+ | | authentication is not supported.
+ -----------------------------------------------------------------
+ Authorization | 0202 | The initiator is not allowed access
+ failure | | to the given target.
+ -----------------------------------------------------------------
+ Not found | 0203 | The requested ITN does not
+ | | exist at this address.
+ -----------------------------------------------------------------
+ Target removed| 0204 | The requested ITN has been removed and
+ | |no forwarding address is provided.
+ -----------------------------------------------------------------
+ Unsupported | 0205 | The requested iSCSI version range is
+ version | | not supported by the target.
+ -----------------------------------------------------------------
+ Too many | 0206 | Too many connections on this SSID.
+ connections | |
+ -----------------------------------------------------------------
+ Missing | 0207 | Missing parameters (e.g., iSCSI
+ parameter | | Initiator and/or Target Name).
+ -----------------------------------------------------------------
+ Can't include | 0208 | Target does not support session
+ in session | | spanning to this connection (address).
+ -----------------------------------------------------------------
+ Session type | 0209 | Target does not support this type of
+ not supported | | of session or not from this Initiator.
+ -----------------------------------------------------------------
+ Session does | 020a | Attempt to add a connection
+ not exist | | to a non-existent session.
+ -----------------------------------------------------------------
+ Invalid during| 020b | Invalid Request type during Login.
+ login | |
+ -----------------------------------------------------------------
+ Target error | 0300 | Target hardware or software error.
+ -----------------------------------------------------------------
+ Service | 0301 | The iSCSI service or target is not
+ unavailable | | currently operational.
+ -----------------------------------------------------------------
+ Out of | 0302 | The target has insufficient session,
+ resources | | connection, or other resources.
+ -----------------------------------------------------------------
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 163]
+
+RFC 3720 iSCSI April 2004
+
+
+ (*1) If the response T bit is 1 in both the request and the matching
+ response, and the NSG is FullFeaturePhase in both the request and the
+ matching response, the Login Phase is finished and the initiator may
+ proceed to issue SCSI commands.
+
+ If the Status Class is not 0, the initiator and target MUST close the
+ TCP connection.
+
+ If the target wishes to reject the Login Request for more than one
+ reason, it should return the primary reason for the rejection.
+
+10.13.6. T (Transit) bit
+
+ The T bit is set to 1 as an indicator of the end of the stage. If
+ the T bit is set to 1 and NSG is FullFeaturePhase, then this is also
+ the Final Login Response (see Chapter 5). A T bit of 0 indicates a
+ "partial" response, which means "more negotiation needed".
+
+ A Login Response with a T bit set to 1 MUST NOT contain key=value
+ pairs that may require additional answers from the initiator within
+ the same stage.
+
+ If the status class is 0, the T bit MUST NOT be set to 1 if the T bit
+ in the request was set to 0.
+
+10.13.7. C (Continue) Bit
+
+ When set to 1, indicates that the text (set of key=value pairs) in
+ this Login Response is not complete (it will be continued on
+ subsequent Login Responses); otherwise, it indicates that this Login
+ Response ends a set of key=value pairs. A Login Response with the C
+ bit set to 1 MUST have the T bit set to 0.
+
+10.13.8. Login Parameters
+
+ The target MUST provide some basic parameters in order to enable the
+ initiator to determine if it is connected to the correct port and the
+ initial text parameters for the security exchange.
+
+ All the rules specified in Section 10.11.6 Text Response Data for
+ text responses also hold for Login Responses. Keys and their
+ explanations are listed in Chapter 11 (security negotiation keys) and
+ Chapter 12 (operational parameter negotiation keys). All keys in
+ Chapter 12, except for the X extension formats, MUST be supported by
+ iSCSI initiators and targets. Keys in Chapter 11, only need to be
+ supported when the function to which they refer is mandatory to
+ implement.
+
+
+
+
+Satran, et al. Standards Track [Page 164]
+
+RFC 3720 iSCSI April 2004
+
+
+10.14. Logout Request
+
+ The Logout Request is used to perform a controlled closing of a
+ connection.
+
+ An initiator MAY use a Logout Request to remove a connection from a
+ session or to close an entire session.
+
+ After sending the Logout Request PDU, an initiator MUST NOT send any
+ new iSCSI requests on the closing connection. If the Logout Request
+ is intended to close the session, new iSCSI requests MUST NOT be sent
+ on any of the connections participating in the session.
+
+ When receiving a Logout Request with the reason code of "close the
+ connection" or "close the session", the target MUST terminate all
+ pending commands, whether acknowledged via ExpCmdSN or not, on that
+ connection or session respectively.
+
+ When receiving a Logout Request with the reason code "remove
+ connection for recovery", the target MUST discard all requests not
+ yet acknowledged via ExpCmdSN that were issued on the specified
+ connection, and suspend all data/status/R2T transfers on behalf of
+ pending commands on the specified connection.
+
+ The target then issues the Logout Response and half-closes the TCP
+ connection (sends FIN). After receiving the Logout Response and
+ attempting to receive the FIN (if still possible), the initiator MUST
+ completely close the logging-out connection. For the terminated
+ commands, no additional responses should be expected.
+
+ A Logout for a CID may be performed on a different transport
+ connection when the TCP connection for the CID has already been
+ terminated. In such a case, only a logical "closing" of the iSCSI
+ connection for the CID is implied with a Logout.
+
+ All commands that were not terminated or not completed (with status)
+ and acknowledged when the connection is closed completely can be
+ reassigned to a new connection if the target supports connection
+ recovery.
+
+ If an initiator intends to start recovery for a failing connection,
+ it MUST use the Logout Request to "clean-up" the target end of a
+ failing connection and enable recovery to start, or the Login Request
+ with a non-zero TSIH and the same CID on a new connection for the
+ same effect (see Section 10.14.3 CID). In sessions with a single
+ connection, the connection can be closed and then a new connection
+ reopened. A connection reinstatement login can be used for recovery
+ (see Section 5.3.4 Connection Reinstatement).
+
+
+
+Satran, et al. Standards Track [Page 165]
+
+RFC 3720 iSCSI April 2004
+
+
+ A successful completion of a Logout Request with the reason code of
+ "close the connection" or "remove the connection for recovery"
+ results at the target in the discarding of unacknowledged commands
+ received on the connection being logged out. These are commands that
+ have arrived on the connection being logged out, but have not been
+ delivered to SCSI because one or more commands with a smaller CmdSN
+ has not been received by iSCSI. See Section 3.2.2.1 Command
+ Numbering and Acknowledging. The resulting holes the in command
+ sequence numbers will have to be handled by appropriate recovery (see
+ Chapter 6) unless the session is also closed.
+
+ The entire logout discussion in this section is also applicable for
+ an implicit Logout realized via a connection reinstatement or session
+ reinstatement. When a Login Request performs an implicit Logout, the
+ implicit Logout is performed as if having the reason codes specified
+ below:
+
+ Reason code Type of implicit Logout
+ -------------------------------------------
+ 0 session reinstatement
+ 1 connection reinstatement when
+ the operational ErrorRecoveryLevel < 2
+ 2 connection reinstatement when
+ the operational ErrorRecoveryLevel = 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 166]
+
+RFC 3720 iSCSI April 2004
+
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| 0x06 |1| Reason Code | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------------------------------------------------------+
+ 8/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| CID or Reserved | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+10.14.1. Reason Code
+
+ Reason Code indicates the reason for Logout as follows:
+
+ 0 - close the session. All commands associated with the session
+ (if any) are terminated.
+
+ 1 - close the connection. All commands associated with connection
+ (if any) are terminated.
+
+ 2 - remove the connection for recovery. Connection is closed and
+ all commands associated with it, if any, are to be prepared
+ for a new allegiance.
+
+ All other values are reserved.
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 167]
+
+RFC 3720 iSCSI April 2004
+
+
+10.14.2. TotalAHSLength and DataSegmentLength
+
+ For this PDU TotalAHSLength and DataSegmentLength MUST be 0.
+
+10.14.3. CID
+
+ This is the connection ID of the connection to be closed (including
+ closing the TCP stream). This field is only valid if the reason code
+ is not "close the session".
+
+10.14.4. ExpStatSN
+
+ This is the last ExpStatSN value for the connection to be closed.
+
+10.14.5. Implicit termination of tasks
+
+ A target implicitly terminates the active tasks due to the iSCSI
+ protocol in the following cases:
+
+ a) When a connection is implicitly or explicitly logged out with
+ the reason code of "Close the connection" and there are active
+ tasks allegiant to that connection.
+
+ b) When a connection fails and eventually the connection state
+ times out (state transition M1 in Section 7.2.2 State
+ Transition Descriptions for Initiators and Targets) and there
+ are active tasks allegiant to that connection.
+
+ c) When a successful recovery Logout is performed while there are
+ active tasks allegiant to that connection, and those tasks
+ eventually time out after the Time2Wait and Time2Retain
+ periods without allegiance reassignment.
+
+ d) When a connection is implicitly or explicitly logged out with
+ the reason code of "Close the session" and there are active
+ tasks in that session.
+
+ If the tasks terminated in any of the above cases are SCSI tasks,
+ they must be internally terminated as if with CHECK CONDITION status.
+ This status is only meaningful for appropriately handling the
+ internal SCSI state and SCSI side effects with respect to ordering
+ because this status is never communicated back as a terminating
+ status to the initiator. However additional actions may have to be
+ taken at SCSI level depending on the SCSI context as defined by the
+ SCSI standards (e.g., queued commands and ACA, in cases a), b), and
+ c), after the tasks are terminated, the target MUST report a Unit
+ Attention condition on the next command processed on any connection
+ for each affected I_T_L nexus with the status of CHECK CONDITION, and
+
+
+
+Satran, et al. Standards Track [Page 168]
+
+RFC 3720 iSCSI April 2004
+
+
+ the ASC/ASCQ value of 47h/7Fh - "SOME COMMANDS CLEARED BY ISCSI
+ PROTOCOL EVENT" - etc. - see [SAM2] and [SPC3]).
+
+10.15. Logout Response
+
+ The Logout Response is used by the target to indicate if the cleanup
+ operation for the connection(s) has completed.
+
+ After Logout, the TCP connection referred by the CID MUST be closed
+ at both ends (or all connections must be closed if the logout reason
+ was session close).
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x26 |1| Reserved | Response | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------------------------------------------------------+
+ 8/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag |
+ +---------------+---------------+---------------+---------------+
+ 20| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| Reserved |
+ +---------------------------------------------------------------+
+ 40| Time2Wait | Time2Retain |
+ +---------------+---------------+---------------+---------------+
+ 44| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 169]
+
+RFC 3720 iSCSI April 2004
+
+
+10.15.1. Response
+
+ Logout Response:
+
+ 0 - connection or session closed successfully.
+
+ 1 - CID not found.
+
+ 2 - connection recovery is not supported. If Logout reason code
+ was recovery and target does not support it as indicated by the
+ ErrorRecoveryLevel.
+
+ 3 - cleanup failed for various reasons.
+
+10.15.2. TotalAHSLength and DataSegmentLength
+
+ For this PDU TotalAHSLength and DataSegmentLength MUST be 0.
+
+10.15.3. Time2Wait
+
+ If the Logout Response code is 0 and if the operational
+ ErrorRecoveryLevel is 2, this is the minimum amount of time, in
+ seconds, to wait before attempting task reassignment. If the Logout
+ Response code is 0 and if the operational ErrorRecoveryLevel is less
+ than 2, this field is to be ignored.
+
+ This field is invalid if the Logout Response code is 1.
+
+ If the Logout response code is 2 or 3, this field specifies the
+ minimum time to wait before attempting a new implicit or explicit
+ logout.
+
+ If Time2Wait is 0, the reassignment or a new Logout may be attempted
+ immediately.
+
+10.15.4. Time2Retain
+
+ If the Logout response code is 0 and if the operational
+ ErrorRecoveryLevel is 2, this is the maximum amount of time, in
+ seconds, after the initial wait (Time2Wait), the target waits for the
+ allegiance reassignment for any active task after which the task
+ state is discarded. If the Logout response code is 0 and if the
+ operational ErrorRecoveryLevel is less than 2, this field is to be
+ ignored.
+
+ This field is invalid if the Logout response code is 1.
+
+
+
+
+
+Satran, et al. Standards Track [Page 170]
+
+RFC 3720 iSCSI April 2004
+
+
+ If the Logout response code is 2 or 3, this field specifies the
+ maximum amount of time, in seconds, after the initial wait
+ (Time2Wait), the target waits for a new implicit or explicit logout.
+
+ If it is the last connection of a session, the whole session state is
+ discarded after Time2Retain.
+
+ If Time2Retain is 0, the target has already discarded the connection
+ (and possibly the session) state along with the task states. No
+ reassignment or Logout is required in this case.
+
+10.16. SNACK Request
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x10 |1|.|.|.| Type | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or SNACK Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 40| BegRun |
+ +---------------------------------------------------------------+
+ 44| RunLength |
+ +---------------------------------------------------------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ If the implementation supports ErrorRecoveryLevel greater than zero,
+ it MUST support all SNACK types.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 171]
+
+RFC 3720 iSCSI April 2004
+
+
+ The SNACK is used by the initiator to request the retransmission of
+ numbered-responses, data, or R2T PDUs from the target. The SNACK
+ request indicates the numbered-responses or data "runs" whose
+ retransmission is requested by the target, where the run starts with
+ the first StatSN, DataSN, or R2TSN whose retransmission is requested
+ and indicates the number of Status, Data, or R2T PDUs requested
+ including the first. 0 has special meaning when used as a starting
+ number and length:
+
+ - When used in RunLength, it means all PDUs starting with the
+ initial.
+ - When used in both BegRun and RunLength, it means all
+ unacknowledged PDUs.
+
+ The numbered-response(s) or R2T(s), requested by a SNACK, MUST be
+ delivered as exact replicas of the ones that the target transmitted
+ originally except for the fields ExpCmdSN, MaxCmdSN, and ExpDataSN,
+ which MUST carry the current values. R2T(s)requested by SNACK MUST
+ also carry the current value of StatSN.
+
+ The numbered Data-In PDUs, requested by a Data SNACK MUST be
+ delivered as exact replicas of the ones that the target transmitted
+ originally except for the fields ExpCmdSN and MaxCmdSN, which MUST
+ carry the current values and except for resegmentation (see Section
+ 10.16.3 Resegmentation).
+
+ Any SNACK that requests a numbered-response, Data, or R2T that was
+ not sent by the target or was already acknowledged by the initiator,
+ MUST be rejected with a reason code of "Protocol error".
+
+10.16.1. Type
+
+ This field encodes the SNACK function as follows:
+
+ 0-Data/R2T SNACK - requesting retransmission of one or more Data-
+ In or R2T PDUs.
+
+ 1-Status SNACK - requesting retransmission of one or more numbered
+ responses.
+
+ 2-DataACK - positively acknowledges Data-In PDUs.
+
+ 3-R-Data SNACK - requesting retransmission of Data-In PDUs with
+ possible resegmentation and status tagging.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 172]
+
+RFC 3720 iSCSI April 2004
+
+
+ All other values are reserved.
+
+ Data/R2T SNACK, Status SNACK, or R-Data SNACK for a command MUST
+ precede status acknowledgement for the given command.
+
+10.16.2. Data Acknowledgement
+
+ If an initiator operates at ErrorRecoveryLevel 1 or higher, it MUST
+ issue a SNACK of type DataACK after receiving a Data-In PDU with the
+ A bit set to 1. However, if the initiator has detected holes in the
+ input sequence, it MUST postpone issuing the SNACK of type DataACK
+ until the holes are filled. An initiator MAY ignore the A bit if it
+ deems that the bit is being set aggressively by the target (i.e.,
+ before the MaxBurstLength limit is reached).
+
+ The DataACK is used to free resources at the target and not to
+ request or imply data retransmission.
+
+ An initiator MUST NOT request retransmission for any data it had
+ already acknowledged.
+
+10.16.3. Resegmentation
+
+ If the initiator MaxRecvDataSegmentLength changed between the
+ original transmission and the time the initiator requests
+ retransmission, the initiator MUST issue a R-Data SNACK (see Section
+ 10.16.1 Type). With R-Data SNACK, the initiator indicates that it
+ discards all the unacknowledged data and expects the target to resend
+ it. It also expects resegmentation. In this case, the retransmitted
+ Data-In PDUs MAY be different from the ones originally sent in order
+ to reflect changes in MaxRecvDataSegmentLength. Their DataSN starts
+ with the BegRun of the last DataACK received by the target if any was
+ received; otherwise it starts with 0 and is increased by 1 for each
+ resent Data-In PDU.
+
+ A target that has received a R-Data SNACK MUST return a SCSI Response
+ that contains a copy of the SNACK Tag field from the R-Data SNACK in
+ the SCSI Response SNACK Tag field as its last or only Response. For
+ example, if it has already sent a response containing another value
+ in the SNACK Tag field or had the status included in the last Data-In
+ PDU, it must send a new SCSI Response PDU. If a target sends more
+ than one SCSI Response PDU due to this rule, all SCSI responses must
+ carry the same StatSN (see Section 10.4.4 SNACK Tag). If an
+ initiator attempts to recover a lost SCSI Response (with a
+ Status SNACK, see Section 10.16.1 Type) when more than one response
+ has been sent, the target will send the SCSI Response with the latest
+ content known to the target, including the last SNACK Tag for the
+ command.
+
+
+
+Satran, et al. Standards Track [Page 173]
+
+RFC 3720 iSCSI April 2004
+
+
+ For considerations in allegiance reassignment of a task to a
+ connection with a different MaxRecvDataSegmentLength, refer to
+ Section 6.2.2 Allegiance Reassignment.
+
+10.16.4. Initiator Task Tag
+
+ For Status SNACK and DataACK, the Initiator Task Tag MUST be set to
+ the reserved value 0xffffffff. In all other cases, the Initiator
+ Task Tag field MUST be set to the Initiator Task Tag of the
+ referenced command.
+
+10.16.5. Target Transfer Tag or SNACK Tag
+
+ For an R-Data SNACK, this field MUST contain a value that is
+ different from 0 or 0xffffffff and is unique for the task (identified
+ by the Initiator Task Tag). This value MUST be copied by the iSCSI
+ target in the last or only SCSI Response PDU it issues for the
+ command.
+
+ For DataACK, the Target Transfer Tag MUST contain a copy of the
+ Target Transfer Tag and LUN provided with the SCSI Data-In PDU with
+ the A bit set to 1.
+
+ In all other cases, the Target Transfer Tag field MUST be set to the
+ reserved value of 0xffffffff.
+
+10.16.6. BegRun
+
+ The DataSN, R2TSN, or StatSN of the first PDU whose retransmission is
+ requested (Data/R2T and Status SNACK), or the next expected DataSN
+ (DataACK SNACK).
+
+ BegRun 0 when used in conjunction with RunLength 0 means resend all
+ unacknowledged Data-In, R2T or Response PDUs.
+
+ BegRun MUST be 0 for a R-Data SNACK.
+
+10.16.7. RunLength
+
+ The number of PDUs whose retransmission is requested.
+
+ RunLength 0 signals that all Data-In, R2T, or Response PDUs carrying
+ the numbers equal to or greater than BegRun have to be resent.
+
+ The RunLength MUST also be 0 for a DataACK SNACK in addition to
+ R-Data SNACK.
+
+
+
+
+
+Satran, et al. Standards Track [Page 174]
+
+RFC 3720 iSCSI April 2004
+
+
+10.17. Reject
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x3f |1| Reserved | Reason | Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 16| 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 20| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36| DataSN/R2TSN or Reserved |
+ +---------------+---------------+---------------+---------------+
+ 40| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 44| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ xx/ Complete Header of Bad PDU /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ yy/Vendor specific data (if any) /
+ / /
+ +---------------+---------------+---------------+---------------+
+ zz| Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ Reject is used to indicate an iSCSI error condition (protocol,
+ unsupported option, etc.).
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 175]
+
+RFC 3720 iSCSI April 2004
+
+
+10.17.1. Reason
+
+ The reject Reason is coded as follows:
+
+ +------+----------------------------------------+------------------+
+ | Code | Explanation | Can the original |
+ | (hex)| | PDU be re-sent? |
+ +------+----------------------------------------+------------------+
+ | 0x01 | Reserved | no |
+ | | | |
+ | 0x02 | Data (payload) Digest Error | yes (Note 1) |
+ | | | |
+ | 0x03 | SNACK Reject | yes |
+ | | | |
+ | 0x04 | Protocol Error (e.g., SNACK request for| no |
+ | | a status that was already acknowledged)| |
+ | | | |
+ | 0x05 | Command not supported | no |
+ | | | |
+ | 0x06 | Immediate Command Reject - too many | yes |
+ | | immediate commands | |
+ | | | |
+ | 0x07 | Task in progress | no |
+ | | | |
+ | 0x08 | Invalid Data ACK | no |
+ | | | |
+ | 0x09 | Invalid PDU field | no (Note 2) |
+ | | | |
+ | 0x0a | Long Operation Reject - Can't generate | yes |
+ | | Target Transfer Tag - out of resources | |
+ | | | |
+ | 0x0b | Negotiation Reset | no |
+ | | | |
+ | 0x0c | Waiting for Logout | no |
+ +------+----------------------------------------+------------------+
+
+ Note 1: For iSCSI, Data-Out PDU retransmission is only done if the
+ target requests retransmission with a recovery R2T. However, if this
+ is the data digest error on immediate data, the initiator may choose
+ to retransmit the whole PDU including the immediate data.
+
+ Note 2: A target should use this reason code for all invalid values
+ of PDU fields that are meant to describe a task, a response, or a
+ data transfer. Some examples are invalid TTT/ITT, buffer offset, LUN
+ qualifying a TTT, and an invalid sequence number in a SNACK.
+
+ All other values for Reason are reserved.
+
+
+
+
+Satran, et al. Standards Track [Page 176]
+
+RFC 3720 iSCSI April 2004
+
+
+ In all the cases in which a pre-instantiated SCSI task is terminated
+ because of the reject, the target MUST issue a proper SCSI command
+ response with CHECK CONDITION as described in Section 10.4.3
+ Response. In these cases in which a status for the SCSI task was
+ already sent before the reject, no additional status is required. If
+ the error is detected while data from the initiator is still expected
+ (i.e., the command PDU did not contain all the data and the target
+ has not received a Data-Out PDU with the Final bit set to 1 for the
+ unsolicited data, if any, and all outstanding R2Ts, if any), the
+ target MUST wait until it receives the last expected Data-Out PDUs
+ with the F bit set to 1 before sending the Response PDU.
+
+ For additional usage semantics of Reject PDU, see Section 6.3 Usage
+ Of Reject PDU in Recovery.
+
+10.17.2. DataSN/R2TSN
+
+ This field is only valid if the rejected PDU is a Data/R2T SNACK and
+ the Reject reason code is "Protocol error" (see Section 10.16 SNACK
+ Request). The DataSN/R2TSN is the next Data/R2T sequence number that
+ the target would send for the task, if any.
+
+10.17.3. StatSN, ExpCmdSN and MaxCmdSN
+
+ These fields carry their usual values and are not related to the
+ rejected command. StatSN is advanced after a Reject.
+
+10.17.4. Complete Header of Bad PDU
+
+ The target returns the header (not including digest) of the PDU in
+ error as the data of the response.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 177]
+
+RFC 3720 iSCSI April 2004
+
+
+10.18. NOP-Out
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|I| 0x00 |1| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| CmdSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpStatSN |
+ +---------------+---------------+---------------+---------------+
+ 32/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment - Ping Data (optional) /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ A NOP-Out may be used by an initiator as a "ping request" to verify
+ that a connection/session is still active and all its components are
+ operational. The NOP-In response is the "ping echo".
+
+ A NOP-Out is also sent by an initiator in response to a NOP-In.
+
+ A NOP-Out may also be used to confirm a changed ExpStatSN if another
+ PDU will not be available for a long time.
+
+ Upon receipt of a NOP-In with the Target Transfer Tag set to a valid
+ value (not the reserved 0xffffffff), the initiator MUST respond with
+ a NOP-Out. In this case, the NOP-Out Target Transfer Tag MUST
+ contain a copy of the NOP-In Target Transfer Tag.
+
+
+
+
+
+Satran, et al. Standards Track [Page 178]
+
+RFC 3720 iSCSI April 2004
+
+
+10.18.1. Initiator Task Tag
+
+ The NOP-Out MUST have the Initiator Task Tag set to a valid value
+ only if a response in the form of NOP-In is requested (i.e., the
+ NOP-Out is used as a ping request). Otherwise, the Initiator Task
+ Tag MUST be set to 0xffffffff.
+
+ When a target receives the NOP-Out with a valid Initiator Task Tag,
+ it MUST respond with a Nop-In Response (see Section 10.19 NOP-In).
+
+ If the Initiator Task Tag contains 0xffffffff, the I bit MUST be set
+ to 1 and the CmdSN is not advanced after this PDU is sent.
+
+10.18.2. Target Transfer Tag
+
+ A target assigned identifier for the operation.
+
+ The NOP-Out MUST only have the Target Transfer Tag set if it is
+ issued in response to a NOP-In with a valid Target Transfer Tag. In
+ this case, it copies the Target Transfer Tag from the NOP-In PDU.
+ Otherwise, the Target Transfer Tag MUST be set to 0xffffffff.
+
+ When the Target Transfer Tag is set to a value other than 0xffffffff,
+ the LUN field MUST also be copied from the NOP-In.
+
+10.18.3. Ping Data
+
+ Ping data are reflected in the NOP-In Response. The length of the
+ reflected data are limited to MaxRecvDataSegmentLength. The length
+ of ping data are indicated by the DataSegmentLength. 0 is a valid
+ value for the DataSegmentLength and indicates the absence of ping
+ data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 179]
+
+RFC 3720 iSCSI April 2004
+
+
+10.19. NOP-In
+
+ Byte/ 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0|.|.| 0x20 |1| Reserved |
+ +---------------+---------------+---------------+---------------+
+ 4|TotalAHSLength | DataSegmentLength |
+ +---------------+---------------+---------------+---------------+
+ 8| LUN or Reserved |
+ + +
+ 12| |
+ +---------------+---------------+---------------+---------------+
+ 16| Initiator Task Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 20| Target Transfer Tag or 0xffffffff |
+ +---------------+---------------+---------------+---------------+
+ 24| StatSN |
+ +---------------+---------------+---------------+---------------+
+ 28| ExpCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 32| MaxCmdSN |
+ +---------------+---------------+---------------+---------------+
+ 36/ Reserved /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ 48| Header-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+ / DataSegment - Return Ping Data /
+ +/ /
+ +---------------+---------------+---------------+---------------+
+ | Data-Digest (Optional) |
+ +---------------+---------------+---------------+---------------+
+
+ NOP-In is either sent by a target as a response to a NOP-Out, as a
+ "ping" to an initiator, or as a means to carry a changed ExpCmdSN
+ and/or MaxCmdSN if another PDU will not be available for a long time
+ (as determined by the target).
+
+ When a target receives the NOP-Out with a valid Initiator Task Tag
+ (not the reserved value 0xffffffff), it MUST respond with a NOP-In
+ with the same Initiator Task Tag that was provided in the NOP-Out
+ request. It MUST also duplicate up to the first
+ MaxRecvDataSegmentLength bytes of the initiator provided Ping Data.
+ For such a response, the Target Transfer Tag MUST be 0xffffffff.
+
+
+
+
+
+Satran, et al. Standards Track [Page 180]
+
+RFC 3720 iSCSI April 2004
+
+
+ Otherwise, when a target sends a NOP-In that is not a response to a
+ Nop-Out received from the initiator, the Initiator Task Tag MUST be
+ set to 0xffffffff and the Data Segment MUST NOT contain any data
+ (DataSegmentLength MUST be 0).
+
+10.19.1. Target Transfer Tag
+
+ If the target is responding to a NOP-Out, this is set to the reserved
+ value 0xffffffff.
+
+ If the target is sending a NOP-In as a Ping (intending to receive a
+ corresponding NOP-Out), this field is set to a valid value (not the
+ reserved 0xffffffff).
+
+ If the target is initiating a NOP-In without wanting to receive a
+ corresponding NOP-Out, this field MUST hold the reserved value of
+ 0xffffffff.
+
+10.19.2. StatSN
+
+ The StatSN field will always contain the next StatSN. However, when
+ the Initiator Task Tag is set to 0xffffffff, StatSN for the
+ connection is not advanced after this PDU is sent.
+
+10.19.3. LUN
+
+ A LUN MUST be set to a correct value when the Target Transfer Tag is
+ valid (not the reserved value 0xffffffff).
+
+11. iSCSI Security Text Keys and Authentication Methods
+
+ Only the following keys are used during the SecurityNegotiation stage
+ of the Login Phase:
+
+ SessionType
+ InitiatorName
+ TargetName
+ TargetAddress
+ InitiatorAlias
+ TargetAlias
+ TargetPortalGroupTag
+ AuthMethod and the keys used by the authentication methods
+ specified under Section 11.1 AuthMethod along with all of
+ their associated keys as well as Vendor Specific
+ Authentication Methods.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 181]
+
+RFC 3720 iSCSI April 2004
+
+
+ Other keys MUST NOT be used.
+
+ SessionType, InitiatorName, TargetName, InitiatorAlias, TargetAlias,
+ and TargetPortalGroupTag are described in Chapter 12 as they can be
+ used also in the OperationalNegotiation stage.
+
+ All security keys have connection-wide applicability.
+
+11.1. AuthMethod
+
+ Use: During Login - Security Negotiation Senders: Initiator and
+ Target Scope: connection
+
+ AuthMethod = <list-of-values>
+
+ The main item of security negotiation is the authentication method
+ (AuthMethod).
+
+ The authentication methods that can be used (appear in the
+ list-of-values) are either those listed in the following table or are
+ vendor-unique methods:
+
+ +------------------------------------------------------------+
+ | Name | Description |
+ +------------------------------------------------------------+
+ | KRB5 | Kerberos V5 - defined in [RFC1510] |
+ +------------------------------------------------------------+
+ | SPKM1 | Simple Public-Key GSS-API Mechanism |
+ | | defined in [RFC2025] |
+ +------------------------------------------------------------+
+ | SPKM2 | Simple Public-Key GSS-API Mechanism |
+ | | defined in [RFC2025] |
+ +------------------------------------------------------------+
+ | SRP | Secure Remote Password |
+ | | defined in [RFC2945] |
+ +------------------------------------------------------------+
+ | CHAP | Challenge Handshake Authentication Protocol|
+ | | defined in [RFC1994] |
+ +------------------------------------------------------------+
+ | None | No authentication |
+ +------------------------------------------------------------+
+
+ The AuthMethod selection is followed by an "authentication exchange"
+ specific to the authentication method selected.
+
+ The authentication method proposal may be made by either the
+ initiator or the target. However the initiator MUST make the first
+ step specific to the selected authentication method as soon as it is
+
+
+
+Satran, et al. Standards Track [Page 182]
+
+RFC 3720 iSCSI April 2004
+
+
+ selected. It follows that if the target makes the authentication
+ method proposal the initiator sends the first keys(s) of the exchange
+ together with its authentication method selection.
+
+ The authentication exchange authenticates the initiator to the
+ target, and optionally, the target to the initiator. Authentication
+ is OPTIONAL to use but MUST be supported by the target and initiator.
+
+ The initiator and target MUST implement CHAP. All other
+ authentication methods are OPTIONAL.
+
+ Private or public extension algorithms MAY also be negotiated for
+ authentication methods. Whenever a private or public extension
+ algorithm is part of the default offer (the offer made in absence of
+ explicit administrative action) the implementer MUST ensure that CHAP
+ is listed as an alternative in the default offer and "None" is not
+ part of the default offer.
+
+ Extension authentication methods MUST be named using one of the
+ following two formats:
+
+ a) Z-reversed.vendor.dns_name.do_something=
+ b) Z<#><IANA-registered-string>=
+
+ Authentication methods named using the Z- format are used as private
+ extensions. Authentication methods named using the Z# format are
+ used as public extensions that must be registered with IANA and MUST
+ be described by an informational RFC.
+
+ For all of the public or private extension authentication methods,
+ the method specific keys MUST conform to the format specified in
+ Section 5.1 Text Format for standard-label.
+
+ To identify the vendor for private extension authentication methods,
+ we suggest you use the reversed DNS-name as a prefix to the proper
+ digest names.
+
+ The part of digest-name following Z- and Z# MUST conform to the
+ format for standard-label specified in Section 5.1 Text Format.
+
+ Support for public or private extension authentication methods is
+ OPTIONAL.
+
+ The following subsections define the specific exchanges for each of
+ the standardized authentication methods. As mentioned earlier the
+ first step is always done by the initiator.
+
+
+
+
+
+Satran, et al. Standards Track [Page 183]
+
+RFC 3720 iSCSI April 2004
+
+
+11.1.1. Kerberos
+
+ For KRB5 (Kerberos V5) [RFC1510] and [RFC1964], the initiator MUST
+ use:
+
+ KRB_AP_REQ=<KRB_AP_REQ>
+
+ where KRB_AP_REQ is the client message as defined in [RFC1510].
+
+ The default principal name assumed by an iSCSI initiator or target
+ (prior to any administrative configuration action) MUST be the iSCSI
+ Initiator Name or iSCSI Target Name respectively, prefixed by the
+ string "iscsi/".
+
+ If the initiator authentication fails, the target MUST respond with a
+ Login reject with "Authentication Failure" status. Otherwise, if the
+ initiator has selected the mutual authentication option (by setting
+ MUTUAL-REQUIRED in the ap-options field of the KRB_AP_REQ), the
+ target MUST reply with:
+
+ KRB_AP_REP=<KRB_AP_REP>
+
+ where KRB_AP_REP is the server's response message as defined in
+ [RFC1510].
+
+ If mutual authentication was selected and target authentication
+ fails, the initiator MUST close the connection.
+
+ KRB_AP_REQ and KRB_AP_REP are binary-values and their binary length
+ (not the length of the character string that represents them in
+ encoded form) MUST not exceed 65536 bytes.
+
+11.1.2. Simple Public-Key Mechanism (SPKM)
+
+ For SPKM1 and SPKM2 [RFC2025], the initiator MUST use:
+
+ SPKM_REQ=<SPKM-REQ>
+
+ where SPKM-REQ is the first initiator token as defined in [RFC2025].
+
+ [RFC2025] defines situations where each side may send an error token
+ that may cause the peer to re-generate and resend its last token.
+ This scheme is followed in iSCSI, and the error token syntax is:
+
+ SPKM_ERROR=<SPKM-ERROR>
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 184]
+
+RFC 3720 iSCSI April 2004
+
+
+ However, SPKM-DEL tokens that are defined by [RFC2025] for fatal
+ errors will not be used by iSCSI. If the target needs to send a
+ SPKM-DEL token, it will, instead, send a Login "login reject" message
+ with the "Authentication Failure" status and terminate the
+ connection. If the initiator needs to send a SPKM-DEL token, it will
+ close the connection.
+
+ In the following sections, we assume that no SPKM-ERROR tokens are
+ required.
+
+ If the initiator authentication fails, the target MUST return an
+ error. Otherwise, if the AuthMethod is SPKM1 or if the initiator has
+ selected the mutual authentication option (by setting mutual-state
+ bit in the options field of the REQ-TOKEN in the SPKM-REQ), the
+ target MUST reply with:
+
+ SPKM_REP_TI=<SPKM-REP-TI>
+
+ where SPKM-REP-TI is the target token as defined in [RFC2025].
+
+ If mutual authentication was selected and target authentication
+ fails, the initiator MUST close the connection. Otherwise, if the
+ AuthMethod is SPKM1, the initiator MUST continue with:
+
+ SPKM_REP_IT=<SPKM-REP-IT>
+
+ where SPKM-REP-IT is the second initiator token as defined in
+ [RFC2025]. If the initiator authentication fails, the target MUST
+ answer with a Login reject with "Authentication Failure" status.
+
+ SPKM requires support for very long authentication items.
+
+ All the SPKM-* tokens are binary-values and their binary length (not
+ the length of the character string that represents them in encoded
+ form) MUST not exceed 65536 bytes.
+
+11.1.3. Secure Remote Password (SRP)
+
+ For SRP [RFC2945], the initiator MUST use:
+
+ SRP_U=<U> TargetAuth=Yes /* or TargetAuth=No */
+
+ The target MUST answer with a Login reject with the "Authorization
+ Failure" status or reply with:
+
+ SRP_GROUP=<G1,G2...> SRP_s=<s>
+
+ Where G1,G2... are proposed groups, in order of preference.
+
+
+
+Satran, et al. Standards Track [Page 185]
+
+RFC 3720 iSCSI April 2004
+
+
+ The initiator MUST either close the connection or continue with:
+
+ SRP_A=<A> SRP_GROUP=<G>
+
+ Where G is one of G1,G2... that were proposed by the target.
+
+ The target MUST answer with a Login reject with the "Authentication
+ Failure" status or reply with:
+
+ SRP_B=<B>
+
+ The initiator MUST close the connection or continue with:
+
+ SRP_M=<M>
+
+ If the initiator authentication fails, the target MUST answer with a
+ Login reject with "Authentication Failure" status. Otherwise, if the
+ initiator sent TargetAuth=Yes in the first message (requiring target
+ authentication), the target MUST reply with:
+
+ SRP_HM=<H(A | M | K)>
+
+ If the target authentication fails, the initiator MUST close the
+ connection.
+
+ Where U, s, A, B, M, and H(A | M | K) are defined in [RFC2945] (using
+ the SHA1 hash function, such as SRP-SHA1) and G,Gn (Gn stands for
+ G1,G2...) are identifiers of SRP groups specified in [RFC3723]. G,
+ Gn, and U are text strings, s,A,B,M, and H(A | M | K) are
+ binary-values. The length of s,A,B,M and H(A | M | K) in binary form
+ (not the length of the character string that represents them in
+ encoded form) MUST not exceed 1024 bytes.
+
+ For the SRP_GROUP, all the groups specified in [RFC3723] up to 1536
+ bits (i.e., SRP-768, SRP-1024, SRP-1280, SRP-1536) must be supported
+ by initiators and targets. To guarantee interoperability, targets
+ MUST always offer "SRP-1536" as one of the proposed groups.
+
+11.1.4. Challenge Handshake Authentication Protocol (CHAP)
+
+ For CHAP [RFC1994], in the first step, the initiator MUST send:
+
+ CHAP_A=<A1,A2...>
+
+ Where A1,A2... are proposed algorithms, in order of preference.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 186]
+
+RFC 3720 iSCSI April 2004
+
+
+ In the second step, the target MUST answer with a Login reject with
+ the "Authentication Failure" status or reply with:
+
+ CHAP_A=<A> CHAP_I=<I> CHAP_C=<C>
+
+ Where A is one of A1,A2... that were proposed by the initiator.
+
+ In the third step, the initiator MUST continue with:
+
+ CHAP_N=<N> CHAP_R=<R>
+
+ or, if it requires target authentication, with:
+
+ CHAP_N=<N> CHAP_R=<R> CHAP_I=<I> CHAP_C=<C>
+
+ If the initiator authentication fails, the target MUST answer with a
+ Login reject with "Authentication Failure" status. Otherwise, if the
+ initiator required target authentication, the target MUST either
+ answer with a Login reject with "Authentication Failure" or reply
+ with:
+
+ CHAP_N=<N> CHAP_R=<R>
+
+ If target authentication fails, the initiator MUST close the
+ connection.
+
+ Where N, (A,A1,A2), I, C, and R are (correspondingly) the Name,
+ Algorithm, Identifier, Challenge, and Response as defined in
+ [RFC1994], N is a text string, A,A1,A2, and I are numbers, and C and
+ R are large-binary-values and their binary length (not the length of
+ the character string that represents them in encoded form) MUST not
+ exceed 1024 bytes.
+
+ For the Algorithm, as stated in [RFC1994], one value is required to
+ be implemented:
+
+ 5 (CHAP with MD5)
+
+ To guarantee interoperability, initiators MUST always offer it as one
+ of the proposed algorithms.
+
+12. Login/Text Operational Text Keys
+
+ Some session specific parameters MUST only be carried on the leading
+ connection and cannot be changed after the leading connection login
+ (e.g., MaxConnections, the maximum number of connections). This
+
+
+
+
+
+Satran, et al. Standards Track [Page 187]
+
+RFC 3720 iSCSI April 2004
+
+
+ holds for a single connection session with regard to connection
+ restart. The keys that fall into this category have the use: LO
+ (Leading Only).
+
+ Keys that can only be used during login have the use: IO (initialize
+ only), while those that can be used in both the Login Phase and Full
+ Feature Phase have the use: ALL.
+
+ Keys that can only be used during Full Feature Phase use FFPO (Full
+ Feature Phase only).
+
+ Keys marked as Any-Stage may also appear in the SecurityNegotiation
+ stage while all other keys described in this chapter are operational
+ keys.
+
+ Keys that do not require an answer are marked as Declarative.
+
+ Key scope is indicated as session-wide (SW) or connection-only (CO).
+
+ Result function, wherever mentioned, states the function that can be
+ applied to check the validity of the responder selection. Minimum
+ means that the selected value cannot exceed the offered value.
+ Maximum means that the selected value cannot be lower than the
+ offered value. AND means that the selected value must be a possible
+ result of a Boolean "and" function with an arbitrary Boolean value
+ (e.g., if the offered value is No the selected value must be No). OR
+ means that the selected value must be a possible result of a Boolean
+ "or" function with an arbitrary Boolean value (e.g., if the offered
+ value is Yes the selected value must be Yes).
+
+12.1. HeaderDigest and DataDigest
+
+ Use: IO
+ Senders: Initiator and Target
+ Scope: CO
+
+ HeaderDigest = <list-of-values>
+ DataDigest = <list-of-values>
+
+ Default is None for both HeaderDigest and DataDigest.
+
+ Digests enable the checking of end-to-end, non-cryptographic data
+ integrity beyond the integrity checks provided by the link layers and
+ the covering of the whole communication path including all elements
+ that may change the network level PDUs such as routers, switches, and
+ proxies.
+
+
+
+
+
+Satran, et al. Standards Track [Page 188]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following table lists cyclic integrity checksums that can be
+ negotiated for the digests and that MUST be implemented by every
+ iSCSI initiator and target. These digest options only have error
+ detection significance.
+
+ +---------------------------------------------+
+ | Name | Description | Generator |
+ +---------------------------------------------+
+ | CRC32C | 32 bit CRC |0x11edc6f41|
+ +---------------------------------------------+
+ | None | no digest |
+ +---------------------------------------------+
+
+ The generator polynomial for this digest is given in
+ hex-notation (e.g., 0x3b stands for 0011 1011 and the polynomial is
+ x**5+X**4+x**3+x+1).
+
+ When the Initiator and Target agree on a digest, this digest MUST be
+ used for every PDU in Full Feature Phase.
+
+ Padding bytes, when present in a segment covered by a CRC, SHOULD be
+ set to 0 and are included in the CRC.
+
+ The CRC MUST be calculated by a method that produces the same
+ results as the following process:
+
+ - The PDU bits are considered as the coefficients of a
+ polynomial M(x) of degree n-1; bit 7 of the lowest numbered
+ byte is considered the most significant bit (x^n-1), followed
+ by bit 6 of the lowest numbered byte through bit 0 of the
+ highest numbered byte (x^0).
+
+ - The most significant 32 bits are complemented.
+
+ - The polynomial is multiplied by x^32 then divided by G(x). The
+ generator polynomial produces a remainder R(x) of degree <= 31.
+
+ - The coefficients of R(x) are considered a 32 bit sequence.
+
+ - The bit sequence is complemented and the result is the CRC.
+
+ - The CRC bits are mapped into the digest word. The x^31
+ coefficient in bit 7 of the lowest numbered byte of the digest
+ continuing through to the byte up to the x^24 coefficient in
+ bit 0 of the lowest numbered byte, continuing with the x^23
+ coefficient in bit 7 of next byte through x^0 in bit 0 of the
+ highest numbered byte.
+
+
+
+
+Satran, et al. Standards Track [Page 189]
+
+RFC 3720 iSCSI April 2004
+
+
+ - Computing the CRC over any segment (data or header) extended
+ to include the CRC built using the generator 0x11edc6f41 will
+ always get the value 0x1c2d19ed as its final remainder (R(x)).
+ This value is given here in its polynomial form (i.e., not
+ mapped as the digest word).
+
+ For a discussion about selection criteria for the CRC, see
+ [RFC3385]. For a detailed analysis of the iSCSI polynomial, see
+ [Castagnoli93].
+
+ Private or public extension algorithms MAY also be negotiated for
+ digests. Whenever a private or public digest extension algorithm is
+ part of the default offer (the offer made in absence of explicit
+ administrative action) the implementer MUST ensure that CRC32C is
+ listed as an alternative in the default offer and "None" is not
+ part of the default offer.
+
+ Extension digest algorithms MUST be named using one of the following
+ two formats:
+
+ a) Y-reversed.vendor.dns_name.do_something=
+ b) Y<#><IANA-registered-string>=
+
+ Digests named using the Y- format are used for private purposes
+ (unregistered). Digests named using the Y# format (public extension)
+ must be registered with IANA and MUST be described by an
+ informational RFC.
+
+ For private extension digests, to identify the vendor, we suggest
+ you use the reversed DNS-name as a prefix to the proper digest
+ names.
+
+ The part of digest-name following Y- and Y# MUST conform to the
+ format for standard-label specified in Section 5.1 Text Format.
+
+ Support for public or private extension digests is OPTIONAL.
+
+12.2. MaxConnections
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ MaxConnections=<numerical-value-from-1-to-65535>
+
+ Default is 1.
+ Result function is Minimum.
+
+
+
+Satran, et al. Standards Track [Page 190]
+
+RFC 3720 iSCSI April 2004
+
+
+
+ Initiator and target negotiate the maximum number of connections
+ requested/acceptable.
+
+12.3. SendTargets
+
+ Use: FFPO
+ Senders: Initiator
+ Scope: SW
+
+ For a complete description, see Appendix D. - SendTargets
+ Operation -.
+
+12.4. TargetName
+
+ Use: IO by initiator, FFPO by target - only as response to a
+ SendTargets, Declarative, Any-Stage
+
+ Senders: Initiator and Target
+ Scope: SW
+
+ TargetName=<iSCSI-name-value>
+
+ Examples:
+
+ TargetName=iqn.1993-11.com.disk-vendor:diskarrays.sn.45678
+ TargetName=eui.020000023B040506
+
+ The initiator of the TCP connection MUST provide this key to the
+ remote endpoint in the first login request if the initiator is not
+ establishing a discovery session. The iSCSI Target Name specifies
+ the worldwide unique name of the target.
+
+ The TargetName key may also be returned by the "SendTargets" text
+ request (which is its only use when issued by a target).
+
+ TargetName MUST not be redeclared within the login phase.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 191]
+
+RFC 3720 iSCSI April 2004
+
+
+12.5. InitiatorName
+
+ Use: IO, Declarative, Any-Stage
+ Senders: Initiator
+ Scope: SW
+
+ InitiatorName=<iSCSI-name-value>
+
+ Examples:
+
+ InitiatorName=iqn.1992-04.com.os-vendor.plan9:cdrom.12345
+ InitiatorName=iqn.2001-02.com.ssp.users:customer235.host90
+
+ The initiator of the TCP connection MUST provide this key to the
+ remote endpoint at the first Login of the Login Phase for every
+ connection. The InitiatorName key enables the initiator to identify
+ itself to the remote endpoint.
+
+ InitiatorName MUST not be redeclared within the login phase.
+
+12.6. TargetAlias
+
+ Use: ALL, Declarative, Any-Stage
+ Senders: Target
+ Scope: SW
+
+ TargetAlias=<iSCSI-local-name-value>
+
+ Examples:
+
+ TargetAlias=Bob-s Disk
+ TargetAlias=Database Server 1 Log Disk
+ TargetAlias=Web Server 3 Disk 20
+
+ If a target has been configured with a human-readable name or
+ description, this name SHOULD be communicated to the initiator during
+ a Login Response PDU if SessionType=Normal (see Section 12.21
+ SessionType). This string is not used as an identifier, nor is it
+ meant to be used for authentication or authorization decisions. It
+ can be displayed by the initiator's user interface in a list of
+ targets to which it is connected.
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 192]
+
+RFC 3720 iSCSI April 2004
+
+
+12.7. InitiatorAlias
+
+ Use: ALL, Declarative, Any-Stage
+ Senders: Initiator
+ Scope: SW
+
+ InitiatorAlias=<iSCSI-local-name-value>
+
+ Examples:
+
+ InitiatorAlias=Web Server 4
+ InitiatorAlias=spyalley.nsa.gov
+ InitiatorAlias=Exchange Server
+
+ If an initiator has been configured with a human-readable name or
+ description, it SHOULD be communicated to the target during a Login
+ Request PDU. If not, the host name can be used instead. This string
+ is not used as an identifier, nor is meant to be used for
+ authentication or authorization decisions. It can be displayed by
+ the target's user interface in a list of initiators to which it is
+ connected.
+
+12.8. TargetAddress
+
+ Use: ALL, Declarative, Any-Stage
+ Senders: Target
+ Scope: SW
+
+ TargetAddress=domainname[:port][,portal-group-tag]
+
+ The domainname can be specified as either a DNS host name, a
+ dotted-decimal IPv4 address, or a bracketed IPv6 address as specified
+ in [RFC2732].
+
+ If the TCP port is not specified, it is assumed to be the
+ IANA-assigned default port for iSCSI (see Section 13 IANA
+ Considerations).
+
+ If the TargetAddress is returned as the result of a redirect status
+ in a login response, the comma and portal group tag MUST be omitted.
+
+ If the TargetAddress is returned within a SendTargets response, the
+ portal group tag MUST be included.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 193]
+
+RFC 3720 iSCSI April 2004
+
+
+ Examples:
+
+ TargetAddress=10.0.0.1:5003,1
+ TargetAddress=[1080:0:0:0:8:800:200C:417A],65
+ TargetAddress=[1080::8:800:200C:417A]:5003,1
+ TargetAddress=computingcenter.example.com,23
+
+ Use of the portal-group-tag is described in Appendix D.
+ - SendTargets Operation -. The formats for the port and
+ portal-group-tag are the same as the one specified in Section 12.9
+ TargetPortalGroupTag.
+
+12.9. TargetPortalGroupTag
+
+ Use: IO by target, Declarative, Any-Stage
+ Senders: Target
+ Scope: SW
+
+ TargetPortalGroupTag=<16-bit-binary-value>
+
+ Examples:
+ TargetPortalGroupTag=1
+
+ The target portal group tag is a 16-bit binary-value that uniquely
+ identifies a portal group within an iSCSI target node. This key
+ carries the value of the tag of the portal group that is servicing
+ the Login request. The iSCSI target returns this key to the
+ initiator in the Login Response PDU to the first Login Request PDU
+ that has the C bit set to 0 when TargetName is given by the
+ initiator.
+
+ For the complete usage expectations of this key see Section 5.3 Login
+ Phase.
+
+12.10. InitialR2T
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ InitialR2T=<boolean-value>
+
+ Examples:
+
+ I->InitialR2T=No
+ T->InitialR2T=No
+
+
+
+
+Satran, et al. Standards Track [Page 194]
+
+RFC 3720 iSCSI April 2004
+
+
+ Default is Yes.
+ Result function is OR.
+
+ The InitialR2T key is used to turn off the default use of R2T for
+ unidirectional and the output part of bidirectional commands, thus
+ allowing an initiator to start sending data to a target as if it has
+ received an initial R2T with Buffer Offset=Immediate Data Length and
+ Desired Data Transfer Length=(min(FirstBurstLength, Expected Data
+ Transfer Length) - Received Immediate Data Length).
+
+ The default action is that R2T is required, unless both the initiator
+ and the target send this key-pair attribute specifying InitialR2T=No.
+ Only the first outgoing data burst (immediate data and/or separate
+ PDUs) can be sent unsolicited (i.e., not requiring an explicit R2T).
+
+12.11. ImmediateData
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ ImmediateData=<boolean-value>
+
+ Default is Yes.
+ Result function is AND.
+
+ The initiator and target negotiate support for immediate data. To
+ turn immediate data off, the initiator or target must state its
+ desire to do so. ImmediateData can be turned on if both the
+ initiator and target have ImmediateData=Yes.
+
+ If ImmediateData is set to Yes and InitialR2T is set to Yes
+ (default), then only immediate data are accepted in the first burst.
+
+ If ImmediateData is set to No and InitialR2T is set to Yes, then the
+ initiator MUST NOT send unsolicited data and the target MUST reject
+ unsolicited data with the corresponding response code.
+
+ If ImmediateData is set to No and InitialR2T is set to No, then the
+ initiator MUST NOT send unsolicited immediate data, but MAY send one
+ unsolicited burst of Data-Out PDUs.
+
+ If ImmediateData is set to Yes and InitialR2T is set to No, then the
+ initiator MAY send unsolicited immediate data and/or one unsolicited
+ burst of Data-Out PDUs.
+
+
+
+
+
+Satran, et al. Standards Track [Page 195]
+
+RFC 3720 iSCSI April 2004
+
+
+ The following table is a summary of unsolicited data options:
+
+ +----------+-------------+------------------+--------------+
+ |InitialR2T|ImmediateData| Unsolicited |Immediate Data|
+ | | | Data Out PDUs | |
+ +----------+-------------+------------------+--------------+
+ | No | No | Yes | No |
+ +----------+-------------+------------------+--------------+
+ | No | Yes | Yes | Yes |
+ +----------+-------------+------------------+--------------+
+ | Yes | No | No | No |
+ +----------+-------------+------------------+--------------+
+ | Yes | Yes | No | Yes |
+ +----------+-------------+------------------+--------------+
+
+12.12. MaxRecvDataSegmentLength
+
+ Use: ALL, Declarative
+ Senders: Initiator and Target
+ Scope: CO
+
+ MaxRecvDataSegmentLength=<numerical-value-512-to-(2**24-1)>
+
+ Default is 8192 bytes.
+
+ The initiator or target declares the maximum data segment length in
+ bytes it can receive in an iSCSI PDU.
+
+ The transmitter (initiator or target) is required to send PDUs with a
+ data segment that does not exceed MaxRecvDataSegmentLength of the
+ receiver.
+
+ A target receiver is additionally limited by MaxBurstLength for
+ solicited data and FirstBurstLength for unsolicited data. An
+ initiator MUST NOT send solicited PDUs exceeding MaxBurstLength nor
+ unsolicited PDUs exceeding FirstBurstLength (or
+ FirstBurstLength-Immediate Data Length if immediate data were sent).
+
+12.13. MaxBurstLength
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ MaxBurstLength=<numerical-value-512-to-(2**24-1)>
+
+
+
+
+
+Satran, et al. Standards Track [Page 196]
+
+RFC 3720 iSCSI April 2004
+
+
+ Default is 262144 (256 Kbytes).
+ Result function is Minimum.
+
+ The initiator and target negotiate maximum SCSI data payload in bytes
+ in a Data-In or a solicited Data-Out iSCSI sequence. A sequence
+ consists of one or more consecutive Data-In or Data-Out PDUs that end
+ with a Data-In or Data-Out PDU with the F bit set to one.
+
+12.14. FirstBurstLength
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+ Irrelevant when: ( InitialR2T=Yes and ImmediateData=No )
+
+ FirstBurstLength=<numerical-value-512-to-(2**24-1)>
+
+ Default is 65536 (64 Kbytes).
+ Result function is Minimum.
+
+ The initiator and target negotiate the maximum amount in bytes of
+ unsolicited data an iSCSI initiator may send to the target during the
+ execution of a single SCSI command. This covers the immediate data
+ (if any) and the sequence of unsolicited Data-Out PDUs (if any) that
+ follow the command.
+
+ FirstBurstLength MUST NOT exceed MaxBurstLength.
+
+12.15. DefaultTime2Wait
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+
+ DefaultTime2Wait=<numerical-value-0-to-3600>
+
+ Default is 2.
+ Result function is Maximum.
+
+ The initiator and target negotiate the minimum time, in seconds, to
+ wait before attempting an explicit/implicit logout or an active task
+ reassignment after an unexpected connection termination or a
+ connection reset.
+
+ A value of 0 indicates that logout or active task reassignment can be
+ attempted immediately.
+
+
+
+
+Satran, et al. Standards Track [Page 197]
+
+RFC 3720 iSCSI April 2004
+
+
+12.16. DefaultTime2Retain
+
+ Use: LO Senders: Initiator and Target Scope: SW
+
+ DefaultTime2Retain=<numerical-value-0-to-3600>
+
+ Default is 20. Result function is Minimum.
+
+ The initiator and target negotiate the maximum time, in seconds after
+ an initial wait (Time2Wait), before which an active task reassignment
+ is still possible after an unexpected connection termination or a
+ connection reset.
+
+ This value is also the session state timeout if the connection in
+ question is the last LOGGED_IN connection in the session.
+
+ A value of 0 indicates that connection/task state is immediately
+ discarded by the target.
+
+12.17. MaxOutstandingR2T
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+
+ MaxOutstandingR2T=<numerical-value-from-1-to-65535>
+ Irrelevant when: SessionType=Discovery
+
+ Default is 1.
+ Result function is Minimum.
+
+ Initiator and target negotiate the maximum number of outstanding R2Ts
+ per task, excluding any implied initial R2T that might be part of
+ that task. An R2T is considered outstanding until the last data PDU
+ (with the F bit set to 1) is transferred, or a sequence reception
+ timeout (Section 6.1.4.1 Recovery Within-command) is encountered for
+ that data sequence.
+
+12.18. DataPDUInOrder
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ DataPDUInOrder=<boolean-value>
+
+
+
+
+
+Satran, et al. Standards Track [Page 198]
+
+RFC 3720 iSCSI April 2004
+
+
+ Default is Yes.
+ Result function is OR.
+
+ No is used by iSCSI to indicate that the data PDUs within sequences
+ can be in any order. Yes is used to indicate that data PDUs within
+ sequences have to be at continuously increasing addresses and
+ overlays are forbidden.
+
+12.19. DataSequenceInOrder
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+ Irrelevant when: SessionType=Discovery
+
+ DataSequenceInOrder=<boolean-value>
+
+ Default is Yes.
+ Result function is OR.
+
+ A Data Sequence is a sequence of Data-In or Data-Out PDUs that end
+ with a Data-In or Data-Out PDU with the F bit set to one. A Data-Out
+ sequence is sent either unsolicited or in response to an R2T.
+ Sequences cover an offset-range.
+
+ If DataSequenceInOrder is set to No, Data PDU sequences may be
+ transferred in any order.
+
+ If DataSequenceInOrder is set to Yes, Data Sequences MUST be
+ transferred using continuously non-decreasing sequence offsets (R2T
+ buffer offset for writes, or the smallest SCSI Data-In buffer offset
+ within a read data sequence).
+
+ If DataSequenceInOrder is set to Yes, a target may retry at most the
+ last R2T, and an initiator may at most request retransmission for the
+ last read data sequence. For this reason, if ErrorRecoveryLevel is
+ not 0 and DataSequenceInOrder is set to Yes then MaxOustandingR2T
+ MUST be set to 1.
+
+12.20. ErrorRecoveryLevel
+
+ Use: LO
+ Senders: Initiator and Target
+ Scope: SW
+
+ ErrorRecoveryLevel=<numerical-value-0-to-2>
+
+
+
+
+
+Satran, et al. Standards Track [Page 199]
+
+RFC 3720 iSCSI April 2004
+
+
+ Default is 0.
+ Result function is Minimum.
+
+ The initiator and target negotiate the recovery level supported.
+
+ Recovery levels represent a combination of recovery capabilities.
+ Each recovery level includes all the capabilities of the lower
+ recovery levels and adds some new ones to them.
+
+ In the description of recovery mechanisms, certain recovery classes
+ are specified. Section 6.1.5 Error Recovery Hierarchy describes the
+ mapping between the classes and the levels.
+
+12.21. SessionType
+
+ Use: LO, Declarative, Any-Stage
+ Senders: Initiator
+ Scope: SW
+
+ SessionType= <Discovery|Normal>
+
+ Default is Normal.
+
+ The initiator indicates the type of session it wants to create. The
+ target can either accept it or reject it.
+
+ A discovery session indicates to the Target that the only purpose of
+ this Session is discovery. The only requests a target accepts in
+ this type of session are a text request with a SendTargets key and a
+ logout request with reason "close the session".
+
+ The discovery session implies MaxConnections = 1 and overrides both
+ the default and an explicit setting.
+
+12.22. The Private or Public Extension Key Format
+
+ Use: ALL
+ Senders: Initiator and Target
+ Scope: specific key dependent
+
+ X-reversed.vendor.dns_name.do_something=
+
+ or
+
+ X<#><IANA-registered-string>=
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 200]
+
+RFC 3720 iSCSI April 2004
+
+
+ Keys with this format are used for public or private extension
+ purposes. These keys always start with X- if unregistered with IANA
+ (private) or X# if registered with IANA (public).
+
+ For unregistered keys, to identify the vendor, we suggest you use the
+ reversed DNS-name as a prefix to the key-proper.
+
+ The part of key-name following X- and X# MUST conform to the format
+ for key-name specified in Section 5.1 Text Format.
+
+ For IANA registered keys the string following X# must be registered
+ with IANA and the use of the key MUST be described by an
+ informational RFC.
+
+ Vendor specific keys MUST ONLY be used in normal sessions.
+
+ Support for public or private extension keys is OPTIONAL.
+
+13. IANA Considerations
+
+ This section conforms to [RFC2434].
+
+ The well-known user TCP port number for iSCSI connections assigned by
+ IANA is 3260 and this is the default iSCSI port. Implementations
+ needing a system TCP port number may use port 860, the port assigned
+ by IANA as the iSCSI system port; however in order to use port 860,
+ it MUST be explicitly specified - implementations MUST NOT default to
+ use of port 860, as 3260 is the only allowed default.
+
+ Extension keys, authentication methods, or digest types for which a
+ vendor or group of vendors intend to provide publicly available
+ descriptions MUST be described by an RFC and MUST be registered with
+ IANA.
+
+ The IANA has set up the following three registries:
+
+ a) iSCSI extended key registry
+ b) iSCSI authentication methods registry
+ c) iSCSI digests registry
+
+ [RFC3723] also instructs IANA to maintain a registry for the values
+ of the SRP_GROUP key. The format of these values must conform to the
+ one specified for iSCSI extension item-label in Section 13.5.4
+ Standard iSCSI extension item-label format.
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 201]
+
+RFC 3720 iSCSI April 2004
+
+
+ For the iSCSI authentication methods registry and the iSCSI digests
+ registry, IANA MUST also assign a 16-bit unsigned integer number (the
+ method number for the authentication method and the digest number for
+ the digest).
+
+ The following initial values for the registry for authentication
+ methods are specified by the standards action of this document:
+
+ Authentication Method | Number |
+ +----------------------------------------+--------+
+ | CHAP | 1 |
+ +----------------------------------------+--------+
+ | SRP | 2 |
+ +----------------------------------------+--------+
+ | KRB5 | 3 |
+ +----------------------------------------+--------+
+ | SPKM1 | 4 |
+ +----------------------------------------+--------+
+ | SPKM2 | 5 |
+ +----------------------------------------+--------+
+
+ All other record numbers from 0 to 255 are reserved. IANA will
+ register numbers above 255.
+
+ Authentication methods with numbers above 255 MUST be unique within
+ the registry and MUST be used with the prefix Z#.
+
+
+ The following initial values for the registry for digests are
+ specified by the standards action of this document:
+
+ Digest | Number |
+ +----------------------------------------+--------+
+ | CRC32C | 1 |
+ +----------------------------------------+--------+
+
+ All other record numbers from 0 to 255 are reserved. IANA will
+ register numbers above 255.
+
+ Digests with numbers above 255 MUST be unique within the registry and
+ MUST be used with the prefix Y#.
+
+ The RFC that describes the item to be registered MUST indicate in the
+ IANA Considerations section the string and iSCSI registry to which it
+ should be recorded.
+
+ Extension Keys, Authentication Methods, and digests (iSCSI extension
+ items) must conform to a number of requirements as described below.
+
+
+
+Satran, et al. Standards Track [Page 202]
+
+RFC 3720 iSCSI April 2004
+
+
+13.1. Naming Requirements
+
+ Each iSCSI extension item must have a unique name in its category.
+ This name will be used as a standard-label for the key, access
+ method, or digest and must conform to the syntax specified in Section
+ 13.5.4 Standard iSCSI extension item-label format for iSCSI extension
+ item-labels.
+
+13.2. Mechanism Specification Requirements
+
+ For iSCSI extension items all of the protocols and procedures used by
+ a given iSCSI extension item must be described, either in the
+ specification of the iSCSI extension item itself or in some other
+ publicly available specification, in sufficient detail for the iSCSI
+ extension item to be implemented by any competent implementor. Use
+ of secret and/or proprietary methods in iSCSI extension items are
+ expressly prohibited. In addition, the restrictions imposed by
+ [RFC1602] on the standardization of patented algorithms must be
+ respected.
+
+13.3. Publication Requirements
+
+ All iSCSI extension items must be described by an RFC. The RFC may
+ be informational rather than Standards-Track, although Standards
+ Track review and approval are encouraged for all iSCSI extension
+ items.
+
+13.4. Security Requirements
+
+ Any known security issues that arise from the use of the iSCSI
+ extension item must be completely and fully described. It is not
+ required that the iSCSI extension item be secure or that it be free
+ from risks, but that the known risks be identified. Publication of a
+ new iSCSI extension item does not require an exhaustive security
+ review, and the security considerations section is subject to
+ continuing evaluation.
+
+ Additional security considerations should be addressed by publishing
+ revised versions of the iSCSI extension item specification.
+
+ For each of these registries, IANA must record the registered string,
+ which MUST conform to the format rules described in Section 13.5.4
+ Standard iSCSI extension item-label format for iSCSI extension
+ item-labels, and the RFC number that describes it. The key prefix
+ (X#, Y# or Z#) is not part of the recorded string.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 203]
+
+RFC 3720 iSCSI April 2004
+
+
+13.5. Registration Procedure
+
+ Registration of a new iSCSI extension item starts with the
+ construction of an Internet Draft to become an RFC.
+
+13.5.1. Present the iSCSI extension item to the Community
+
+ Send a proposed access type specification to the IPS WG mailing list,
+ or if the IPS WG is disbanded at the registration time, to a mailing
+ list designated by the IETF Transport Area Director for a review
+ period of a month. The intent of the public posting is to solicit
+ comments and feedback on the iSCSI extension item specification and a
+ review of any security considerations.
+
+13.5.2. iSCSI extension item review and IESG approval
+
+ When the one month period has passed, the IPS WG chair or a person
+ nominated by the IETF Transport Area Director (the iSCSI extension
+ item reviewer) forwards the Internet Draft to the IESG for
+ publication as an informational RFC or rejects it. If the
+ specification is a standards track document, the usual IETF
+ procedures for such documents are followed.
+
+ Decisions made by the iSCSI extension item reviewer must be published
+ within two weeks after the month-long review period. Decisions made
+ by the iSCSI extension item reviewer can be appealed through the IESG
+ appeal process.
+
+13.5.3. IANA Registration
+
+ Provided that the iSCSI extension item has either passed review or
+ has been successfully appealed to the IESG, and the specification is
+ published as an RFC, then IANA will register the iSCSI extension item
+ and make the registration available to the community.
+
+13.5.4. Standard iSCSI extension item-label format
+
+ The following character symbols are used iSCSI extension item-labels
+ (the hexadecimal values represent Unicode code points):
+
+ (a-z, A-Z) - letters
+ (0-9) - digits
+ "." (0x2e) - dot
+ "-" (0x2d) - minus
+ "+" (0x2b) - plus
+ "@" (0x40) - commercial at
+ "_" (0x5f) - underscore
+
+
+
+
+Satran, et al. Standards Track [Page 204]
+
+RFC 3720 iSCSI April 2004
+
+
+ An iSCSI extension item-label is a string of one or more characters
+ that consist of letters, digits, dot, minus, plus, commercial at, or
+ underscore. An iSCSI extension item-label MUST begin with a capital
+ letter and must not exceed 63 characters.
+
+13.6. IANA Procedures for Registering iSCSI extension items
+
+ The identity of the iSCSI extension item reviewer is communicated to
+ the IANA by the IESG. Then, the IANA only acts in response to iSCSI
+ extension item definitions that are approved by the iSCSI extension
+ item reviewer and forwarded by the reviewer to the IANA for
+ registration, or in response to a communication from the IESG that an
+ iSCSI extension item definition appeal has overturned the iSCSI
+ extension item reviewer's ruling.
+
+References
+
+Normative References
+
+ [CAM] ANSI X3.232-199X, Common Access Method-3.
+
+ [EUI] "Guidelines for 64-bit Global Identifier (EUI-64)",
+ http:
+ //standards.ieee.org/regauth/oui/tutorials/EUI64.html
+
+ [OUI] "IEEE OUI and Company_Id Assignments",
+ http://standards.ieee.org/regauth/oui
+
+ [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791,
+ September 1981.
+
+ [RFC793] Postel, J., "Transmission Control Protocol", STD 7,
+ RFC 793, September 1981.
+
+ [RFC1035] Mockapetris, P., "Domain Names - Implementation and
+ Specification", STD 13, RFC 1035, November 1987.
+
+ [RFC1122] Braden, R., Ed., "Requirements for Internet Hosts-
+ Communication Layer", STD 3, RFC 1122, October 1989.
+
+ [RFC1510] Kohl, J. and C. Neuman, "The Kerberos Network
+ Authentication Service (V5)", RFC 1510, September
+ 1993.
+
+ [RFC1737] Sollins, K. and L. Masinter "Functional Requirements
+ for Uniform Resource Names"RFC 1737, December 1994.
+
+
+
+
+
+Satran, et al. Standards Track [Page 205]
+
+RFC 3720 iSCSI April 2004
+
+
+ [RFC1964] Linn, J., "The Kerberos Version 5 GSS-API Mechanism",
+ RFC 1964, June 1996.
+
+ [RFC1982] Elz, R. and R. Bush, "Serial Number Arithmetic", RFC
+ 1982, August 1996.
+
+ [RFC1994] Simpson, W., "PPP Challenge Handshake Authentication
+ Protocol (CHAP)", RFC 1994, August 1996.
+
+ [RFC2025] Adams, C., "The Simple Public-Key GSS-API Mechanism
+ (SPKM)", RFC 2025, October 1996.
+
+ [RFC2045] Borenstein, N. and N. Freed, "MIME (Multipurpose
+ Internet Mail Extensions) Part One: Mechanisms for
+ Specifying and Describing the Format of Internet
+ Message Bodies", RFC 2045, November 1996.
+
+ [RFC2119] Bradner, S. "Key Words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC2279] Yergeau, F., "UTF-8, a Transformation Format of ISO
+ 10646", RFC 2279 October 1996.
+
+ [RFC2373] Hinden, R. and S. Deering, "IP Version 6 Addressing
+ Architecture", RFC 2373, July 1998.
+
+ [RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter "Uniform
+ Resource Identifiers", RFC 2396, August 1998.
+
+ [RFC2401] Kent, S. and R. Atkinson, "Security Architecture for
+ the Internet Protocol", RFC 2401, November 1998.
+
+ [RFC2404] Madson, C. and R. Glenn, "The Use of HMAC-SHA-1-96
+ within ESP and AH", RFC 2404, November 1998.
+
+ [RFC2406] Kent, S. and R. Atkinson, "IP Encapsulating Security
+ Payload (ESP)", RFC 2406, November 1998.
+
+ [RFC2407] Piper, D., "The Internet IP Security Domain of
+ Interpretation of ISAKMP", RFC 2407, November 1998.
+
+ [RFC2409] Harkins, D. and D. Carrel, "The Internet Key Exchange
+ (IKE)", RFC2409, November 1998.
+
+ [RFC2434] Narten, T. and H. Alvestrand, "Guidelines for Writing
+ an IANA Considerations Section in RFCs.", BCP 26, RFC
+ 2434, October 1998.
+
+
+
+
+Satran, et al. Standards Track [Page 206]
+
+RFC 3720 iSCSI April 2004
+
+
+ [RFC2451] Pereira, R. and R. Adams " The ESP CBC-Mode Cipher
+ Algorithms", RFC 2451, November 1998.
+
+ [RFC2732] Hinden, R., Carpenter, B. and L. Masinter, "Format for
+ Literal IPv6 Addresses in URL's", RFC 2451, December
+ 1999.
+
+ [RFC2945] Wu, T., "The SRP Authentication and Key Exchange
+ System", RFC 2945, September 2000.
+
+ [RFC3066] Alvestrand, H., "Tags for the Identification of
+ Languages", STD 47, RFC 3066, January 2001.
+
+ [RFC3454] Hoffman, P. and M. Blanchet, "Preparation of
+ Internationalized Strings ("stringprep")", RFC 3454,
+ December 2002.
+
+ [RFC3566] Frankel, S. and H. Herbert, "The AES-XCBC-MAC-96
+ Algorithm and Its Use With IPsec", RFC 3566, September
+ 2003.
+
+ [RFC3686] Housley, R., "Using Advanced Encryption Standard (AES)
+ Counter Mode with IPsec Encapsulating Security Payload
+ (ESP)", RFC 3686, January 2004.
+
+ [RFC3722] Bakke, M., "String Profile for Internet Small Computer
+ Systems Interface (iSCSI) Names", RFC 3722, March
+ 2004.
+
+ [RFC3723] Aboba, B., Tseng, J., Walker, J., Rangan, V. and F.
+ Travostino, "Securing Block Storage Protocols over
+ IP", RFC 3723, March 2004.
+
+ [SAM2] T10/1157D, SCSI Architecture Model - 2 (SAM-2).
+
+ [SBC] NCITS.306-1998, SCSI-3 Block Commands (SBC).
+
+ [SPC3] T10/1416-D, SCSI Primary Commands-3.
+
+ [UNICODE] Unicode Standard Annex #15, "Unicode Normalization
+ Forms", http://www.unicode.org/unicode/reports/tr15
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 207]
+
+RFC 3720 iSCSI April 2004
+
+
+Informative References
+
+ [BOOT] P. Sarkar, et al., "Bootstrapping Clients using the
+ iSCSI Protocol", Work in Progress, July 2003.
+
+ [Castagnoli93] G. Castagnoli, S. Braeuer and M. Herrman "Optimization
+ of Cyclic Redundancy-Check Codes with 24 and 32 Parity
+ Bits", IEEE Transact. on Communications, Vol. 41, No.
+ 6, June 1993.
+
+ [CORD] Chadalapaka, M. and R. Elliott, "SCSI Command
+ Ordering Considerations with iSCSI", Work in Progress.
+
+ [RFC3347] Krueger, M., Haagens, R., Sapuntzakis, C. and M.
+ Bakke, "Small Computer Systems Interface protocol over
+ the Internet (iSCSI) Requirements and Design
+ Considerations", RFC 3347, July 2002.
+
+ [RFC3385] Sheinwald, D., Staran, J., Thaler, P. and V. Cavanna,
+ "Internet Protocol Small Computer System Interface
+ (iSCSI) Cyclic Redundancy Check (CRC)/Checksum
+ Considerations", RFC 3385, September 2002.
+
+ [RFC3721] Bakke M., Hafner, J., Hufferd, J., Voruganti, K. and
+ M. Krueger, "Internet Small Computer Systems Interface
+ (iSCSI) Naming and Discovery, RFC 3721, March 2004.
+
+ [SEQ-EXT] Kent, S., "IP Encapsulating Security Payload (ESP)",
+ Work in Progress, July 2002.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 208]
+
+RFC 3720 iSCSI April 2004
+
+
+Appendix A. Sync and Steering with Fixed Interval Markers
+
+ This appendix presents a simple scheme for synchronization (PDU
+ boundary retrieval). It uses markers that include synchronization
+ information placed at fixed intervals in the TCP stream.
+
+ A Marker consists of:
+
+ Byte / 0 | 1 | 2 | 3 |
+ / | | | |
+ |0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+ +---------------+---------------+---------------+---------------+
+ 0| Next-iSCSI-PDU-start pointer - copy #1 |
+ +---------------+---------------+---------------+---------------+
+ 4| Next-iSCSI-PDU-start pointer - copy #2 |
+ +---------------+---------------+---------------+---------------+
+
+ The Marker scheme uses payload byte stream counting that includes
+ every byte placed by iSCSI in the TCP stream except for the markers
+ themselves. It also excludes any bytes that TCP counts but are not
+ originated by iSCSI.
+
+ Markers MUST NOT be included in digest calculation.
+
+ The Marker indicates the offset to the next iSCSI PDU header. The
+ Marker is eight bytes in length and contains two 32-bit offset fields
+ that indicate how many bytes to skip in the TCP stream in order to
+ find the next iSCSI PDU header. The marker uses two copies of the
+ pointer so that a marker that spans a TCP packet boundary should
+ leave at least one valid copy in one of the packets.
+
+ The structure and semantics of an inserted marker are independent of
+ the marker interval.
+
+ The use of markers is negotiable. The initiator and target MAY
+ indicate their readiness to receive and/or send markers during login
+ separately for each connection. The default is No.
+
+A.1. Markers At Fixed Intervals
+
+ A marker is inserted at fixed intervals in the TCP byte stream.
+ During login, each end of the iSCSI session specifies the interval at
+ which it is willing to receive the marker, or it disables the marker
+ altogether. If a receiver indicates that it desires a marker, the
+ sender MAY agree (during negotiation) and provide the marker at the
+ desired interval. However, in certain environments, a sender that
+ does not provide markers to a receiver that wants markers may suffer
+ an appreciable performance degradation.
+
+
+
+Satran, et al. Standards Track [Page 209]
+
+RFC 3720 iSCSI April 2004
+
+
+ The marker interval and the initial marker-less interval are counted
+ in terms of the bytes placed in the TCP stream data by iSCSI.
+
+ When reduced to iSCSI terms, markers MUST indicate the offset to a
+ 4-byte word boundary in the stream. The least significant two bits
+ of each marker word are reserved and are considered 0 for offset
+ computation.
+
+ Padding iSCSI PDU payloads to 4-byte word boundaries simplifies
+ marker manipulation.
+
+A.2. Initial Marker-less Interval
+
+ To enable the connection setup including the Login Phase negotiation,
+ marking (if any) is only started at the first marker interval after
+ the end of the Login Phase. However, in order to enable the marker
+ inclusion and exclusion mechanism to work without knowledge of the
+ length of the Login Phase, the first marker will be placed in the TCP
+ stream as if the Marker-less interval had included markers.
+
+ Thus, all markers appear in the stream at locations conforming to the
+ formula: [(MI + 8) * n - 8] where MI = Marker Interval, n = integer
+ number.
+
+ For example, if the marker interval is 512 bytes and the login ended
+ at byte 1003 (first iSCSI placed byte is 0), the first marker will be
+ inserted after byte 1031 in the stream.
+
+A.3. Negotiation
+
+ The following operational key=value pairs are used to negotiate the
+ fixed interval markers. The direction (output or input) is relative
+ to the initiator.
+
+A.3.1. OFMarker, IFMarker
+
+ Use: IO
+ Senders: Initiator and Target
+ Scope: CO
+
+ OFMarker=<boolean-value>
+ IFMarker=<boolean-value>
+
+ Default is No.
+
+ Result function is AND.
+
+
+
+
+
+Satran, et al. Standards Track [Page 210]
+
+RFC 3720 iSCSI April 2004
+
+
+ OFMarker is used to turn on or off the initiator to target markers
+ on the connection. IFMarker is used to turn on or off the target to
+ initiator markers on the connection.
+
+ Examples:
+
+ I->OFMarker=Yes,IFMarker=Yes
+ T->OFMarker=Yes,IFMarker=Yes
+
+ Results in the Marker being used in both directions while:
+
+ I->OFMarker=Yes,IFMarker=Yes
+ T->OFMarker=Yes,IFMarker=No
+
+ Results in Marker being used from the initiator to the target, but
+ not from the target to initiator.
+
+A.3.2. OFMarkInt, IFMarkInt
+
+ Use: IO
+ Senders: Initiator and Target
+ Scope: CO
+ OFMarkInt is Irrelevant when: OFMarker=No
+ IFMarkInt is Irrelevant when: IFMarker=No
+
+ Offering:
+
+ OFMarkInt=<numeric-range-from-1-to-65535>
+ IFMarkInt=<numeric-range-from-1-to-65535>
+
+ Responding:
+
+ OFMarkInt=<numeric-value-from-1-to-65535>|Reject
+ IFMarkInt=<numeric-value-from-1-to-65535>|Reject
+
+ OFMarkInt is used to set the interval for the initiator to target
+ markers on the connection. IFMarkInt is used to set the interval for
+ the target to initiator markers on the connection.
+
+ For the offering, the initiator or target indicates the minimum to
+ maximum interval (in 4-byte words) it wants the markers for one or
+ both directions. In case it only wants a specific value, only a
+ single value has to be specified. The responder selects a value
+ within the minimum and maximum offered or the only value offered or
+ indicates through the xFMarker key=value its inability to set and/or
+ receive markers. When the interval is unacceptable the responder
+ answers with "Reject". Reject is resetting the marker function in
+ the specified direction (Output or Input) to No.
+
+
+
+Satran, et al. Standards Track [Page 211]
+
+RFC 3720 iSCSI April 2004
+
+
+ The interval is measured from the end of a marker to the beginning of
+ the next marker. For example, a value of 1024 means 1024 words (4096
+ bytes of iSCSI payload between markers).
+
+ The default is 2048.
+
+Appendix B. Examples
+
+B.1. Read Operation Example
+
+ +------------------+-----------------------+----------------------+
+ |Initiator Function| PDU Type | Target Function |
+ +------------------+-----------------------+----------------------+
+ | Command request |SCSI Command (READ)>>> | |
+ | (read) | | |
+ +------------------+-----------------------+----------------------+
+ | | |Prepare Data Transfer |
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ +------------------+-----------------------+----------------------+
+ | | <<< SCSI Response |Send Status and Sense |
+ +------------------+-----------------------+----------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+----------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 212]
+
+RFC 3720 iSCSI April 2004
+
+
+B.2. Write Operation Example
+
+ +------------------+-----------------------+---------------------+
+ |Initiator Function| PDU Type | Target Function |
+ +------------------+-----------------------+---------------------+
+ | Command request |SCSI Command (WRITE)>>>| Receive command |
+ | (write) | | and queue it |
+ +------------------+-----------------------+---------------------+
+ | | | Process old commands|
+ +------------------+-----------------------+---------------------+
+ | | | Ready to process |
+ | | <<< R2T | WRITE command |
+ +------------------+-----------------------+---------------------+
+ | Send Data | SCSI Data-Out >>> | Receive Data |
+ +------------------+-----------------------+---------------------+
+ | | <<< R2T | Ready for data |
+ +------------------+-----------------------+---------------------+
+ | | <<< R2T | Ready for data |
+ +------------------+-----------------------+---------------------+
+ | Send Data | SCSI Data-Out >>> | Receive Data |
+ +------------------+-----------------------+---------------------+
+ | Send Data | SCSI Data-Out >>> | Receive Data |
+ +------------------+-----------------------+---------------------+
+ | | <<< SCSI Response |Send Status and Sense|
+ +------------------+-----------------------+---------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+---------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 213]
+
+RFC 3720 iSCSI April 2004
+
+
+B.3. R2TSN/DataSN Use Examples
+
+ Output (write) data DataSN/R2TSN Example
+
+ +------------------+-----------------------+----------------------+
+ |Initiator Function| PDU Type & Content | Target Function |
+ +------------------+-----------------------+----------------------+
+ | Command request |SCSI Command (WRITE)>>>| Receive command |
+ | (write) | | and queue it |
+ +------------------+-----------------------+----------------------+
+ | | | Process old commands |
+ +------------------+-----------------------+----------------------+
+ | | <<< R2T | Ready for data |
+ | | R2TSN = 0 | |
+ +------------------+-----------------------+----------------------+
+ | | <<< R2T | Ready for more data |
+ | | R2TSN = 1 | |
+ +------------------+-----------------------+----------------------+
+ | Send Data | SCSI Data-Out >>> | Receive Data |
+ | for R2TSN 0 | DataSN = 0, F=0 | |
+ +------------------+-----------------------+----------------------+
+ | Send Data | SCSI Data-Out >>> | Receive Data |
+ | for R2TSN 0 | DataSN = 1, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | Send Data | SCSI Data >>> | Receive Data |
+ | for R2TSN 1 | DataSN = 0, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | | <<< SCSI Response |Send Status and Sense |
+ | | ExpDataSN = 0 | |
+ +------------------+-----------------------+----------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+----------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 214]
+
+RFC 3720 iSCSI April 2004
+
+
+ Input (read) data DataSN Example
+
+ +------------------+-----------------------+----------------------+
+ |Initiator Function| PDU Type | Target Function |
+ +------------------+-----------------------+----------------------+
+ | Command request |SCSI Command (READ)>>> | |
+ | (read) | | |
+ +------------------+-----------------------+----------------------+
+ | | | Prepare Data Transfer|
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ | | DataSN = 0, F=0 | |
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ | | DataSN = 1, F=0 | |
+ +------------------+-----------------------+----------------------+
+ | Receive Data | <<< SCSI Data-In | Send Data |
+ | | DataSN = 2, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | | <<< SCSI Response |Send Status and Sense |
+ | | ExpDataSN = 3 | |
+ +------------------+-----------------------+----------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+----------------------+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 215]
+
+RFC 3720 iSCSI April 2004
+
+
+ Bidirectional DataSN Example
+
+ +------------------+-----------------------+----------------------+
+ |Initiator Function| PDU Type | Target Function |
+ +------------------+-----------------------+----------------------+
+ | Command request |SCSI Command >>> | |
+ | (Read-Write) | Read-Write | |
+ +------------------+-----------------------+----------------------+
+ | | | Process old commands |
+ +------------------+-----------------------+----------------------+
+ | | <<< R2T | Ready to process |
+ | | R2TSN = 0 | WRITE command |
+ +------------------+-----------------------+----------------------+
+ | * Receive Data | <<< SCSI Data-In | Send Data |
+ | | DataSN = 1, F=0 | |
+ +------------------+-----------------------+----------------------+
+ | * Receive Data | <<< SCSI Data-In | Send Data |
+ | | DataSN = 2, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | * Send Data | SCSI Data-Out >>> | Receive Data |
+ | for R2TSN 0 | DataSN = 0, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | | <<< SCSI Response |Send Status and Sense |
+ | | ExpDataSN = 3 | |
+ +------------------+-----------------------+----------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+----------------------+
+
+ *) Send data and Receive Data may be transferred simultaneously as in
+ an atomic Read-Old-Write-New or sequentially as in an atomic
+ Read-Update-Write (in the latter case the R2T may follow the received
+ data).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 216]
+
+RFC 3720 iSCSI April 2004
+
+
+ Unsolicited and immediate output (write) data with DataSN Example
+
+ +------------------+-----------------------+----------------------+
+ |Initiator Function| PDU Type & Content | Target Function |
+ +------------------+-----------------------+----------------------+
+ | Command request |SCSI Command (WRITE)>>>| Receive command |
+ | (write) |F=0 | and data |
+ |+ Immediate data | | and queue it |
+ +------------------+-----------------------+----------------------+
+ | Send Unsolicited | SCSI Write Data >>> | Receive more Data |
+ | Data | DataSN = 0, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | | | Process old commands |
+ +------------------+-----------------------+----------------------+
+ | | <<< R2T | Ready for more data |
+ | | R2TSN = 0 | |
+ +------------------+-----------------------+----------------------+
+ | Send Data | SCSI Write Data >>> | Receive Data |
+ | for R2TSN 0 | DataSN = 0, F=1 | |
+ +------------------+-----------------------+----------------------+
+ | | <<< SCSI Response |Send Status and Sense |
+ | | | |
+ +------------------+-----------------------+----------------------+
+ | Command Complete | | |
+ +------------------+-----------------------+----------------------+
+
+B.4. CRC Examples
+
+ N.B. all Values are Hexadecimal
+
+ 32 bytes of zeroes:
+
+ Byte: 0 1 2 3
+
+ 0: 00 00 00 00
+ ...
+ 28: 00 00 00 00
+
+ CRC: aa 36 91 8a
+
+ 32 bytes of ones:
+
+ Byte: 0 1 2 3
+
+ 0: ff ff ff ff
+ ...
+ 28: ff ff ff ff
+
+
+
+
+Satran, et al. Standards Track [Page 217]
+
+RFC 3720 iSCSI April 2004
+
+
+ CRC: 43 ab a8 62
+
+ 32 bytes of incrementing 00..1f:
+
+ Byte: 0 1 2 3
+
+ 0: 00 01 02 03
+ ...
+ 28: 1c 1d 1e 1f
+
+ CRC: 4e 79 dd 46
+
+ 32 bytes of decrementing 1f..00:
+
+ Byte: 0 1 2 3
+
+ 0: 1f 1e 1d 1c
+ ...
+ 28: 03 02 01 00
+
+ CRC: 5c db 3f 11
+
+ An iSCSI - SCSI Read (10) Command PDU
+
+ Byte: 0 1 2 3
+
+ 0: 01 c0 00 00
+ 4: 00 00 00 00
+ 8: 00 00 00 00
+ 12: 00 00 00 00
+ 16: 14 00 00 00
+ 20: 00 00 04 00
+ 24: 00 00 00 14
+ 28: 00 00 00 18
+ 32: 28 00 00 00
+ 36: 00 00 00 00
+ 40: 02 00 00 00
+ 44: 00 00 00 00
+
+ CRC: 56 3a 96 d9
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 218]
+
+RFC 3720 iSCSI April 2004
+
+
+Appendix C. Login Phase Examples
+
+ In the first example, the initiator and target authenticate each
+ other via Kerberos:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,SRP,None
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ AuthMethod=KRB5
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ KRB_AP_REQ=<krb_ap_req>
+
+ (krb_ap_req contains the Kerberos V5 ticket and authenticator
+ with MUTUAL-REQUIRED set in the ap-options field)
+
+ If the authentication is successful, the target proceeds with:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+ KRB_AP_REP=<krb_ap_rep>
+
+ (krb_ap_rep is the Kerberos V5 mutual authentication reply)
+
+ If the authentication is successful, the initiator may proceed
+ with:
+
+ I-> Login (CSG,NSG=1,0 T=0) FirstBurstLength=8192
+ T-> Login (CSG,NSG=1,0 T=0) FirstBurstLength=4096
+ MaxBurstLength=8192
+ I-> Login (CSG,NSG=1,0 T=0) MaxBurstLength=8192
+ ... more iSCSI Operational Parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... more iSCSI Operational Parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 219]
+
+RFC 3720 iSCSI April 2004
+
+
+ If the initiator's authentication by the target is not
+ successful, the target responds with:
+
+ T-> Login "login reject"
+
+ instead of the Login KRB_AP_REP message, and terminates the
+ connection.
+
+ If the target's authentication by the initiator is not
+ successful, the initiator terminates the connection (without
+ responding to the Login KRB_AP_REP message).
+
+ In the next example only the initiator is authenticated by the
+ target via Kerberos:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=SRP,KRB5,None
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=KRB5
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ KRB_AP_REQ=krb_ap_req
+
+ (MUTUAL-REQUIRED not set in the ap-options field of krb_ap_req)
+
+ If the authentication is successful, the target proceeds with:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ . . .
+
+ T-> Login (CSG,NSG=1,3 T=1)"login accept"
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 220]
+
+RFC 3720 iSCSI April 2004
+
+
+ In the next example, the initiator and target authenticate each
+ other via SPKM1:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=SPKM1,KRB5,None
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ AuthMethod=SPKM1
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ SPKM_REQ=<spkm-req>
+
+ (spkm-req is the SPKM-REQ token with the mutual-state bit in the
+ options field of the REQ-TOKEN set)
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ SPKM_REP_TI=<spkm-rep-ti>
+
+ If the authentication is successful, the initiator proceeds:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ SPKM_REP_IT=<spkm-rep-it>
+
+ If the authentication is successful, the target proceeds with:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+
+ The initiator may proceed:
+
+ I-> Login (CSG,NSG=1,0 T=0) ... iSCSI parameters
+ T-> Login (CSG,NSG=1,0 T=0) ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+
+ If the target's authentication by the initiator is not
+ successful, the initiator terminates the connection (without
+ responding to the Login SPKM_REP_TI message).
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 221]
+
+RFC 3720 iSCSI April 2004
+
+
+ If the initiator's authentication by the target is not
+ successful, the target responds with:
+
+ T-> Login "login reject"
+
+ instead of the Login "proceed and change stage" message, and
+ terminates the connection.
+
+
+ In the next example, the initiator and target authenticate each
+ other via SPKM2:
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=SPKM1,SPKM2
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=SPKM2
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ SPKM_REQ=<spkm-req>
+
+ (spkm-req is the SPKM-REQ token with the mutual-state bit in the
+ options field of the REQ-TOKEN not set)
+
+ If the authentication is successful, the target proceeds with:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+
+ The initiator may proceed:
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 222]
+
+RFC 3720 iSCSI April 2004
+
+
+ In the next example, the initiator and target authenticate each
+ other via SRP:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,SRP,None
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=SRP
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ SRP_U=<user>
+ TargetAuth=Yes
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ SRP_GROUP=SRP-1536,SRP-1024
+ SRP_s=<s>
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ SRP_GROUP=SRP-1536
+ SRP_A=<A>
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ SRP_B=<B>
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ SRP_M=<M>
+
+ If the initiator authentication is successful, the target
+ proceeds:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+ SRP_HM=<H(A | M | K)>
+
+ Where N, g, s, A, B, M, and H(A | M | K) are defined in [RFC2945].
+
+ If the target authentication is not successful, the initiator
+ terminates the connection; otherwise, it proceeds.
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 223]
+
+RFC 3720 iSCSI April 2004
+
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+ If the initiator authentication is not successful, the target
+ responds with:
+
+ T-> Login "login reject"
+
+ Instead of the T-> Login SRP_HM=<H(A | M | K)> message and
+ terminates the connection.
+
+ In the next example, the initiator and target authenticate each
+ other via SRP:
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,SRP,None
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=SRP
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ SRP_U=<user>
+ TargetAuth=No
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ SRP_GROUP=SRP-1536
+ SRP_s=<s>
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ SRP_GROUP=SRP-1536
+ SRP_A=<A>
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ SRP_B=<B>
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ SRP_M=<M>
+
+ If the initiator authentication is successful, the target
+ proceeds:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+
+
+
+Satran, et al. Standards Track [Page 224]
+
+RFC 3720 iSCSI April 2004
+
+
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+ In the next example the initiator and target authenticate each other
+ via CHAP:
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,CHAP,None
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=CHAP
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ CHAP_A=<A1,A2>
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ CHAP_A=<A1>
+ CHAP_I=<I>
+ CHAP_C=<C>
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ CHAP_N=<N>
+ CHAP_R=<R>
+ CHAP_I=<I>
+ CHAP_C=<C>
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 225]
+
+RFC 3720 iSCSI April 2004
+
+
+ If the initiator authentication is successful, the target
+ proceeds:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+ CHAP_N=<N>
+ CHAP_R=<R>
+
+ If the target authentication is not successful, the initiator
+ aborts the connection; otherwise, it proceeds.
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+ If the initiator authentication is not successful, the target
+ responds with:
+
+ T-> Login "login reject"
+
+ Instead of the Login CHAP_R=<response> "proceed and change
+ stage" message and terminates the connection.
+
+ In the next example, only the initiator is authenticated by the
+ target via CHAP:
+
+ I-> Login (CSG,NSG=0,1 T=0)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,CHAP,None
+
+ T-> Login-PR (CSG,NSG=0,0 T=0)
+ AuthMethod=CHAP
+
+ I-> Login (CSG,NSG=0,0 T=0)
+ CHAP_A=<A1,A2>
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 226]
+
+RFC 3720 iSCSI April 2004
+
+
+ T-> Login (CSG,NSG=0,0 T=0)
+ CHAP_A=<A1>
+ CHAP_I=<I>
+ CHAP_C=<C>
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ CHAP_N=<N>
+ CHAP_R=<R>
+
+ If the initiator authentication is successful, the target
+ proceeds:
+
+ T-> Login (CSG,NSG=0,1 T=1)
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+ In the next example, the initiator does not offer any security
+ parameters. It therefore may offer iSCSI parameters on the Login PDU
+ with the T bit set to 1, and the target may respond with a final
+ Login Response PDU immediately:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+ ... ISCSI parameters
+
+ In the next example, the initiator does offer security
+ parameters on the Login PDU, but the target does not choose
+ any (i.e., chooses the "None" values):
+
+ I-> Login (CSG,NSG=0,1 T=1)
+ InitiatorName=iqn.1999-07.com.os:hostid.77
+ TargetName=iqn.1999-07.com.example:diskarray.sn.88
+ AuthMethod=KRB5,SRP,None
+
+
+
+Satran, et al. Standards Track [Page 227]
+
+RFC 3720 iSCSI April 2004
+
+
+
+ T-> Login-PR (CSG,NSG=0,1 T=1)
+ AuthMethod=None
+
+ I-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ T-> Login (CSG,NSG=1,0 T=0)
+ ... iSCSI parameters
+
+ And at the end:
+
+ I-> Login (CSG,NSG=1,3 T=1)
+ optional iSCSI parameters
+
+ T-> Login (CSG,NSG=1,3 T=1) "login accept"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 228]
+
+RFC 3720 iSCSI April 2004
+
+
+Appendix D. SendTargets Operation
+
+ To reduce the amount of configuration required on an initiator, iSCSI
+ provides the SendTargets text request. The initiator uses the
+ SendTargets request to get a list of targets to which it may have
+ access, as well as the list of addresses (IP address and TCP port) on
+ which these targets may be accessed.
+
+ To make use of SendTargets, an initiator must first establish one of
+ two types of sessions. If the initiator establishes the session
+ using the key "SessionType=Discovery", the session is a discovery
+ session, and a target name does not need to be specified. Otherwise,
+ the session is a normal, operational session. The SendTargets
+ command MUST only be sent during the Full Feature Phase of a normal
+ or discovery session.
+
+ A system that contains targets MUST support discovery sessions on
+ each of its iSCSI IP address-port pairs, and MUST support the
+ SendTargets command on the discovery session. In a discovery
+ session, a target MUST return all path information (target name and
+ IP address-port pairs and portal group tags) for the targets on the
+ target network entity which the requesting initiator is authorized to
+ access.
+
+ A target MUST support the SendTargets command on operational
+ sessions; these will only return path information about the target to
+ which the session is connected, and do not need to return information
+ about other target names that may be defined in the responding
+ system.
+
+ An initiator MAY make use of the SendTargets as it sees fit.
+
+ A SendTargets command consists of a single Text request PDU. This
+ PDU contains exactly one text key and value. The text key MUST be
+ SendTargets. The expected response depends upon the value, as well
+ as whether the session is a discovery or operational session.
+
+ The value must be one of:
+
+ All
+
+ The initiator is requesting that information on all relevant
+ targets known to the implementation be returned. This value
+ MUST be supported on a discovery session, and MUST NOT be
+ supported on an operational session.
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 229]
+
+RFC 3720 iSCSI April 2004
+
+
+ <iSCSI-target-name>
+
+ If an iSCSI target name is specified, the session should respond
+ with addresses for only the named target, if possible. This
+ value MUST be supported on discovery sessions. A discovery
+ session MUST be capable of returning addresses for those
+ targets that would have been returned had value=All had been
+ designated.
+
+ <nothing>
+
+ The session should only respond with addresses for the target to
+ which the session is logged in. This MUST be supported on
+ operational sessions, and MUST NOT return targets other than
+ the one to which the session is logged in.
+
+ The response to this command is a text response that contains a list
+ of zero or more targets and, optionally, their addresses. Each
+ target is returned as a target record. A target record begins with
+ the TargetName text key, followed by a list of TargetAddress text
+ keys, and bounded by the end of the text response or the next
+ TargetName key, which begins a new record. No text keys other than
+ TargetName and TargetAddress are permitted within a SendTargets
+ response.
+
+ For the format of the TargetName, see Section 12.4 TargetName.
+
+ In a discovery session, a target MAY respond to a SendTargets request
+ with its complete list of targets, or with a list of targets that is
+ based on the name of the initiator logged in to the session.
+
+ A SendTargets response MUST NOT contain target names if there are no
+ targets for the requesting initiator to access.
+
+ Each target record returned includes zero or more TargetAddress
+ fields.
+
+ Each target record starts with one text key of the form:
+
+ TargetName=<target-name-goes-here>
+
+ Followed by zero or more address keys of the form:
+
+ TargetAddress=<hostname-or-ipaddress>[:<tcp-port>],
+ <portal-group-tag>
+
+ The hostname-or-ipaddress contains a domain name, IPv4 address, or
+ IPv6 address, as specified for the TargetAddress key.
+
+
+
+Satran, et al. Standards Track [Page 230]
+
+RFC 3720 iSCSI April 2004
+
+
+ A hostname-or-ipaddress duplicated in TargetAddress responses for a
+ given node (the port is absent or equal) would probably indicate that
+ multiple address families are in use at once (IPV6 and IPV4).
+
+ Each TargetAddress belongs to a portal group, identified by its
+ numeric portal group tag (as in Section 12.9 TargetPortalGroupTag).
+ The iSCSI target name, together with this tag, constitutes the SCSI
+ port identifier; the tag only needs to be unique within a given
+ target's name list of addresses.
+
+ Multiple-connection sessions can span iSCSI addresses that belong to
+ the same portal group.
+
+ Multiple-connection sessions cannot span iSCSI addresses that belong
+ to different portal groups.
+
+ If a SendTargets response reports an iSCSI address for a target, it
+ SHOULD also report all other addresses in its portal group in the
+ same response.
+
+ A SendTargets text response can be longer than a single Text Response
+ PDU, and makes use of the long text responses as specified.
+
+ After obtaining a list of targets from the discovery target session,
+ an iSCSI initiator may initiate new sessions to log in to the
+ discovered targets for full operation. The initiator MAY keep the
+ discovery session open, and MAY send subsequent SendTargets commands
+ to discover new targets.
+
+ Examples:
+
+ This example is the SendTargets response from a single target that
+ has no other interface ports.
+
+ Initiator sends text request that contains:
+
+ SendTargets=All
+
+ Target sends a text response that contains:
+
+ TargetName=iqn.1993-11.com.example:diskarray.sn.8675309
+
+ All the target had to return in the simple case was the target name.
+ It is assumed by the initiator that the IP address and TCP port for
+ this target are the same as used on the current connection to the
+ default iSCSI target.
+
+
+
+
+
+Satran, et al. Standards Track [Page 231]
+
+RFC 3720 iSCSI April 2004
+
+
+ The next example has two internal iSCSI targets, each accessible via
+ two different ports with different IP addresses. The following is
+ the text response:
+
+ TargetName=iqn.1993-11.com.example:diskarray.sn.8675309
+ TargetAddress=10.1.0.45:3000,1 TargetAddress=10.1.1.45:3000,2
+ TargetName=iqn.1993-11.com.example:diskarray.sn.1234567
+ TargetAddress=10.1.0.45:3000,1 TargetAddress=10.1.1.45:3000,2
+
+ Both targets share both addresses; the multiple addresses are likely
+ used to provide multi-path support. The initiator may connect to
+ either target name on either address. Each of the addresses has its
+ own portal group tag; they do not support spanning
+ multiple-connection sessions with each other. Keep in mind that the
+ portal group tags for the two named targets are independent of one
+ another; portal group "1" on the first target is not necessarily the
+ same as portal group "1" on the second target.
+
+ In the above example, a DNS host name or an IPv6 address could have
+ been returned instead of an IPv4 address.
+
+ The next text response shows a target that supports spanning sessions
+ across multiple addresses, and further illustrates the use of the
+ portal group tags:
+
+ TargetName=iqn.1993-11.com.example:diskarray.sn.8675309
+
+ TargetAddress=10.1.0.45:3000,1 TargetAddress=10.1.1.46:3000,1
+ TargetAddress=10.1.0.47:3000,2 TargetAddress=10.1.1.48:3000,2
+ TargetAddress=10.1.1.49:3000,3
+
+ In this example, any of the target addresses can be used to reach the
+ same target. A single-connection session can be established to any
+ of these TCP addresses. A multiple-connection session could span
+ addresses .45 and .46 or .47 and .48, but cannot span any other
+ combination. A TargetAddress with its own tag (.49) cannot be
+ combined with any other address within the same session.
+
+ This SendTargets response does not indicate whether .49 supports
+ multiple connections per session; it is communicated via the
+ MaxConnections text key upon login to the target.
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 232]
+
+RFC 3720 iSCSI April 2004
+
+
+Appendix E. Algorithmic Presentation of Error Recovery Classes
+
+ This appendix illustrates the error recovery classes using a
+ pseudo-programming-language. The procedure names are chosen to be
+ obvious to most implementers. Each of the recovery classes described
+ has initiator procedures as well as target procedures. These
+ algorithms focus on outlining the mechanics of error recovery
+ classes, and do not exhaustively describe all other aspects/cases.
+ Examples of this approach are:
+
+
+ - Handling for only certain Opcode types is shown.
+
+ - Only certain reason codes (e.g., Recovery in Logout command)
+ are outlined.
+
+ - Resultant cases, such as recovery of Synchronization on a
+ header digest error are considered out-of-scope in these
+ algorithms. In this particular example, a header digest error
+ may lead to connection recovery if some type of sync and
+ steering layer is not implemented.
+
+ These algorithms strive to convey the iSCSI error recovery concepts
+ in the simplest terms, and are not designed to be optimal.
+
+E.1. General Data Structure and Procedure Description
+
+ This section defines the procedures and data structures that are
+ commonly used by all the error recovery algorithms. The structures
+ may not be the exhaustive representations of what is required for a
+ typical implementation.
+
+ Data structure definitions -
+ struct TransferContext {
+ int TargetTransferTag;
+ int ExpectedDataSN;
+ };
+
+ struct TCB { /* task control block */
+ Boolean SoFarInOrder;
+ int ExpectedDataSN; /* used for both R2Ts, and Data */
+ int MissingDataSNList[MaxMissingDPDU];
+ Boolean FbitReceived;
+ Boolean StatusXferd;
+ Boolean CurrentlyAllegiant;
+ int ActiveR2Ts;
+ int Response;
+ char *Reason;
+
+
+
+Satran, et al. Standards Track [Page 233]
+
+RFC 3720 iSCSI April 2004
+
+
+ struct TransferContext
+ TransferContextList[MaxOutStandingR2T];
+ int InitiatorTaskTag;
+ int CmdSN;
+
+ int SNACK_Tag;
+
+ };
+
+ struct Connection {
+ struct Session SessionReference;
+ Boolean SoFarInOrder;
+ int CID;
+ int State;
+
+ int CurrentTimeout;
+ int ExpectedStatSN;
+ int MissingStatSNList[MaxMissingSPDU];
+ Boolean PerformConnectionCleanup;
+ };
+
+ struct Session {
+ int NumConnections;
+ int CmdSN;
+ int Maxconnections;
+ int ErrorRecoveryLevel;
+ struct iSCSIEndpoint OtherEndInfo;
+ struct Connection ConnectionList[MaxSupportedConns];
+ };
+
+ Procedure descriptions -
+ Receive-a-In-PDU(transport connection, inbound PDU);
+ check-basic-validity(inbound PDU);
+ Start-Timer(timeout handler, argument, timeout value);
+ Build-And-Send-Reject(transport connection, bad PDU, reason code);
+
+E.2. Within-command Error Recovery Algorithms
+
+E.2.1. Procedure Descriptions
+
+ Recover-Data-if-Possible(last required DataSN, task control
+ block);
+ Build-And-Send-DSnack(task control block);
+ Build-And-Send-RDSnack(task control block);
+ Build-And-Send-Abort(task control block);
+ SCSI-Task-Completion(task control block);
+ Build-And-Send-A-Data-Burst(transport connection, data-descriptor,
+ task control block);
+
+
+
+Satran, et al. Standards Track [Page 234]
+
+RFC 3720 iSCSI April 2004
+
+
+ Build-And-Send-R2T(transport connection, data-descriptor,
+ task control block);
+ Build-And-Send-Status(transport connection, task control block);
+ Transfer-Context-Timeout-Handler(transfer context);
+
+
+ Notes:
+
+ - One procedure used in this section: Handle-Status-SNACK-
+ request is defined in Within-connection recovery algorithms.
+
+ - The Response processing pseudo-code, shown in the target
+ algorithms, applies to all solicited PDUs that carry StatSN -
+ SCSI Response, Text Response etc.
+
+E.2.2. Initiator Algorithms
+
+Recover-Data-if-Possible(LastRequiredDataSN, TCB)
+{
+ if (operational ErrorRecoveryLevel > 0) {
+ if (# of missing PDUs is trackable) {
+ Note the missing DataSNs in TCB.
+ if (the task spanned a change in
+ MaxRecvDataSegmentLength) {
+ if (TCB.StatusXferd is TRUE)
+ drop the status PDU;
+ Build-And-Send-RDSnack(TCB);
+ } else {
+ Build-And-Send-DSnack(TCB);
+ }
+ } else {
+ TCB.Reason = "Protocol service CRC error";
+ }
+ } else {
+ TCB.Reason = "Protocol service CRC error";
+ }
+ if (TCB.Reason == "Protocol service CRC error") {
+ Clear the missing PDU list in the TCB.
+ if (TCB.StatusXferd is not TRUE)
+ Build-And-Send-Abort(TCB);
+ }
+}
+
+Receive-a-In-PDU(Connection, CurrentPDU)
+{
+ check-basic-validity(CurrentPDU);
+ if (Header-Digest-Bad) discard, return;
+ Retrieve TCB for CurrentPDU.InitiatorTaskTag.
+
+
+
+Satran, et al. Standards Track [Page 235]
+
+RFC 3720 iSCSI April 2004
+
+
+ if ((CurrentPDU.type == Data)
+ or (CurrentPDU.type = R2T)) {
+ if (Data-Digest-Bad for Data) {
+ send-data-SNACK = TRUE;
+ LastRequiredDataSN = CurrentPDU.DataSN;
+ } else {
+ if (TCB.SoFarInOrder = TRUE) {
+ if (current DataSN is expected) {
+ Increment TCB.ExpectedDataSN.
+ } else {
+
+ TCB.SoFarInOrder = FALSE;
+ send-data-SNACK = TRUE;
+ }
+ } else {
+ if (current DataSN was considered missing) {
+ remove current DataSN from missing PDU list.
+ } else if (current DataSN is higher than expected)
+{
+ send-data-SNACK = TRUE;
+ } else {
+ discard, return;
+ }
+ Adjust TCB.ExpectedDataSN if appropriate.
+ }
+ LastRequiredDataSN = CurrentPDU.DataSN - 1;
+ }
+ if (send-data-SNACK is TRUE and
+ task is not already considered failed) {
+ Recover-Data-if-Possible(LastRequiredDataSN, TCB);
+ }
+ if (missing data PDU list is empty) {
+ TCB.SoFarInOrder = TRUE;
+ }
+ if (CurrentPDU.type == R2T) {
+ Increment ActiveR2Ts for this task.
+
+ Create a data-descriptor for the data burst.
+ Build-And-Send-A-Data-Burst(Connection, data-descriptor,
+
+ TCB);
+ }
+ } else if (CurrentPDU.type == Response) {
+ if (Data-Digest-Bad) {
+ send-status-SNACK = TRUE;
+ } else {
+ TCB.StatusXferd = TRUE;
+ Store the status information in TCB.
+
+
+
+Satran, et al. Standards Track [Page 236]
+
+RFC 3720 iSCSI April 2004
+
+
+ if (ExpDataSN does not match) {
+ TCB.SoFarInOrder = FALSE;
+ Recover-Data-if-Possible(current DataSN, TCB);
+ }
+ if (missing data PDU list is empty) {
+ TCB.SoFarInOrder = TRUE;
+ }
+ }
+ } else { /* REST UNRELATED TO WITHIN-COMMAND-RECOVERY, NOT
+ SHOWN */
+ }
+ if ((TCB.SoFarInOrder == TRUE) and
+ (TCB.StatusXferd == TRUE)) {
+ SCSI-Task-Completion(TCB);
+ }
+}
+
+E.2.3. Target Algorithms
+
+Receive-a-In-PDU(Connection, CurrentPDU)
+{
+ check-basic-validity(CurrentPDU);
+ if (Header-Digest-Bad) discard, return;
+ Retrieve TCB for CurrentPDU.InitiatorTaskTag.
+ if (CurrentPDU.type == Data) {
+ Retrieve TContext from CurrentPDU.TargetTransferTag;
+ if (Data-Digest-Bad) {
+ Build-And-Send-Reject(Connection, CurrentPDU,
+ Payload-Digest-Error);
+ Note the missing data PDUs in MissingDataRange[].
+ send-recovery-R2T = TRUE;
+ } else {
+ if (current DataSN is not expected) {
+ Note the missing data PDUs in MissingDataRange[].
+ send-recovery-R2T = TRUE;
+ }
+ if (CurrentPDU.Fbit == TRUE) {
+ if (current PDU is solicited) {
+ Decrement TCB.ActiveR2Ts.
+ }
+ if ((current PDU is unsolicited and
+ data received is less than I/O length and
+ data received is less than FirstBurstLength)
+ or (current PDU is solicited and the length of
+ this burst is less than expected)) {
+ send-recovery-R2T = TRUE;
+ Note the missing data in MissingDataRange[].
+ }
+
+
+
+Satran, et al. Standards Track [Page 237]
+
+RFC 3720 iSCSI April 2004
+
+
+ }
+ }
+ Increment TContext.ExpectedDataSN.
+ if (send-recovery-R2T is TRUE and
+ task is not already considered failed) {
+ if (operational ErrorRecoveryLevel > 0) {
+ Increment TCB.ActiveR2Ts.
+ Create a data-descriptor for the data burst
+ from MissingDataRange.
+ Build-And-Send-R2T(Connection, data-descriptor, TCB);
+ } else {
+ if (current PDU is the last unsolicited)
+ TCB.Reason = "Not enough unsolicited data";
+ else
+ TCB.Reason = "Protocol service CRC error";
+ }
+ }
+ if (TCB.ActiveR2Ts == 0) {
+ Build-And-Send-Status(Connection, TCB);
+ }
+ } else if (CurrentPDU.type == SNACK) {
+ snack-failure = FALSE;
+ if (operational ErrorRecoveryLevel > 0) {
+ if (CurrentPDU.type == Data/R2T) {
+ if (the request is satisfiable) {
+
+ if (request for Data) {
+ Create a data-descriptor for the data burst
+ from BegRun and RunLength.
+ Build-And-Send-A-Data-Burst(Connection,
+
+ data-descriptor, TCB);
+ } else { /* R2T */
+ Create a data-descriptor for the data burst
+ from BegRun and RunLength.
+ Build-And-Send-R2T(Connection, data-descriptor,
+ TCB);
+ }
+ } else {
+ snack-failure = TRUE;
+ }
+ } else if (CurrentPDU.type == status) {
+ Handle-Status-SNACK-request(Connection, CurrentPDU);
+ } else if (CurrentPDU.type == DataACK) {
+ Consider all data upto CurrentPDU.BegRun as
+ acknowledged.
+ Free up the retransmission resources for that data.
+ } else if (CurrentPDU.type == R-Data SNACK) {
+
+
+
+Satran, et al. Standards Track [Page 238]
+
+RFC 3720 iSCSI April 2004
+
+
+ Create a data descriptor for a data burst covering
+ all unacknowledged data.
+ Build-And-Send-A-Data-Burst(Connection,
+ data-descriptor, TCB);
+ TCB.SNACK_Tag = CurrentPDU.SNACK_Tag;
+ if (there's no more data to send) {
+ Build-And-Send-Status(Connection, TCB);
+ }
+ }
+ } else { /* operational ErrorRecoveryLevel = 0 */
+ snack-failure = TRUE;
+
+ }
+ if (snack-failure == TRUE) {
+ Build-And-Send-Reject(Connection, CurrentPDU,
+ SNACK-Reject);
+ if (TCB.StatusXferd != TRUE) {
+ TCB.Reason = "SNACK Rejected";
+ Build-And-Send-Status(Connection, TCB);
+ }
+ }
+
+ } else { /* REST UNRELATED TO WITHIN-COMMAND-RECOVERY, NOT SHOWN */
+ }
+}
+
+Transfer-Context-Timeout-Handler(TContext)
+{
+ Retrieve TCB and Connection from TContext.
+ Decrement TCB.ActiveR2Ts.
+ if (operational ErrorRecoveryLevel > 0 and
+ task is not already considered failed) {
+ Note the missing data PDUs in MissingDataRange[].
+ Create a data-descriptor for the data burst
+ from MissingDataRange[].
+ Build-And-Send-R2T(Connection, data-descriptor, TCB);
+ } else {
+ TCB.Reason = "Protocol service CRC error";
+ if (TCB.ActiveR2Ts = 0) {
+ Build-And-Send-Status(Connection, TCB);
+ }
+ }
+}
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 239]
+
+RFC 3720 iSCSI April 2004
+
+
+E.3. Within-connection Recovery Algorithms
+
+E.3.1. Procedure Descriptions
+
+Procedure descriptions:
+Recover-Status-if-Possible(transport connection,
+ currently received PDU);
+Evaluate-a-StatSN(transport connection, currently received PDU);
+Retransmit-Command-if-Possible(transport connection, CmdSN);
+Build-And-Send-SSnack(transport connection);
+Build-And-Send-Command(transport connection, task control block);
+Command-Acknowledge-Timeout-Handler(task control block);
+Status-Expect-Timeout-Handler(transport connection);
+Build-And-Send-Nop-Out(transport connection);
+Handle-Status-SNACK-request(transport connection, status SNACK
+PDU);
+Retransmit-Status-Burst(status SNACK, task control block);
+Is-Acknowledged(beginning StatSN, run length);
+
+Implementation-specific tunables:
+InitiatorProactiveSNACKEnabled
+
+ Notes:
+
+ - The initiator algorithms only deal with unsolicited Nop-In PDUs
+ for generating status SNACKs. A solicited Nop-In PDU has an
+ assigned StatSN, which, when out of order, could trigger the
+ out of order StatSN handling in Within-command algorithms,
+ again leading to Recover-Status-if-Possible.
+
+
+ - The pseudo-code shown may result in the retransmission of
+ unacknowledged commands in more cases than necessary. This
+ will not, however, affect the correctness of the operation
+ because the target is required to discard the duplicate CmdSNs.
+
+ - The procedure Build-And-Send-Async is defined in the Connection
+ recovery algorithms.
+
+ - The procedure Status-Expect-Timeout-Handler describes how
+ initiators may proactively attempt to retrieve the Status if
+ they so choose. This procedure is assumed to be triggered much
+ before the standard ULP timeout.
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 240]
+
+RFC 3720 iSCSI April 2004
+
+
+E.3.2. Initiator Algorithms
+
+Recover-Status-if-Possible(Connection, CurrentPDU)
+{
+ if ((Connection.state == LOGGED_IN) and
+ connection is not already considered failed) {
+ if (operational ErrorRecoveryLevel > 0) {
+ if (# of missing PDUs is trackable) {
+ Note the missing StatSNs in Connection
+ that were not already requested with SNACK;
+ Build-And-Send-SSnack(Connection);
+ } else {
+ Connection.PerformConnectionCleanup = TRUE;
+ }
+ } else {
+ Connection.PerformConnectionCleanup = TRUE;
+ }
+ if (Connection.PerformConnectionCleanup == TRUE) {
+ Start-Timer(Connection-Cleanup-Handler, Connection, 0);
+ }
+ }
+}
+
+Retransmit-Command-if-Possible(Connection, CmdSN)
+{
+
+ if (operational ErrorRecoveryLevel > 0) {
+ Retrieve the InitiatorTaskTag, and thus TCB for the CmdSN.
+ Build-And-Send-Command(Connection, TCB);
+ }
+}
+
+Evaluate-a-StatSN(Connection, CurrentPDU)
+{
+ send-status-SNACK = FALSE;
+ if (Connection.SoFarInOrder == TRUE) {
+ if (current StatSN is the expected) {
+ Increment Connection.ExpectedStatSN.
+ } else {
+ Connection.SoFarInOrder = FALSE;
+ send-status-SNACK = TRUE;
+ }
+ } else {
+ if (current StatSN was considered missing) {
+ remove current StatSN from the missing list.
+ } else {
+ if (current StatSN is higher than expected){
+ send-status-SNACK = TRUE;
+
+
+
+Satran, et al. Standards Track [Page 241]
+
+RFC 3720 iSCSI April 2004
+
+
+ } else {
+ send-status-SNACK = FALSE;
+ discard the PDU;
+ }
+ }
+ Adjust Connection.ExpectedStatSN if appropriate.
+ if (missing StatSN list is empty) {
+ Connection.SoFarInOrder = TRUE;
+ }
+ }
+ return send-status-SNACK;
+}
+
+Receive-a-In-PDU(Connection, CurrentPDU)
+{
+ check-basic-validity(CurrentPDU);
+ if (Header-Digest-Bad) discard, return;
+ Retrieve TCB for CurrentPDU.InitiatorTaskTag.
+ if (CurrentPDU.type == Nop-In) {
+ if (the PDU is unsolicited) {
+ if (current StatSN is not expected) {
+ Recover-Status-if-Possible(Connection,
+ CurrentPDU);
+ }
+ if (current ExpCmdSN is not Session.CmdSN) {
+ Retransmit-Command-if-Possible(Connection,
+ CurrentPDU.ExpCmdSN);
+ }
+ }
+ } else if (CurrentPDU.type == Reject) {
+ if (it is a data digest error on immediate data) {
+ Retransmit-Command-if-Possible(Connection,
+ CurrentPDU.BadPDUHeader.CmdSN);
+ }
+ } else if (CurrentPDU.type == Response) {
+ send-status-SNACK = Evaluate-a-StatSN(Connection,
+ CurrentPDU);
+ if (send-status-SNACK == TRUE)
+ Recover-Status-if-Possible(Connection, CurrentPDU);
+ } else { /* REST UNRELATED TO WITHIN-CONNECTION-RECOVERY,
+ * NOT SHOWN */
+ }
+}
+
+Command-Acknowledge-Timeout-Handler(TCB)
+{
+ Retrieve the Connection for TCB.
+ Retransmit-Command-if-Possible(Connection, TCB.CmdSN);
+
+
+
+Satran, et al. Standards Track [Page 242]
+
+RFC 3720 iSCSI April 2004
+
+
+}
+
+Status-Expect-Timeout-Handler(Connection)
+{
+ if (operational ErrorRecoveryLevel > 0) {
+ Build-And-Send-Nop-Out(Connection);
+ } else if (InitiatorProactiveSNACKEnabled){
+ if ((Connection.state == LOGGED_IN) and
+ connection is not already considered failed) {
+ Build-And-Send-SSnack(Connection);
+ }
+ }
+}
+
+E.3.3. Target Algorithms
+
+Handle-Status-SNACK-request(Connection, CurrentPDU)
+{
+ if (operational ErrorRecoveryLevel > 0) {
+ if (request for an acknowledged run) {
+ Build-And-Send-Reject(Connection, CurrentPDU,
+ Protocol-Error);
+ } else if (request for an untransmitted run) {
+ discard, return;
+ } else {
+ Retransmit-Status-Burst(CurrentPDU, TCB);
+ } else {
+ Build-And-Send-Async(Connection, DroppedConnection,
+ DefaultTime2Wait,
+ DefaultTime2Retain);
+ }
+}
+
+E.4. Connection Recovery Algorithms
+
+E.4.1. Procedure Descriptions
+
+Build-And-Send-Async(transport connection, reason code,
+ minimum time, maximum time);
+Pick-A-Logged-In-Connection(session);
+Build-And-Send-Logout(transport connection, logout connection
+ identifier, reason code);
+PerformImplicitLogout(transport connection, logout connection
+ identifier, target information);
+PerformLogin(transport connection, target information);
+CreateNewTransportConnection(target information);
+Build-And-Send-Command(transport connection, task control block);
+Connection-Cleanup-Handler(transport connection);
+
+
+
+Satran, et al. Standards Track [Page 243]
+
+RFC 3720 iSCSI April 2004
+
+
+Connection-Resource-Timeout-Handler(transport connection);
+Quiesce-And-Prepare-for-New-Allegiance(session, task control
+block);
+Build-And-Send-Logout-Response(transport connection,
+ CID of connection in recovery, reason
+code);
+Build-And-Send-TaskMgmt-Response(transport connection,
+ task mgmt command PDU, response code);
+Establish-New-Allegiance(task control block, transport
+connection);
+Schedule-Command-To-Continue(task control block);
+
+Notes:
+ - Transport exception conditions, such as unexpected connection
+ termination, connection reset, and hung connection while the
+ connection is in the full-feature phase, are all assumed to be
+ asynchronously signaled to the iSCSI layer using the
+ Transport_Exception_Handler procedure.
+
+E.4.2. Initiator Algorithms
+
+ Receive-a-In-PDU(Connection, CurrentPDU) {
+ check-basic-validity(CurrentPDU);
+ if (Header-Digest-Bad) discard, return;
+
+ Retrieve TCB from CurrentPDU.InitiatorTaskTag.
+ if (CurrentPDU.type == Async) {
+ if (CurrentPDU.AsyncEvent == ConnectionDropped) {
+ Retrieve the AffectedConnection for
+ CurrentPDU.Parameter1.
+ AffectedConnection.CurrentTimeout =
+ CurrentPDU.Parameter3;
+ AffectedConnection.State = CLEANUP_WAIT;
+ Start-Timer(Connection-Cleanup-Handler,
+ AffectedConnection,
+ CurrentPDU.Parameter2);
+ } else if (CurrentPDU.AsyncEvent == LogoutRequest)) {
+ AffectedConnection = Connection;
+ AffectedConnection.State = LOGOUT_REQUESTED;
+ AffectedConnection.PerformConnectionCleanup = TRUE;
+ AffectedConnection.CurrentTimeout =
+ CurrentPDU.Parameter3;
+ Start-Timer(Connection-Cleanup-Handler,
+ AffectedConnection, 0);
+ } else if (CurrentPDU.AsyncEvent == SessionDropped)) {
+ for (each Connection) {
+ Connection.State = CLEANUP_WAIT;
+ Connection.CurrentTimeout = CurrentPDU.Parameter3;
+
+
+
+Satran, et al. Standards Track [Page 244]
+
+RFC 3720 iSCSI April 2004
+
+
+ Start-Timer(Connection-Cleanup-Handler,
+ Connection, CurrentPDU.Parameter2);
+ }
+ Session.state = FAILED;
+ }
+
+ } else if (CurrentPDU.type == LogoutResponse) {
+ Retrieve the CleanupConnection for CurrentPDU.CID.
+ if (CurrentPDU.Response = failure) {
+ CleanupConnection.State = CLEANUP_WAIT;
+ } else {
+ CleanupConnection.State = FREE;
+ }
+ } else if (CurrentPDU.type == LoginResponse) {
+ if (this is a response to an implicit Logout) {
+ Retrieve the CleanupConnection.
+ if (successful) {
+ CleanupConnection.State = FREE;
+ Connection.State = LOGGED_IN;
+ } else {
+ CleanupConnection.State = CLEANUP_WAIT;
+ DestroyTransportConnection(Connection);
+ }
+ }
+ } else { /* REST UNRELATED TO CONNECTION-RECOVERY,
+
+ * NOT SHOWN */
+ }
+ if (CleanupConnection.State == FREE) {
+ for (each command that was active on CleanupConnection) {
+ /* Establish new connection allegiance */
+ NewConnection = Pick-A-Logged-In-Connection(Session);
+ Build-And-Send-Command(NewConnection, TCB);
+ }
+ } }
+
+ Connection-Cleanup-Handler(Connection) {
+ Retrieve Session from Connection.
+ if (Connection can still exchange iSCSI PDUs) {
+ NewConnection = Connection;
+ } else {
+ Start-Timer(Connection-Resource-Timeout-Handler,
+ Connection, Connection.CurrentTimeout);
+ if (there are other logged-in connections) {
+ NewConnection = Pick-A-Logged-In-
+ Connection(Session);
+ } else {
+ NewConnection =
+
+
+
+Satran, et al. Standards Track [Page 245]
+
+RFC 3720 iSCSI April 2004
+
+
+ CreateTransportConnection(Session.OtherEndInfo);
+ Initiate an implicit Logout on NewConnection for
+ Connection.CID.
+ return;
+ }
+ }
+ Build-And-Send-Logout(NewConnection, Connection.CID,
+ RecoveryRemove); }
+
+ Transport_Exception_Handler(Connection) {
+ Connection.PerformConnectionCleanup = TRUE;
+ if (the event is an unexpected transport disconnect) {
+ Connection.State = CLEANUP_WAIT;
+
+ Connection.CurrentTimeout = DefaultTime2Retain;
+ Start-Timer(Connection-Cleanup-Handler, Connection,
+ DefaultTime2Wait);
+
+ } else {
+ Connection.State = FREE;
+ } }
+
+E.4.3. Target Algorithms
+
+ Receive-a-In-PDU(Connection, CurrentPDU)
+ {
+ check-basic-validity(CurrentPDU);
+ if (Header-Digest-Bad) discard, return;
+ else if (Data-Digest-Bad) {
+ Build-And-Send-Reject(Connection, CurrentPDU,
+ Payload-Digest-Error);
+ discard, return;
+ }
+ Retrieve TCB and Session.
+ if (CurrentPDU.type == Logout) {
+ if (CurrentPDU.ReasonCode = RecoveryRemove) {
+ Retrieve the CleanupConnection from CurrentPDU.CID).
+ for (each command active on CleanupConnection) {
+ Quiesce-And-Prepare-for-New-Allegiance(Session,
+ TCB);
+ TCB.CurrentlyAllegiant = FALSE;
+ }
+ Cleanup-Connection-State(CleanupConnection);
+ if ((quiescing successful) and (cleanup successful)) {
+ Build-And-Send-Logout-Response(Connection,
+ CleanupConnection.CID, Success);
+ } else {
+ Build-And-Send-Logout-Response(Connection,
+
+
+
+Satran, et al. Standards Track [Page 246]
+
+RFC 3720 iSCSI April 2004
+
+
+ CleanupConnection.CID, Failure);
+ }
+ }
+ } else if ((CurrentPDU.type == Login) and
+ operational ErrorRecoveryLevel == 2) {
+ Retrieve the CleanupConnection from CurrentPDU.CID).
+ for (each command active on CleanupConnection) {
+ Quiesce-And-Prepare-for-New-Allegiance(Session, TCB);
+ TCB.CurrentlyAllegiant = FALSE;
+ }
+ Cleanup-Connection-State(CleanupConnection);
+ if ((quiescing successful) and (cleanup successful)) {
+ Continue with the rest of the Login processing;
+ } else {
+ Build-And-Send-Login-Response(Connection,
+ CleanupConnection.CID, Target Error);
+ }
+ }
+
+ } else if (CurrentPDU.type == TaskManagement) {
+ if (CurrentPDU.function == "TaskReassign") {
+ if (Session.ErrorRecoveryLevel < 2) {
+ Build-And-Send-TaskMgmt-Response(Connection,
+ CurrentPDU, "Allegiance reassignment
+ not supported");
+ } else if (task is not found) {
+ Build-And-Send-TaskMgmt-Response(Connection,
+ CurrentPDU, "Task not in task set");
+ } else if (task is currently allegiant) {
+ Build-And-Send-TaskMgmt-Response(Connection,
+ CurrentPDU, "Task still allegiant");
+ } else {
+ Establish-New-Allegiance(TCB, Connection);
+ TCB.CurrentlyAllegiant = TRUE;
+ Schedule-Command-To-Continue(TCB);
+ }
+ }
+ } else { /* REST UNRELATED TO CONNECTION-RECOVERY,
+ * NOT SHOWN */
+ }
+ }
+
+ Transport_Exception_Handler(Connection)
+ {
+ Connection.PerformConnectionCleanup = TRUE;
+ if (the event is an unexpected transport disconnect) {
+ Connection.State = CLEANUP_WAIT;
+ Start-Timer(Connection-Resource-Timeout-Handler,
+
+
+
+Satran, et al. Standards Track [Page 247]
+
+RFC 3720 iSCSI April 2004
+
+
+ Connection,
+
+ (DefaultTime2Wait+DefaultTime2Retain));
+ if (this Session has full-feature phase connections
+ left)
+ {
+ DifferentConnection =
+ Pick-A-Logged-In-Connection(Session);
+ Build-And-Send-Async(DifferentConnection,
+ DroppedConnection, DefaultTime2Wait,
+ DefaultTime2Retain);
+ }
+ } else {
+ Connection.State = FREE;
+ }
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 248]
+
+RFC 3720 iSCSI April 2004
+
+
+Appendix F. Clearing Effects of Various Events on Targets
+
+F.1. Clearing Effects on iSCSI Objects
+
+ The following tables describe the target behavior on receiving the
+ events specified in the rows of the table. The second table is an
+ extension of the first table and defines clearing actions for more
+ objects on the same events. The legend is:
+
+ Y = Yes (cleared/discarded/reset on the event specified in the
+ row). Unless otherwise noted, the clearing action is only
+ applicable for the issuing initiator port.
+ N = No (not affected on the event specified in the row, i.e.,
+ stays at previous value).
+ NA = Not Applicable or Not Defined.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 249]
+
+RFC 3720 iSCSI April 2004
+
+
+ +-----+-----+-----+-----+-----+
+ |IT(1)|IC(2)|CT(5)|ST(6)|PP(7)|
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection failure(8)|Y |Y |N |N |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection state |NA |NA |Y |N |NA |
+ |timeout (9) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session timeout/ |Y |Y |Y |Y |Y(14)|
+ |closure/reinstatement| | | | | |
+ |(10) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session continuation |NA |NA |N(11)|N |NA |
+ |(12) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |successful connection|Y |Y |Y |N |Y(13)|
+ |close logout | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session failure (18) |Y |Y |N |N |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |successful recovery |Y |Y |N |N |Y(13)|
+ |Logout | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |failed Logout |Y |Y |N |N |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection Login |NA |NA |NA |Y(15)|NA |
+ |(leading) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection Login |NA |NA |N(11)|N |Y |
+ |(non-leading) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |target cold reset(16)|Y |Y |Y |Y |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |target warm reset(16)|Y |Y |Y |Y |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |LU reset(19) |Y |Y |Y |Y |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+ |powercycle(16) |Y |Y |Y |Y |Y |
+ +---------------------+-----+-----+-----+-----+-----+
+
+ 1. Incomplete TTTs - Target Transfer Tags on which the target is
+ still expecting PDUs to be received. Examples include TTTs received
+ via R2T, NOP-IN, etc.
+
+ 2. Immediate Commands - immediate commands, but waiting for
+ execution on a target. For example, Abort Task Set.
+
+
+
+
+
+Satran, et al. Standards Track [Page 250]
+
+RFC 3720 iSCSI April 2004
+
+
+ 5. Connection Tasks - tasks that are active on the iSCSI connection
+ in question.
+
+ 6. Session Tasks - tasks that are active on the entire iSCSI
+ session. A union of "connection tasks" on all participating
+ connections.
+
+ 7. Partial PDUs (if any) - PDUs that are partially sent and waiting
+ for transport window credit to complete the transmission.
+
+ 8. Connection failure is a connection exception condition - one of
+ the transport connections shutdown, transport connections reset, or
+ transport connections timed out, which abruptly terminated the iSCSI
+ full-feature phase connection. A connection failure always takes the
+ connection state machine to the CLEANUP_WAIT state.
+
+ 9. Connection state timeout happens if a connection spends more time
+ that agreed upon during Login negotiation in the CLEANUP_WAIT state,
+ and this takes the connection to the FREE state (M1 transition in
+ connection cleanup state diagram).
+
+ 10. These are defined in Section 5.3.5 Session Reinstatement,
+ Closure, and Timeout.
+
+ 11. This clearing effect is "Y" only if it is a connection
+ reinstatement and the operational ErrorRecoveryLevel is less than 2.
+
+ 12. Session continuation is defined in Section 5.3.6 Session
+ Continuation and Failure.
+
+ 13. This clearing effect is only valid if the connection is being
+ logged out on a different connection and when the connection being
+ logged out on the target may have some partial PDUs pending to be
+ sent. In all other cases, the effect is "NA".
+
+ 14. This clearing effect is only valid for a "close the session"
+ logout in a multi-connection session. In all other cases, the effect
+ is "NA".
+
+ 15. Only applicable if this leading connection login is a session
+ reinstatement. If this is not the case, it is "NA".
+
+ 16. This operation affects all logged-in initiators.
+
+ 18. Session failure is defined in Section 5.3.6 Session Continuation
+ and Failure.
+
+
+
+
+
+Satran, et al. Standards Track [Page 251]
+
+RFC 3720 iSCSI April 2004
+
+
+ 19. This operation affects all logged-in initiators and the clearing
+ effects are only applicable to the LU being reset.
+
+ +-----+-----+-----+-----+-----+
+ |DC(1)|DD(2)|SS(3)|CS(4)|DS(5)|
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection failure |N |Y |N |N |N |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection state |Y |NA |Y |N |NA |
+ |timeout | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session timeout/ |Y |Y |Y(7) |Y |NA |
+ |closure/reinstatement| | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session continuation |N(11)|NA*12|NA |N |NA*13|
+ +---------------------+-----+-----+-----+-----+-----+
+ |successful connection|Y |Y |Y |N |NA |
+ |close Logout | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |session failure |N |Y |N |N |N |
+ +---------------------+-----+-----+-----+-----+-----+
+ |successful recovery |Y |Y |Y |N |N |
+ |Logout | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |failed Logout |N |Y(9) |N |N |N |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection Login |NA |NA |N(8) |N(8) |NA |
+ |(leading | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |connection Login |N(11)|NA*12|N(8) |N |NA*13|
+ |(non-leading) | | | | | |
+ +---------------------+-----+-----+-----+-----+-----+
+ |target cold reset |Y |Y |Y |Y(10)|NA |
+ +---------------------+-----+-----+-----+-----+-----+
+ |target warm reset |Y |Y |N |N |NA |
+ +---------------------+-----+-----+-----+-----+-----+
+ |LU reset |N |Y |N |N |N |
+ +---------------------+-----+-----+-----+-----+-----+
+ |powercycle |Y |Y |Y |Y(10)|NA |
+ +---------------------+-----+-----+-----+-----+-----+
+
+ 1. Discontiguous Commands - commands allegiant to the connection in
+ question and waiting to be reordered in the iSCSI layer. All "Y"s in
+ this column assume that the task causing the event (if indeed the
+ event is the result of a task) is issued as an immediate command,
+ because the discontiguities can be ahead of the task.
+
+
+
+
+
+Satran, et al. Standards Track [Page 252]
+
+RFC 3720 iSCSI April 2004
+
+
+ 2. Discontiguous Data - data PDUs received for the task in question
+ and waiting to be reordered due to prior discontiguities in DataSN.
+
+ 3. StatSN
+
+ 4. CmdSN
+
+ 5. DataSN
+
+ 7. It clears the StatSN on all the connections.
+
+ 8. This sequence number is instantiated on this event.
+
+ 9. A logout failure drives the connection state machine to the
+ CLEANUP_WAIT state, similar to the connection failure event. Hence,
+ it has a similar effect on this and several other protocol aspects.
+
+ 10. This is cleared by virtue of the fact that all sessions with all
+ initiators are terminated.
+
+ 11. This clearing effect is "Y" if it is a connection reinstatement.
+
+ 12. This clearing effect is "Y" only if it is a connection
+ reinstatement and the operational ErrorRecoveryLevel is 2.
+
+ 13. This clearing effect is "N" only if it is a connection
+ reinstatement and the operational ErrorRecoveryLevel is 2.
+
+F.2. Clearing Effects on SCSI Objects
+
+ The only iSCSI protocol action that can effect clearing actions on
+ SCSI objects is the "I_T nexus loss" notification (Section 4.3.5.1
+ Loss of Nexus notification). [SPC3] describes the clearing effects
+ of this notification on a variety of SCSI attributes. In addition,
+ SCSI standards documents (such as [SAM2] and [SBC]) define additional
+ clearing actions that may take place for several SCSI objects on SCSI
+ events such as LU resets and power-on resets.
+
+ Since iSCSI defines a target cold reset as a protocol-equivalent to a
+ target power-cycle, the iSCSI target cold reset must also be
+ considered as the power-on reset event in interpreting the actions
+ defined in the SCSI standards.
+
+ When the iSCSI session is reconstructed (between the same SCSI ports
+ with the same nexus identifier) reestablishing the same I_T nexus,
+ all SCSI objects that are defined to not clear on the "I_T nexus
+ loss" notification event, such as persistent reservations, are
+ automatically associated to this new session.
+
+
+
+Satran, et al. Standards Track [Page 253]
+
+RFC 3720 iSCSI April 2004
+
+
+Acknowledgements
+
+ This protocol was developed by a design team that, in addition to the
+ authors, included Daniel Smith, Ofer Biran, Jim Hafner and John
+ Hufferd (IBM), Mark Bakke (Cisco), Randy Haagens (HP), Matt Wakeley
+ (Agilent, now Sierra Logic), Luciano Dalle Ore (Quantum), and Paul
+ Von Stamwitz (Adaptec, now TrueSAN Networks).
+
+ Furthermore, a large group of people contributed to this work through
+ their review, comments, and valuable insights. We are grateful to
+ all of them. We especially thank those people who found the time and
+ patience to take part in our weekly phone conferences and
+ intermediate meetings in Almaden and Haifa, which helped shape this
+ document: Prasenjit Sarkar, Meir Toledano, John Dowdy, Steve Legg,
+ Alain Azagury (IBM), Dave Nagle (CMU), David Black (EMC), John Matze
+ (Veritas - now Okapi Software), Steve DeGroote, Mark Schrandt
+ (Cisco), Gabi Hecht (Gadzoox), Robert Snively and Brian Forbes
+ (Brocade), Nelson Nachum (StorAge), and Uri Elzur (Broadcom). Many
+ others helped edit and improve this document within the IPS working
+ group. We are especially grateful to David Robinson and Raghavendra
+ Rao (Sun), Charles Monia, Joshua Tseng (Nishan), Somesh Gupta
+ (Silverback), Michael Krause, Pierre Labat, Santosh Rao, Matthew
+ Burbridge, Bob Barry, Robert Elliott, Nick Martin (HP), Stephen
+ Bailey (Sandburst), Steve Senum, Ayman Ghanem, Dave Peterson (Cisco),
+ Barry Reinhold (Trebia Networks), Bob Russell (UNH), Eddy Quicksall
+ (iVivity, Inc.), Bill Lynn and Michael Fischer (Adaptec), Vince
+ Cavanna, Pat Thaler (Agilent), Jonathan Stone (Stanford), Luben
+ Tuikov (Splentec), Paul Koning (EqualLogic), Michael Krueger
+ (Windriver), Martins Krikis (Intel), Doug Otis (Sanlight), John
+ Marberg (IBM), Robert Griswold and Bill Moody (Crossroads), Bill
+ Studenmund (Wasabi Systems), Elizabeth Rodriguez (Brocade) and Yaron
+ Klein (Sanrad). The recovery chapter was enhanced with the help of
+ Stephen Bailey (Sandburst), Somesh Gupta (Silverback), and Venkat
+ Rangan (Rhapsody Networks). Eddy Quicksall contributed some examples
+ and began the Definitions section. Michael Fischer and Bob Barry
+ started the Acronyms section. Last, but not least, we thank Ralph
+ Weber for keeping us in line with T10 (SCSI) standardization.
+
+ We would like to thank Steve Hetzler for his unwavering support and
+ for coming up with such a good name for the protocol, and Micky
+ Rodeh, Jai Menon, Clod Barrera, and Andy Bechtolsheim for helping
+ make this work happen.
+
+ In addition to this document, we recommend you acquaint yourself with
+ the following in order to get a full understanding of the iSCSI
+ specification: "iSCSI Naming & Discovery"[RFC3721], "Bootstrapping
+ Clients using the iSCSI Protocol" [BOOT], "Securing Block Storage
+ Protocols over IP" [RFC3723] documents, "iSCSI Requirements and
+
+
+
+Satran, et al. Standards Track [Page 254]
+
+RFC 3720 iSCSI April 2004
+
+
+ Design Considerations" [RFC3347] and "SCSI Command Ordering
+ Considerations with iSCSI" [CORD].
+
+ The "iSCSI Naming & Discovery" document is authored by:
+
+ Mark Bakke (Cisco), Jim Hafner, John Hufferd, Kaladhar Voruganti
+ (IBM), and Marjorie Krueger (HP).
+
+ The "Bootstrapping Clients using the iSCSI Protocol" document is
+ authored by:
+
+ Prasenjit Sarkar (IBM), Duncan Missimer (HP), and Costa
+ Sapuntzakis (Cisco).
+
+ The "Securing Block Storage Protocols over IP" document is authored
+ by:
+
+ Bernard Aboba (Microsoft), Joshua Tseng (Nishan), Jesse Walker
+ (Intel), Venkat Rangan (Rhapsody Networks), and Franco
+ Travostino (Nortel Networks).
+
+ The "iSCSI Requirements and Design Considerations" document is
+ authored by:
+
+ Marjorie Krueger, Randy Haagens (HP), Costa Sapuntzakis, and Mark
+ Bakke (Cisco).
+
+ The "SCSI Command Ordering Considerations with iSCSI" document is
+ authored by:
+
+ Mallikarjun Chadalapaka, Rob Elliot (HP)
+
+ We are grateful to all of them for their good work and for helping us
+ correlate this document with the ones they produced.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 255]
+
+RFC 3720 iSCSI April 2004
+
+
+Authors' Addresses
+
+ Julian Satran
+ IBM Research Laboratory in Haifa
+ Haifa University Campus - Mount Carmel
+ Haifa 31905, Israel
+
+ Phone +972.4.829.6264
+ EMail: Julian_Satran@il.ibm.com
+
+
+ Kalman Meth
+ IBM Research Laboratory in Haifa
+ Haifa University Campus - Mount Carmel
+ Haifa 31905, Israel
+
+ Phone +972.4.829.6341
+ EMail: meth@il.ibm.com
+
+
+ Costa Sapuntzakis
+ Stanford University
+ 353 Serra Mall Dr #407
+ Stanford, CA 94305
+
+ Phone: +1.650.723.2458
+ EMail: csapuntz@alum.mit.edu
+
+
+ Efri Zeidner
+ XIV Ltd.
+ 1 Azrieli Center,
+ Tel-Aviv 67021, Israel
+
+ Phone: +972.3.607.4722
+ EMail: efri@xiv.co.il
+
+
+ Mallikarjun Chadalapaka
+ Hewlett-Packard Company
+ 8000 Foothills Blvd.
+ Roseville, CA 95747-5668, USA
+
+ Phone: +1.916.785.5621
+ EMail: cbm@rose.hp.com
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 256]
+
+RFC 3720 iSCSI April 2004
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2004). This document is subject
+ to the rights, licenses and restrictions contained in BCP 78, and
+ except as set forth therein, the authors retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+Satran, et al. Standards Track [Page 257]
+
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SEI-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SEI-2007.pdf
new file mode 100644
index 0000000..4f80e50
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SEI-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SPE-2004.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SPE-2004.pdf
new file mode 100644
index 0000000..22b3aa4
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SPE-2004.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SUN-1999.ps b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SUN-1999.ps
new file mode 100644
index 0000000..22fca8d
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/SUN-1999.ps
@@ -0,0 +1,14251 @@
+%!PS-Adobe-1.0
+%%Creator: setsuko:vss (V.S.Sunderam,216 Fishburne,7275926,2974135)
+%%Title: stdin (ditroff)
+%%CreationDate: Sun Aug 5 09:43:41 1990
+%%EndComments
+% Start of psdit.pro -- prolog for ditroff translator
+% Copyright (c) 1985,1987 Adobe Systems Incorporated. All Rights Reserved.
+% GOVERNMENT END USERS: See Notice file in TranScript library directory
+% -- probably /usr/lib/ps/Notice
+% RCS: $Header: psdit.pro,v 2.2 87/11/17 16:40:42 byron Rel $
+/$DITroff 140 dict def $DITroff begin
+
+%% Psfig additions
+/DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap
+currentlinejoin currentdash currentgray currentmiterlimit ] cvx def
+
+/startFig {
+ /SavedState save def
+ userdict maxlength dict begin
+ currentpoint transform
+
+ DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap
+ setlinewidth setmatrix
+
+ itransform moveto
+
+ /ury exch def
+ /urx exch def
+ /lly exch def
+ /llx exch def
+ /y exch 72 mul resolution div def
+ /x exch 72 mul resolution div def
+
+ currentpoint /cy exch def /cx exch def
+
+ /sx x urx llx sub div def % scaling for x
+ /sy y ury lly sub div def % scaling for y
+
+ sx sy scale % scale by (sx,sy)
+
+ cx sx div llx sub
+ cy sy div ury sub translate
+
+ /DefFigCTM matrix currentmatrix def
+
+ /initmatrix {
+ DefFigCTM setmatrix
+ } def
+ /defaultmatrix {
+ DefFigCTM exch copy
+ } def
+
+ /initgraphics {
+ DocumentInitState setmiterlimit setgray setdash
+ setlinejoin setlinecap setlinewidth setmatrix
+ DefFigCTM setmatrix
+ } def
+
+ /showpage {
+ initgraphics
+ } def
+
+} def
+% Args are llx lly urx ury (in figure coordinates)
+/clipFig {
+ currentpoint 6 2 roll
+ newpath 4 copy
+ 4 2 roll moveto
+ 6 -1 roll exch lineto
+ exch lineto
+ exch lineto
+ closepath clip
+ newpath
+ moveto
+} def
+% doclip, if called, will always be just after a `startfig'
+/doclip { llx lly urx ury clipFig } def
+/endFig {
+ end SavedState restore
+} def
+/globalstart {
+ % Push details about the enviornment on the stack.
+ fontnum fontsize fontslant fontheight firstpage
+ mh my resolution slotno currentpoint
+ pagesave restore gsave
+} def
+/globalend {
+ grestore moveto
+ /slotno exch def /resolution exch def /my exch def
+ /mh exch def /firstpage exch def /fontheight exch def
+ /fontslant exch def /fontsize exch def /fontnum exch def
+ F
+ /pagesave save def
+} def
+
+%% end XMOD additions
+
+/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
+/xi {0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
+ /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
+ /pagesave save def}def
+/PB{save /psv exch def currentpoint translate
+ resolution 72 div dup neg scale 0 0 moveto}def
+/PE{psv restore}def
+/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
+/tan{dup sin exch cos div}bind def
+/point{resolution 72 div mul}bind def
+/dround {transform round exch round exch itransform}bind def
+/xT{/devname exch def}def
+/xr{/mh exch def /my exch def /resolution exch def}def
+/xp{}def
+/xs{docsave restore end}def
+/xt{}def
+/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
+ {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
+/xH{/fontheight exch def F}bind def
+/xS{/fontslant exch def F}bind def
+/s{/fontsize exch def /fontheight fontsize def F}bind def
+/f{/fontnum exch def F}bind def
+/F{fontheight 0 le {/fontheight fontsize def}if
+ fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
+ fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
+ makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}bind def
+/X{exch currentpoint exch pop moveto show}bind def
+/N{3 1 roll moveto show}bind def
+/Y{exch currentpoint pop exch moveto show}bind def
+/S /show load def
+/ditpush{}def/ditpop{}def
+/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}bind def
+/AN{4 2 roll moveto 0 exch ashow}bind def
+/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}bind def
+/AS{0 exch ashow}bind def
+/MX{currentpoint exch pop moveto}bind def
+/MY{currentpoint pop exch moveto}bind def
+/MXY /moveto load def
+/cb{pop}def % action on unknown char -- nothing for now
+/n{}def/w{}def
+/p{pop showpage pagesave restore /pagesave save def}def
+/abspoint{currentpoint exch pop add exch currentpoint pop add exch}def
+/dstroke{currentpoint stroke moveto}bind def
+/Dl{2 copy gsave rlineto stroke grestore rmoveto}bind def
+/arcellipse{oldmat currentmatrix pop
+ currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
+ rad 0 rad -180 180 arc oldmat setmatrix}def
+/Dc{gsave dup /diamv exch def /diamh exch def arcellipse dstroke
+ grestore diamh 0 rmoveto}def
+/De{gsave /diamv exch def /diamh exch def arcellipse dstroke
+ grestore diamh 0 rmoveto}def
+/Da{currentpoint /by exch def /bx exch def /fy exch def /fx exch def
+ /cy exch def /cx exch def /rad cx cx mul cy cy mul add sqrt def
+ /ang1 cy neg cx neg atan def /ang2 fy fx atan def cx bx add cy by add
+ 2 copy rad ang1 ang2 arcn stroke exch fx add exch fy add moveto}def
+/Barray 200 array def % 200 values in a wiggle
+/D~{mark}def
+/D~~{counttomark Barray exch 0 exch getinterval astore /Bcontrol exch def pop
+ /Blen Bcontrol length def Blen 4 ge Blen 2 mod 0 eq and
+ {Bcontrol 0 get Bcontrol 1 get abspoint /Ycont exch def /Xcont exch def
+ Bcontrol 0 2 copy get 2 mul put Bcontrol 1 2 copy get 2 mul put
+ Bcontrol Blen 2 sub 2 copy get 2 mul put
+ Bcontrol Blen 1 sub 2 copy get 2 mul put
+ /Ybi /Xbi currentpoint 3 1 roll def def 0 2 Blen 4 sub
+ {/i exch def
+ Bcontrol i get 3 div Bcontrol i 1 add get 3 div
+ Bcontrol i get 3 mul Bcontrol i 2 add get add 6 div
+ Bcontrol i 1 add get 3 mul Bcontrol i 3 add get add 6 div
+ /Xbi Xcont Bcontrol i 2 add get 2 div add def
+ /Ybi Ycont Bcontrol i 3 add get 2 div add def
+ /Xcont Xcont Bcontrol i 2 add get add def
+ /Ycont Ycont Bcontrol i 3 add get add def
+ Xbi currentpoint pop sub Ybi currentpoint exch pop sub rcurveto
+ }for dstroke}if}def
+end
+/ditstart{$DITroff begin
+ /nfonts 60 def % NFONTS makedev/ditroff dependent!
+ /fonts[nfonts{0}repeat]def
+ /fontnames[nfonts{()}repeat]def
+/docsave save def
+}def
+
+% character outcalls
+/oc {/pswid exch def /cc exch def /name exch def
+ /ditwid pswid fontsize mul resolution mul 72000 div def
+ /ditsiz fontsize resolution mul 72 div def
+ ocprocs name known{ocprocs name get exec}{name cb}
+ ifelse}def
+/fractm [.65 0 0 .6 0 0] def
+/fraction
+ {/fden exch def /fnum exch def gsave /cf currentfont def
+ cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
+ fnum show rmoveto currentfont cf setfont(\244)show setfont fden show
+ grestore ditwid 0 rmoveto} def
+/oce {grestore ditwid 0 rmoveto}def
+/dm {ditsiz mul}def
+/ocprocs 50 dict def ocprocs begin
+(14){(1)(4)fraction}def
+(12){(1)(2)fraction}def
+(34){(3)(4)fraction}def
+(13){(1)(3)fraction}def
+(23){(2)(3)fraction}def
+(18){(1)(8)fraction}def
+(38){(3)(8)fraction}def
+(58){(5)(8)fraction}def
+(78){(7)(8)fraction}def
+(sr){gsave .05 dm .16 dm rmoveto(\326)show oce}def
+(is){gsave 0 .15 dm rmoveto(\362)show oce}def
+(->){gsave 0 .02 dm rmoveto(\256)show oce}def
+(<-){gsave 0 .02 dm rmoveto(\254)show oce}def
+(==){gsave 0 .05 dm rmoveto(\272)show oce}def
+end
+% DIThacks fonts for some special chars
+50 dict dup begin
+/FontType 3 def
+/FontName /DIThacks def
+/FontMatrix [.001 0.0 0.0 .001 0.0 0.0] def
+/FontBBox [-220 -280 900 900] def% a lie but ...
+/Encoding 256 array def
+0 1 255{Encoding exch /.notdef put}for
+Encoding
+ dup 8#040/space put %space
+ dup 8#110/rc put %right ceil
+ dup 8#111/lt put %left top curl
+ dup 8#112/bv put %bold vert
+ dup 8#113/lk put %left mid curl
+ dup 8#114/lb put %left bot curl
+ dup 8#115/rt put %right top curl
+ dup 8#116/rk put %right mid curl
+ dup 8#117/rb put %right bot curl
+ dup 8#120/rf put %right floor
+ dup 8#121/lf put %left floor
+ dup 8#122/lc put %left ceil
+ dup 8#140/sq put %square
+ dup 8#141/bx put %box
+ dup 8#142/ci put %circle
+ dup 8#143/br put %box rule
+ dup 8#144/rn put %root extender
+ dup 8#145/vr put %vertical rule
+ dup 8#146/ob put %outline bullet
+ dup 8#147/bu put %bullet
+ dup 8#150/ru put %rule
+ dup 8#151/ul put %underline
+ pop
+/DITfd 100 dict def
+/BuildChar{0 begin
+ /cc exch def /fd exch def
+ /charname fd /Encoding get cc get def
+ /charwid fd /Metrics get charname get def
+ /charproc fd /CharProcs get charname get def
+ charwid 0 fd /FontBBox get aload pop setcachedevice
+ 40 setlinewidth
+ newpath 0 0 moveto gsave charproc grestore
+ end}def
+/BuildChar load 0 DITfd put
+%/UniqueID 5 def
+/CharProcs 50 dict def
+CharProcs begin
+/space{}def
+/.notdef{}def
+/ru{500 0 rls}def
+/rn{0 750 moveto 500 0 rls}def
+/vr{20 800 moveto 0 -770 rls}def
+/bv{20 800 moveto 0 -1000 rls}def
+/br{20 770 moveto 0 -1040 rls}def
+/ul{0 -250 moveto 500 0 rls}def
+/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
+/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
+/sq{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
+/bx{80 0 rmoveto currentpoint dround newpath moveto
+ 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
+/ci{355 333 rmoveto currentpoint newpath 333 0 360 arc
+ 50 setlinewidth stroke}def
+
+/lt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
+/lb{20 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
+/rt{20 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
+/rb{20 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
+/lk{20 800 moveto 20 300 -280 300 s4 arcto pop pop 1000 sub
+ currentpoint stroke moveto
+ 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def
+/rk{20 800 moveto 20 300 320 300 s4 arcto pop pop 1000 sub
+ currentpoint stroke moveto
+ 20 300 4 2 roll s4 a4p 20 -200 lineto stroke}def
+/lf{20 800 moveto 0 -1000 rlineto s4 0 rls}def
+/rf{20 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
+/lc{20 -200 moveto 0 1000 rlineto s4 0 rls}def
+/rc{20 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
+end
+
+/Metrics 50 dict def Metrics begin
+/.notdef 0 def
+/space 500 def
+/ru 500 def
+/br 0 def
+/lt 250 def
+/lb 250 def
+/rt 250 def
+/rb 250 def
+/lk 250 def
+/rk 250 def
+/rc 250 def
+/lc 250 def
+/rf 250 def
+/lf 250 def
+/bv 250 def
+/ob 350 def
+/bu 350 def
+/ci 750 def
+/bx 750 def
+/sq 750 def
+/rn 500 def
+/ul 500 def
+/vr 0 def
+end
+
+DITfd begin
+/s2 500 def /s4 250 def /s3 333 def
+/a4p{arcto pop pop pop pop}def
+/2cx{2 copy exch}def
+/rls{rlineto stroke}def
+/currx{currentpoint pop}def
+/dround{transform round exch round exch itransform} def
+end
+end
+/DIThacks exch definefont pop
+
+ditstart
+(psc)xT
+576 1 1 xr
+1(Times-Roman)xf 1 f
+2(Times-Italic)xf 2 f
+3(Times-Bold)xf 3 f
+4(Times-BoldItalic)xf 4 f
+5(Helvetica)xf 5 f
+6(Helvetica-Bold)xf 6 f
+7(Courier)xf 7 f
+8(Courier-Bold)xf 8 f
+9(Symbol)xf 9 f
+10(DIThacks)xf 10 f
+10 s
+1 f
+xi
+%%EndProlog
+
+%%Page: 1 1
+10 s 10 xH 0 xS 1 f
+3 f
+12 s
+1108 984(PVM)N
+1351(:)X
+1407(A)X
+1500(Framework)X
+2010(for)X
+2157(Parallel)X
+2503(Distributed)X
+2996(Computing)X
+1 f
+10 s
+3459(*)X
+2 f
+2057 1296(V.)N
+2146(S.)X
+2226(Sunderam)X
+1 f
+1603 1440(Department)N
+2002(of)X
+2089(Math)X
+2278(and)X
+2414(Computer)X
+2754(Science)X
+1690 1536(Emory)N
+1928(University,)X
+2306(Atlanta,)X
+2582(GA)X
+2718(30322)X
+2 f
+2115 1920(ABSTRACT)N
+1 f
+11 s
+1064 2128(The)N
+3 f
+9 s
+1229(PVM)X
+1 f
+11 s
+1425(system)X
+1702(is)X
+1793(a)X
+1864(programming)X
+2376(environment)X
+2854(for)X
+2988(the)X
+3128(development)X
+3617(and)X
+864 2240(execution)N
+1257(of)X
+1380(large)X
+1606(concurrent)X
+2032(or)X
+2155(parallel)X
+2470(applications)X
+2947(that)X
+3130(consist)X
+3425(of)X
+3548(many)X
+864 2352(interacting,)N
+1291(but)X
+1431(relatively)X
+1792(independent,)X
+2273(components.)X
+2771(It)X
+2853(is)X
+2940(intended)X
+3272(to)X
+3369(operate)X
+3656(on)X
+864 2464(a)N
+927(collection)X
+1299(of)X
+1395(heterogeneous)X
+1926(computing)X
+2327(elements)X
+2664(interconnected)X
+3206(by)X
+3317(one)X
+3467(or)X
+3563(more)X
+864 2576(networks.)N
+1233(The)X
+1396(participating)X
+1869(processors)X
+2265(may)X
+2443(be)X
+2552(scalar)X
+2783(machines,)X
+3164(multiprocessors,)X
+864 2688(or)N
+961(special-purpose)X
+1537(computers,)X
+1949(enabling)X
+2276(application)X
+2692(components)X
+3141(to)X
+3233(execute)X
+3525(on)X
+3636(the)X
+864 2800(architecture)N
+1311(most)X
+1514(appropriate)X
+1947(to)X
+2048(the)X
+2188(algorithm.)X
+3 f
+9 s
+2600(PVM)X
+1 f
+11 s
+2796(provides)X
+3131(a)X
+3202(straightforward)X
+864 2912(and)N
+1020(general)X
+1308(interface)X
+1645(that)X
+1807(permits)X
+2101(the)X
+2238(description)X
+2659(of)X
+2761(various)X
+3049(types)X
+3264(of)X
+3366(algorithms)X
+864 3024(\(and)N
+1044(their)X
+1230(interactions\),)X
+1718(while)X
+1939(the)X
+2072(underlying)X
+2479(infrastructure)X
+2978(permits)X
+3268(the)X
+3401(execution)X
+864 3136(of)N
+964(applications)X
+1418(on)X
+1533(a)X
+1599(virtual)X
+1857(computing)X
+2262(environment)X
+2734(that)X
+2893(supports)X
+3217(multiple)X
+3539(paral-)X
+864 3248(lel)N
+991(computation)X
+1471(models.)X
+3 f
+9 s
+1800(PVM)X
+1 f
+11 s
+2002(contains)X
+2334(facilities)X
+2677(for)X
+2817(concurrent,)X
+3253(sequential,)X
+3671(or)X
+864 3360(conditional)N
+1285(execution)X
+1651(of)X
+1747(application)X
+2163(components,)X
+2633(is)X
+2714(portable)X
+3025(to)X
+3116(a)X
+3177(variety)X
+3444(of)X
+3539(archi-)X
+864 3472(tectures,)N
+1182(and)X
+1331(supports)X
+1651(certain)X
+1913(forms)X
+2140(of)X
+2235(error)X
+2427(detection)X
+2773(and)X
+2922(recovery.)X
+3 f
+576 4044(1.)N
+686(Introduction)X
+1 f
+776 4296(In)N
+882(recent)X
+1130(years,)X
+1371(parallel)X
+1670(and)X
+1831(distributed)X
+2243(processing)X
+2653(have)X
+2853(been)X
+3053(conjectured)X
+3498(to)X
+3601(be)X
+3718(the)X
+3860(most)X
+576 4408(promising)N
+963(solution)X
+1277(to)X
+1375(the)X
+1512(computing)X
+1919(requirements)X
+2408(of)X
+2510(the)X
+2647(future.)X
+2908(Signi\256cant)X
+3320(advances)X
+3670(in)X
+3767(parallel)X
+576 4520(algorithms)N
+986(and)X
+1145(architectures)X
+1627(have)X
+1825(demonstrated)X
+2332(the)X
+2472(potential)X
+2814(for)X
+2948(applying)X
+3290(concurrent)X
+3699(computa-)X
+576 4632(tion)N
+737(techniques)X
+1137(to)X
+1229(a)X
+1290(wide)X
+1483(variety)X
+1750(of)X
+1845(problems.)X
+2217(However,)X
+2582(most)X
+2776(of)X
+2871(the)X
+3001(research)X
+3315(efforts)X
+3566(have)X
+3754(concen-)X
+576 4744(trated)N
+799(either)X
+1022(upon)X
+2 f
+1220(computational)X
+1752(models)X
+1 f
+2023([1],)X
+2169(parallel)X
+2457(versions)X
+2773(of)X
+2 f
+2869(algorithms)X
+1 f
+3251(,)X
+3296(or)X
+3392(machine)X
+2 f
+3714(architec-)X
+576 4856(tures)N
+1 f
+(;)S
+802(relatively)X
+1161(little)X
+1349(attention)X
+1683(has)X
+1824(been)X
+2014(given)X
+2234(to)X
+2327(software)X
+2653(development)X
+3133(environments)X
+3637(or)X
+3734(program)X
+576 4968(construction)N
+1047(techniques)X
+1459(that)X
+1627(are)X
+1770(required)X
+2099(in)X
+2204(order)X
+2425(to)X
+2530(translate)X
+2865(algorithms)X
+3279(into)X
+3453(operational)X
+3886(pro-)X
+576 5080(grams.)N
+842(This)X
+1028(aspect)X
+1277(is)X
+1365(becoming)X
+1742(more)X
+1952(important)X
+2325(as)X
+2426(parallel)X
+2719(processing)X
+3123(progresses)X
+3521(from)X
+3720(the)X
+3856(solu-)X
+576 5192(tion)N
+742(of)X
+843(stand-alone,)X
+1299 0.2788(mathematically)AX
+1873(precise,)X
+2172(problems)X
+2529(to)X
+2627(larger)X
+2861(and)X
+3017(more)X
+3227(complex)X
+3560(software)X
+3891(sys-)X
+576 5304(tems.)N
+820(Such)X
+1050(systems)X
+1383(often)X
+1618(consist)X
+1917(of)X
+2044(many)X
+2294(interacting)X
+2726(components,)X
+3228(each)X
+3443(with)X
+3654(its)X
+3792(unique)X
+8 s
+10 f
+576 5384(hhhhhhhhhhhhhhhhhh)N
+1 f
+656 5478(*)N
+720(Research)X
+974(performed)X
+1261(at)X
+1329(the)X
+1429(Mathematical)X
+1802(Sciences)X
+2047(Section)X
+2261(of)X
+2336(Oak)X
+2464(Ridge)X
+2639(National)X
+2881(Laboratory)X
+3186(under)X
+3353(the)X
+3453(auspices)X
+3691(of)X
+576 5558(the)N
+691(Faculty)X
+920(Research)X
+1190(Participation)X
+1554(Program)X
+1811(of)X
+1900(Oak)X
+2042(Ridge)X
+2231(Associated)X
+2547(Universities,)X
+2908(and)X
+3036(supported)X
+3324(by)X
+3424(the)X
+3538(Applied)X
+576 5638(Mathematical)N
+952(Sciences)X
+1201(subprogram)X
+1532(of)X
+1611(the)X
+1715(Of\256ce)X
+1900(of)X
+1979(Energy)X
+2189(Research,)X
+2464(U.S.)X
+2604(Department)X
+2931(of)X
+3010(Energy,)X
+3236(under)X
+3407(contract)X
+3638(DE-)X
+576 5718(AC05-84OR21400)N
+1079(with)X
+1209(Martin)X
+1399(Marietta)X
+1631(Energy)X
+1831(Systems,)X
+2077(Inc.)X
+
+2 p
+%%Page: 2 2
+8 s 8 xH 0 xS 1 f
+11 s
+2231 400(-)N
+2282(2)X
+2348(-)X
+576 688(requirements.)N
+1091(These)X
+1334(requirements)X
+1827(are)X
+1967(often)X
+2181(diverse)X
+2469(enough)X
+2762(that)X
+2929(it)X
+3013(is)X
+3106(dif\256cult)X
+3420(to)X
+3523(program)X
+3855(them)X
+576 800(within)N
+832(a)X
+901(uni\256ed)X
+1176(framework,)X
+1613(and)X
+1770(cumbersome,)X
+2272(and)X
+2429(sometime)X
+2803(impractical,)X
+3253(to)X
+3352(execute)X
+3650(the)X
+3787(system)X
+576 912(on)N
+686(a)X
+747(single)X
+980(machine.)X
+776 1164(An)N
+910(example)X
+1236(of)X
+1336(such)X
+1524(a)X
+1590(system)X
+1862(is)X
+1948(the)X
+2083(\257uid)X
+2273(dynamics)X
+2639(application)X
+3060(termed)X
+3333(BF3D,)X
+3598(described)X
+3963(in)X
+576 1276([17].)N
+777(This)X
+967(application)X
+1393(is)X
+1485(not)X
+1630(only)X
+1819(compute)X
+2155(intensive;)X
+2531(it)X
+2613(uses)X
+2796(large)X
+3004(amounts)X
+3335(of)X
+3440(memory,)X
+3788(creates)X
+576 1388(very)N
+755(large)X
+954(quantities)X
+1322(of)X
+1419(output)X
+1669(data,)X
+1862(and)X
+2013(requires)X
+2320(2D)X
+2451(and)X
+2602(3D)X
+2733(graphics)X
+3055(terminals)X
+3408(to)X
+3501(display)X
+3780(results.)X
+576 1500(The)N
+744(algorithm)X
+1119(essentially)X
+1523(involves)X
+1853(the)X
+1992(solution)X
+2308(of)X
+2411(a)X
+2480(set)X
+2608(of)X
+2711(partial)X
+2967(differential)X
+3389(equations)X
+3757(in)X
+3856(three)X
+576 1612(dimensional)N
+1036(space,)X
+1281(by)X
+1398(using)X
+1618(an)X
+1730(appropriately)X
+2229(staggered)X
+2595(grid.)X
+2788(The)X
+2954(algorithm)X
+3327(may)X
+3508(be)X
+3620(parallelized)X
+576 1724(in)N
+679(different)X
+1016(ways,)X
+1252(enabling)X
+1589(its)X
+1706(execution)X
+2082(on)X
+2203(several)X
+2485(categories)X
+2875(of)X
+2981(parallel)X
+3279(machines.)X
+3689(However,)X
+576 1836(typical)N
+840(multiprocessors)X
+1421(rarely)X
+1649(support)X
+1936(high-bandwidth)X
+2517(external)X
+2825(I/O)X
+2966(or)X
+3063(high)X
+3244(performance)X
+3712(graphics,)X
+576 1948(thereby)N
+887(necessitating)X
+1390(the)X
+1545(separation)X
+1954(of)X
+2074(the)X
+2229(computation,)X
+2740(output)X
+3012(management,)X
+3531(and)X
+3704(graphical)X
+576 2060(display)N
+866(components)X
+1327(of)X
+1435(the)X
+1578(system.)X
+1902(Another)X
+2225(example)X
+2560(of)X
+2669(an)X
+2788(application)X
+3217(with)X
+3410(differing)X
+3754(require-)X
+576 2172(ments)N
+822(for)X
+959(individual)X
+1353(sub-algorithms)X
+1917(is)X
+2011(the)X
+2154(Global)X
+2428(Environment)X
+2923(Simulation)X
+3346(project)X
+3625([2],)X
+3783(a)X
+3856(large)X
+576 2284(simulation)N
+979(effort)X
+1203(to)X
+1301(study)X
+1521(contaminant)X
+1988(concentrations)X
+2532(and)X
+2689(dispersal)X
+3032(characteristics)X
+3566(as)X
+3669(a)X
+3738(function)X
+576 2396(of)N
+685(various)X
+980(environmental)X
+1526(factors.)X
+1823(The)X
+1996(ideal)X
+2204(computational)X
+2746(requirements)X
+3242(of)X
+3351(this)X
+3515(simulation)X
+3925(are)X
+576 2508(vector)N
+833(processing)X
+1246(\(for)X
+1414(\257uid)X
+1613(\257ow)X
+1806(analysis\),)X
+2178(distributed)X
+2593(multiprocessing)X
+3194(\(modeling)X
+3595(contaminant)X
+576 2620(transport\),)N
+988(high-speed)X
+1422(scalar)X
+1675(computation)X
+2165(\(simulation)X
+2616(of)X
+2737(temperature)X
+3206(effects\),)X
+3539(and)X
+3713(real-time)X
+576 2732(graphics)N
+896(for)X
+1020(user)X
+1188(interaction.)X
+776 2984(From)N
+989(a)X
+1050(different)X
+1375(point)X
+1579(of)X
+1674(view,)X
+1889(many)X
+2107(applications)X
+2556(that)X
+2711(are)X
+2840(amenable)X
+3200(to)X
+3291(concurrent)X
+3689(execution)X
+576 3096(can)N
+722(be)X
+829(programmed)X
+1303(using)X
+1518(either)X
+1742(message)X
+2063(passing)X
+2350(or)X
+2446(shared)X
+2698(memory)X
+3015(algorithms;)X
+3441(when)X
+3654(computing)X
+576 3208(environments)N
+1091(supporting)X
+1503(both)X
+1695(are)X
+1837(available,)X
+2213(a)X
+2287(hybrid)X
+2552(algorithm,)X
+2953(at)X
+3052(a)X
+3126(suf\256ciently)X
+3558(high)X
+3751(level)X
+3959(of)X
+576 3320(granularity,)N
+1011(may)X
+1189(be)X
+1298(used)X
+1484(to)X
+1578(advantage.)X
+1982(A)X
+2070(straightforward,)X
+2659(but)X
+2797(illustrative)X
+3201(example)X
+3525(is)X
+3609(matrix)X
+3865(mul-)X
+576 3432 0.3250(tiplication)AN
+958(using)X
+1171(subblock)X
+1511(decompositions)X
+2087([18].)X
+2277(In)X
+2372(an)X
+2478(environment)X
+2947(consisting)X
+3328(of)X
+3424(different)X
+3750(types)X
+3959(of)X
+576 3544(scalar)N
+812(machines)X
+1176(and)X
+1334(multiprocessors,)X
+1944(highly)X
+2200(effective)X
+2538(and)X
+2695(ef\256cient)X
+3014(algorithms)X
+3422(for)X
+3554(matrix)X
+3815(multi-)X
+576 3656(plication)N
+915(can)X
+1067(be)X
+1180(implemented,)X
+1694(with)X
+1881(some)X
+2097(subblocks)X
+2479(being)X
+2705 0.3681(multiplied)AX
+3100(using)X
+3321(static)X
+3538(prescheduling)X
+576 3768(on)N
+712(shared)X
+989(memory)X
+1331(machines)X
+1712(and)X
+1886(others)X
+2148(using)X
+2386 0.1974("pipe-multiply-roll")AX
+3139(strategies)X
+3519(on)X
+3654(distributed)X
+576 3880(memory)N
+892(computers.)X
+1303(Empirical)X
+1674(results)X
+1926(obtained)X
+2252(by)X
+2362(using)X
+2575(this)X
+2725(approach)X
+3069(are)X
+3198(presented)X
+3557(in)X
+3648(Section)X
+3935(5.)X
+776 4132(It)N
+857(should)X
+1119(be)X
+1229(noted)X
+1452(that)X
+1612(most)X
+1811(typical)X
+2079(computing)X
+2484(environments)X
+2992(already)X
+3279(possess)X
+3570(the)X
+3706(hardware)X
+576 4244(diversity)N
+911(required)X
+1230(to)X
+1325(solve)X
+1537(such)X
+1724(large,)X
+1948(parallel)X
+2239(applications,)X
+2714(and)X
+2867(also)X
+3035(contain)X
+3320(support)X
+3609(for)X
+3736(multiple)X
+576 4356(concurrent)N
+989(computation)X
+1468(models.)X
+1783(High)X
+1997(speed)X
+2235(local)X
+2445(networks)X
+2805(with)X
+3000(graphics)X
+3336(workstations,)X
+3846(high-)X
+576 4468(performance)N
+1046(scalar)X
+1277(engines,)X
+1594(an)X
+1703(occasional)X
+2101(multiprocessor,)X
+2673(and)X
+2826(perhaps)X
+3125(a)X
+3189(vector)X
+3434(computer)X
+3792(are)X
+3924(the)X
+576 4580(norm)N
+786(rather)X
+1015(than)X
+1191(the)X
+1323(exception,)X
+1712(and)X
+1863(will)X
+2025(continue)X
+2353(to)X
+2446(be)X
+2553(over)X
+2733(the)X
+2865(next)X
+3041(few)X
+3197(years.)X
+3429(However,)X
+3797(to)X
+3891(har-)X
+576 4692(ness)N
+759(this)X
+919(collection)X
+1300(of)X
+1405(capabilities)X
+1840(and)X
+1999(to)X
+2100(utilize)X
+2354(it)X
+2436(productively)X
+2913(requires)X
+3227(considerable)X
+3703(efforts)X
+3963(in)X
+576 4804(coordination)N
+1047(and)X
+1199(reconciliation)X
+1710(between)X
+2028(different)X
+2356(computation)X
+2823(models)X
+3103(and)X
+3255(architectures)X
+3730(\320)X
+3844(all)X
+3959(of)X
+576 4916(which)N
+815(has)X
+956(to)X
+1049(be)X
+1156(done)X
+1351(manually.)X
+1748(The)X
+3 f
+9 s
+1905(PVM)X
+1 f
+11 s
+2093(\(Parallel)X
+2416(Virtual)X
+2689(Machine\))X
+3049(project)X
+3317(is)X
+3399(an)X
+3505(attempt)X
+3794(to)X
+3886(pro-)X
+576 5028(vide)N
+756(a)X
+823(uni\256ed)X
+1096(framework)X
+1510(within)X
+1765(which)X
+2009(large)X
+2214(parallel)X
+2508(systems)X
+2816(can)X
+2967(be)X
+3079(developed)X
+3470(in)X
+3568(a)X
+3636(straightfor-)X
+576 5140(ward)N
+774(and)X
+924(ef\256cient)X
+1236(manner.)X
+1545(The)X
+1705(overall)X
+1973(objective)X
+2319(of)X
+2414(this)X
+2564(project)X
+2831(is)X
+2912(to)X
+3003(permit)X
+3256(a)X
+3317(collection)X
+3688(of)X
+3783(hetero-)X
+576 5252(geneous)N
+906(machines)X
+1281(on)X
+1411(a)X
+1492(network)X
+1822(to)X
+1933(be)X
+2058(viewed)X
+2354(as)X
+2469(a)X
+2550(general)X
+2851(purpose)X
+3171(concurrent)X
+3590(computation)X
+576 5364(resource.)N
+918(Application)X
+1358(algorithms)X
+1759(are)X
+1889(expressed)X
+2258(using)X
+2472(the)X
+2603(most)X
+2798(suitable)X
+3095(paradigm;)X
+3475(the)X
+3 f
+9 s
+3601(PVM)X
+1 f
+11 s
+3787(system)X
+576 5476(executes)N
+913(them)X
+1124(on)X
+1246(the)X
+1388(most)X
+1594(appropriate)X
+2029(hardware)X
+2389(available,)X
+2764(either)X
+2999(directly)X
+3304(or)X
+3412(by)X
+3535(emulating)X
+3924(the)X
+576 5588(particular)N
+962(computation)X
+1452(model.)X
+1765(Furthermore,)X
+2275(it)X
+2372(is)X
+2478(frequently)X
+2887(desired)X
+3188(to)X
+3304(incorporate)X
+3752(existing)X
+576 5700(software)N
+917(\(preferably)X
+1346(with)X
+1542(little)X
+1745(or)X
+1857(no)X
+1984(modi\256cations\))X
+2533(into)X
+2710(a)X
+2788(larger)X
+3032(system;)X
+3341(the)X
+3 f
+9 s
+3484(PVM)X
+1 f
+11 s
+3688(system)X
+3973(is)X
+576 5812(designed)N
+911(to)X
+1002(enable)X
+1254(this)X
+1404(in)X
+1495(a)X
+1556(convenient)X
+1965(and)X
+2114(natural)X
+2381(manner.)X
+
+3 p
+%%Page: 3 3
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(3)X
+2348(-)X
+776 688(The)N
+3 f
+9 s
+940(PVM)X
+1 f
+11 s
+1135(system)X
+1411(provides)X
+1745(a)X
+1815(set)X
+1944(of)X
+2048(user)X
+2225(interface)X
+2564(primitives)X
+2954(that)X
+3118(may)X
+3302(be)X
+3417(incorporated)X
+3894(into)X
+576 800(existing)N
+880(procedural)X
+1280(languages.)X
+1677(Primitives)X
+2064(exist)X
+2254(for)X
+2379(the)X
+2510(invocation)X
+2906(of)X
+3002(processes,)X
+3383(message)X
+3704(transmis-)X
+576 912(sion)N
+766(and)X
+936(reception,)X
+1329(broadcasting,)X
+1845(synchronization)X
+2452(via)X
+2604(barriers,)X
+2938(mutual)X
+3228(exclusion,)X
+3632(and)X
+3803(shared)X
+576 1024(memory.)N
+923(Processes)X
+1295(may)X
+1478(be)X
+1592(initiated)X
+1913(synchronously)X
+2456(or)X
+2559(asynchronously,)X
+3163(and)X
+3320(may)X
+3502(be)X
+3615(conditioned)X
+576 1136(upon)N
+789(the)X
+934 0.3681(initiation)AX
+1292(or)X
+1402(termination)X
+1847(of)X
+1957(another)X
+2258(process,)X
+2581(or)X
+2692(upon)X
+2906(the)X
+3052 0.2898(availability)AX
+3489(of)X
+3600(data)X
+3785(values.)X
+576 1248(Message)N
+906(transmission)X
+1375(as)X
+1471(well)X
+1646(as)X
+1742(\256le)X
+1878(output)X
+2127(may)X
+2302(be)X
+2408(preceded)X
+2748(by)X
+2859(invocations)X
+3288(of)X
+3383(specially)X
+3719(provided)X
+576 1360(primitives)N
+964(to)X
+1062(ensure)X
+1320(that)X
+1482(data)X
+1658(is)X
+1746(transmitted)X
+2173(or)X
+2276(stored)X
+2521(in)X
+2620(a)X
+2689(machine)X
+3018(independent)X
+3479(form.)X
+3724(Applica-)X
+576 1472(tion)N
+737(systems)X
+1039(may)X
+1214(be)X
+1320(programmed)X
+1793(using)X
+2007(these)X
+2211(primitives)X
+2593(in)X
+2684(the)X
+2814(language)X
+3154(of)X
+3249(choice;)X
+3526(different)X
+3851(com-)X
+576 1584(ponents)N
+881(may)X
+1065(even)X
+1263(be)X
+1378(programmed)X
+1860(in)X
+1961(different)X
+2296(languages.)X
+2702(The)X
+3 f
+9 s
+2867(PVM)X
+1 f
+11 s
+3063(constructs)X
+3452(therefore)X
+3801(permit)X
+576 1696(the)N
+715(most)X
+918(appropriate)X
+1350(programming)X
+1861(paradigm)X
+2225(and)X
+2383(language)X
+2732(to)X
+2832(be)X
+2946(used)X
+3138(for)X
+3271(each)X
+3462(individual)X
+3851(com-)X
+576 1808(ponent)N
+842(of)X
+941(a)X
+1006(parallel)X
+1297(system,)X
+1591(while)X
+1814(retaining)X
+2155(the)X
+2290(ability)X
+2544(for)X
+2673(components)X
+3126(to)X
+3222(interact)X
+3514(and)X
+3668(cooperate.)X
+576 1920(It)N
+657(should)X
+919(be)X
+1029(mentioned)X
+1429(that)X
+1588(the)X
+3 f
+9 s
+1718(PVM)X
+1 f
+11 s
+1908(user-interface)X
+2417(primitives)X
+2802(have)X
+2994(been)X
+3186(partly)X
+3418(derived)X
+3708(from)X
+3905(and)X
+576 2032(are)N
+718(a)X
+792(superset)X
+1115(of)X
+1223(the)X
+1366(portable)X
+1690(programming)X
+2205(constructs)X
+2597(described)X
+2969(in)X
+3073([3];)X
+3235(an)X
+3353(application)X
+3782(written)X
+576 2144(using)N
+806(these)X
+1026(primitives)X
+1424(may)X
+1615(therefore)X
+1971(also)X
+2152(execute)X
+2460(directly)X
+2769(on)X
+2896(a)X
+2973(speci\256c)X
+3280(multiprocessor)X
+3842(when)X
+576 2256(necessary.)N
+776 2508(The)N
+3 f
+9 s
+936(PVM)X
+1 f
+11 s
+1127(system)X
+1399(consists)X
+1705(of)X
+1805(support)X
+2096(software)X
+2425(that)X
+2585(executes)X
+2915(on)X
+3030(participating)X
+3504(hosts)X
+3712(on)X
+3828(a)X
+3895(net-)X
+576 2620(work;)N
+813(the)X
+953(network)X
+1273(may)X
+1457(be)X
+1572(local,)X
+1798(wide-area)X
+2176(or)X
+2281(a)X
+2352(combination,)X
+2848(and)X
+3007(the)X
+3147(host)X
+3326(pool)X
+3515(may)X
+3698(be)X
+3812(varied)X
+576 2732(dynamically.)N
+1072(Hosts)X
+1309(may)X
+1498(be)X
+1618(scalar)X
+1860(machines,)X
+2252(workstations,)X
+2761(or)X
+2871(parallel)X
+3173(processors)X
+3580(\320)X
+3705(the)X
+3850(latter)X
+576 2844(being)N
+811(considered)X
+1231(an)X
+1353(atomic)X
+1633(computational)X
+2178(resource)X
+2514(by)X
+3 f
+9 s
+2637(PVM)X
+1 f
+11 s
+2801(.)X
+2862(This)X
+3057(support)X
+3359(software)X
+3699(interprets)X
+576 2956(requests)N
+888(generated)X
+1254(by)X
+1366(the)X
+1498(user-level)X
+1870(constructs)X
+2252(and)X
+2404(carries)X
+2663(out)X
+2801(the)X
+2934(necessary)X
+3300(actions)X
+3575(in)X
+3669(a)X
+3733(machine)X
+576 3068(independent)N
+1031(manner.)X
+1341(The)X
+3 f
+9 s
+1498(PVM)X
+1 f
+11 s
+1686(software)X
+2012(essentially)X
+2409(consists)X
+2711(of)X
+2807(a)X
+2869(collection)X
+3241(of)X
+3337(protocol)X
+3654(algorithms)X
+576 3180(to)N
+674(implement)X
+1082(reliable)X
+1376(and)X
+1532(sequenced)X
+1927(data)X
+2103(transfer,)X
+2423(distributed)X
+2831(consensus,)X
+3239(and)X
+3396(mutual)X
+3672(exclusion.)X
+576 3292(In)N
+681(an)X
+796(attempt)X
+1094(to)X
+1195(make)X
+1418(the)X
+1558(system)X
+1835(as)X
+1939(robust)X
+2190(as)X
+2294(possible,)X
+2636(these)X
+2848(algorithms)X
+3257(also)X
+3430(incorporate)X
+3862(error)X
+576 3404(detection)N
+932(mechanisms)X
+1400(\320)X
+1520(process)X
+1815(and)X
+1975(processor)X
+2344(failure)X
+2607(noti\256cation)X
+3043(is)X
+3135(provided)X
+3481(to)X
+3583(applications,)X
+576 3516(thereby)N
+865(enabling)X
+1194(them)X
+1396(to)X
+1490(take)X
+1662(corrective)X
+2039(action.)X
+2302(In)X
+2400(addition,)X
+2736(heuristics)X
+3098(are)X
+3229(included)X
+3557(into)X
+3719(the)X
+3851(algo-)X
+576 3628(rithms)N
+838(for)X
+976(mutual)X
+1259(exclusion)X
+1634(and)X
+1798(consensus)X
+2191(that)X
+2361(enable)X
+2628(the)X
+2773(preemption)X
+3212(of)X
+3322(deadlock)X
+3677(in)X
+3783(several)X
+576 3740(situations.)N
+776 3992(Several)N
+1065(projects)X
+1369(similar)X
+1640(to)X
+3 f
+9 s
+1730(PVM)X
+1 f
+11 s
+1919(have)X
+2110(been)X
+2301(undertaken)X
+2717(in)X
+2811(the)X
+2944(past,)X
+3134(and)X
+3287(some)X
+3499(are)X
+3632(ongoing.)X
+3969(A)X
+576 4104(few)N
+739(representative)X
+1265(examples)X
+1630(are)X
+1769(listed)X
+1993(below,)X
+2262(with)X
+2451(comparisons)X
+2928(to)X
+3 f
+9 s
+3024(PVM)X
+1 f
+11 s
+3188(.)X
+3241(The)X
+3409(DPUP)X
+3664(library)X
+3930([4])X
+576 4216(emulates)N
+919(a)X
+987(loosely)X
+1272(coupled)X
+1581(multiprocessor)X
+2135(on)X
+2253(a)X
+2322(local)X
+2524(network,)X
+2864(as)X
+2967(does)X
+3158(the)X
+3296(dsim)X
+3498([5])X
+3630(system)X
+3905(and)X
+576 4328(the)N
+723(Cosmic)X
+1032(environment)X
+1516([6].)X
+1678(The)X
+1853(two)X
+2023(latter)X
+2243(systems)X
+2560(require)X
+2847(the)X
+2993(precon\256guration)X
+3613(of)X
+3724(a)X
+3801(virtual)X
+576 4440(machine)N
+897(on)X
+1007(which)X
+1244(applications)X
+1693(execute)X
+1985(and)X
+2135(support)X
+2422(only)X
+2602(basic)X
+2806(message)X
+3127(passing)X
+3414(mechanisms.)X
+3895(The)X
+576 4552(Amber)N
+859(project)X
+1143([15])X
+1328(is)X
+1426(somewhat)X
+1822(different)X
+2164(in)X
+2272(that)X
+2444(the)X
+2591(targeted)X
+2914(environment)X
+3398(is)X
+3495(a)X
+3572(collection)X
+3959(of)X
+576 4664(homogeneous)N
+2 f
+1100(multi-)X
+1 f
+1311(processors.)X
+1738(One)X
+1919(of)X
+2027(the)X
+2170(operating)X
+2538(modes)X
+2803(within)X
+3065(DPUP,)X
+3347(as)X
+3456(well)X
+3644(as)X
+3753(projects)X
+576 4776(such)N
+762(as)X
+860(Marionette)X
+1272([7])X
+1399(and)X
+1551(MSPCM)X
+1889([8],)X
+2038(uses)X
+2214(the)X
+2347(master-slave)X
+2817(approach,)X
+3186(where)X
+3425(a)X
+3489(central)X
+3753(control-)X
+576 4888(ling)N
+739(process)X
+1027(is)X
+1111(responsible)X
+1537(for,)X
+1686(or)X
+1784(is)X
+1868(involved)X
+2202(in,)X
+2318(every)X
+2538(system)X
+2808(event.)X
+3046(In)X
+3144(addition)X
+3459(to)X
+3553(affecting)X
+3891(per-)X
+576 5000(formance)N
+942(and)X
+1103(being)X
+1333(an)X
+1449(unnatural)X
+1815(model)X
+2069(for)X
+2204(certain)X
+2477(classes)X
+2754(of)X
+2860(problems,)X
+3243(this)X
+3404(central)X
+3677(process)X
+3973(is)X
+576 5112(critical,)N
+877(and)X
+1037(its)X
+1154(failure)X
+1417(leads)X
+1631(to)X
+1733(a)X
+1805(complete)X
+2162(collapse)X
+2484(of)X
+2591(the)X
+2733(entire)X
+2968(system.)X
+3269(Another)X
+3591(shortcoming)X
+576 5224(common)N
+912(to)X
+1008(all)X
+1124(the)X
+1259(above)X
+1496(is)X
+1582(the)X
+1717(use)X
+1861(of)X
+1961(virtual)X
+2219(circuits)X
+2506(for)X
+2635(network)X
+2950 0.2452(communication;)AX
+3552(in)X
+3647(addition)X
+3963(to)X
+576 5336(overheads)N
+954(that)X
+1109(may)X
+1283(not)X
+1418(be)X
+1523(justi\256able,)X
+1916(practical)X
+2242(limits)X
+2467(on)X
+2577(the)X
+2707(number)X
+2998(of)X
+3093(connections)X
+3537(affect)X
+3760(the)X
+3891(sca-)X
+576 5448(lability)N
+862(of)X
+969(applications.)X
+1474(In)X
+1581(addition,)X
+1927(failure)X
+2191(resiliency)X
+2568(and)X
+2728(debugging)X
+3133(support)X
+3430(is)X
+3522(minimal.)X
+3895(The)X
+3 f
+9 s
+576 5560(PVM)N
+1 f
+11 s
+771(system)X
+1047(is)X
+1137(completely)X
+1561(distributed,)X
+1992(supports)X
+2321(a)X
+2391(dynamic)X
+2726(host)X
+2904(pool,)X
+3114(and)X
+3272(assumes)X
+3596(only)X
+3784(that)X
+3949(an)X
+576 5672(unreliable,)N
+979(unsequenced)X
+1460(datagram)X
+1815(delivery)X
+2131(mechanism)X
+2560(is)X
+2646(available.)X
+3014(From)X
+3232(the)X
+3367(application's)X
+3850(point)X
+576 5784(of)N
+671(view,)X
+3 f
+9 s
+882(PVM)X
+1 f
+11 s
+1068(constructs)X
+1447(are)X
+1576(substantially)X
+2045(more)X
+2248(general)X
+2529(in)X
+2621(nature)X
+2864(and)X
+3014(encompass)X
+3423(both)X
+3603(the)X
+3734(message)X
+
+4 p
+%%Page: 4 4
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(4)X
+2348(-)X
+576 688(passing)N
+867(and)X
+1020(shared)X
+1275(memory)X
+1595(paradigms;)X
+2013(yet,)X
+2169(by)X
+2283(substituting)X
+2722(alternative)X
+3121(libraries,)X
+3458(unmodi\256ed)X
+3886(pro-)X
+576 800(grams)N
+813(may)X
+987(execute)X
+1278(on)X
+1388(speci\256c)X
+1679(multiprocessors.)X
+776 1052(The)N
+937(following)X
+1304(section)X
+1578(describes)X
+1929(the)X
+2061(user)X
+2231(interface)X
+2564(and)X
+2716(the)X
+2849(important)X
+3218(design)X
+3473(aspects)X
+3752(of)X
+3 f
+9 s
+3846(PVM)X
+1 f
+11 s
+4010(.)X
+576 1164(An)N
+710(overview)X
+1064(of)X
+1164(the)X
+3 f
+9 s
+1295(PVM)X
+1 f
+11 s
+1486(support)X
+1777(software,)X
+2128(with)X
+2312(an)X
+2422(emphasis)X
+2777(on)X
+2892(the)X
+3027(protocol)X
+3348(algorithms)X
+3752(and)X
+3905(key)X
+576 1276 0.2885(implementation)AN
+1158(features)X
+1462(follows.)X
+1774(Preliminary)X
+2217(results)X
+2473(and)X
+2626(performance)X
+3096(\256gures)X
+3361(are)X
+3494(then)X
+3673(presented,)X
+576 1388(and)N
+725(the)X
+855(concluding)X
+1269(section)X
+1541(reports)X
+1807(on)X
+1917(continuing)X
+2317(and)X
+2466(future)X
+2698(work.)X
+3 f
+576 1724(2.)N
+686(The)X
+855(User)X
+1052(Interface)X
+1 f
+776 1976(The)N
+957(application)X
+1394(views)X
+1644(the)X
+3 f
+9 s
+1793(PVM)X
+1 f
+11 s
+2002(system)X
+2292(as)X
+2410(a)X
+2494(general)X
+2798(and)X
+2970(\257exible)X
+3280(parallel)X
+3590(computation)X
+576 2088(resource)N
+908(that)X
+1076(supports)X
+1409(common)X
+1753(parallel)X
+2053(programming)X
+2568(paradigms.)X
+2991(Application)X
+3442(programs)X
+3808(access)X
+576 2200(these)N
+784(resources)X
+1142(by)X
+1257(invoking)X
+1598(function)X
+1919(calls)X
+2109(from)X
+2308(within)X
+2562(common)X
+2899(procedural)X
+3303(languages)X
+3683(such)X
+3872(as)X
+3973(C)X
+576 2312(or)N
+676(Fortran.)X
+984(Such)X
+1187(an)X
+1297(interface)X
+1632(was)X
+1795(selected)X
+2106(primarily)X
+2462(for)X
+2590(portability)X
+2985(reasons)X
+3274(\320)X
+3388(most)X
+3586(multiproces-)X
+576 2424(sor)N
+712(applications)X
+1168(are)X
+1304(currently)X
+1651(written)X
+1930(in)X
+2028(procedural)X
+2433(languages)X
+2814(with)X
+3000(embedded,)X
+3413(machine-speci\256c,)X
+576 2536(function)N
+905(calls)X
+1102(that)X
+1270(perform)X
+1588(process)X
+1886(spawning,)X
+2280(message)X
+2613(reception)X
+2976(and)X
+3138(transmission,)X
+3641(and)X
+3803(shared)X
+576 2648(memory)N
+893(operations.)X
+1305(The)X
+3 f
+9 s
+1461(PVM)X
+1 f
+11 s
+1648(primitives)X
+2030(have)X
+2220(been)X
+2410(made)X
+2625(the)X
+2757(same)X
+2962(as)X
+3059(or)X
+3156(very)X
+3336(similar)X
+3606(to)X
+3699(the)X
+3831(union)X
+576 2760(of)N
+683(these)X
+898(functions,)X
+1282(thereby)X
+1580(enabling)X
+1918(previously)X
+2324(written)X
+2608(applications)X
+3068(to)X
+3170(be)X
+3286(ported)X
+3544(readily)X
+3822(to)X
+3924(the)X
+3 f
+9 s
+576 2872(PVM)N
+1 f
+11 s
+764(environment.)X
+1256(This)X
+1437(aspect)X
+1682(also)X
+1849(permits)X
+2139(the)X
+2272(execution)X
+2640(of)X
+2738(applications,)X
+3212(or)X
+3310(components)X
+3761(thereof,)X
+576 2984(on)N
+691(speci\256c)X
+987(machines)X
+1347(when)X
+1564(possible.)X
+1924(The)X
+3 f
+9 s
+2083(PVM)X
+1 f
+11 s
+2273(user)X
+2445(interface)X
+2779(syntax)X
+3035(and)X
+3188(semantics)X
+3562(are)X
+3695(presented)X
+576 3096(in)N
+667(this)X
+817(section)X
+1089(with)X
+1268(illustrative)X
+1669(examples)X
+2024(using)X
+2237(the)X
+2367(C)X
+2448(language)X
+2788(interface.)X
+3 f
+576 3432(2.1.)N
+752(Processes)X
+1130(and)X
+1294(Process)X
+1599(Initiation)X
+1 f
+776 3684(In)N
+879(the)X
+3 f
+9 s
+1013(PVM)X
+1 f
+11 s
+1207(system,)X
+1504(an)X
+1617(application)X
+2040(is)X
+2129(considered)X
+2540(to)X
+2639(consist)X
+2914(of)X
+2 f
+3017(components)X
+1 f
+3437(.)X
+3489(For)X
+3641(example,)X
+3993(a)X
+576 3796(simulation)N
+979(application)X
+1401(might)X
+1637(consist)X
+1911(of)X
+2013(a)X
+2081(partial)X
+2336(differential)X
+2756(equation)X
+3088(component,)X
+3530(a)X
+3597(matrix)X
+3856(solu-)X
+576 3908(tion)N
+738(component,)X
+1176(and)X
+1327(a)X
+1390(user)X
+1560(interface)X
+1892(component.)X
+2352(It)X
+2430(should)X
+2689(be)X
+2796(pointed)X
+3085(out)X
+3222(that)X
+3379(this)X
+3531(de\256nition)X
+3895(of)X
+3993(a)X
+576 4020(component)N
+993(is)X
+1077(perhaps)X
+1375(unconventional;)X
+1969(usually,)X
+2271(the)X
+2404(term)X
+2591(implies)X
+2877(a)X
+2941(phase)X
+3166(or)X
+3264(portion)X
+3544(of)X
+3641(an)X
+3748(applica-)X
+576 4132(tion)N
+741(that)X
+901(is)X
+988(embodied)X
+1364(in)X
+1461(a)X
+1528(subroutine)X
+9 f
+1928(-)X
+1 f
+2004(such)X
+2193(as)X
+2294("the)X
+2466(forward-substitution)X
+3213(component)X
+3633(of)X
+3734(a)X
+3801(matrix)X
+576 4244(solver".)N
+873(However,)X
+1240(the)X
+3 f
+9 s
+1368(PVM)X
+1 f
+11 s
+1556(system)X
+1825(is)X
+1908(a)X
+1971(large-granularity)X
+2587(environment,)X
+3079(primarily)X
+3432(targeted)X
+3739(at)X
+3826(appli-)X
+576 4356(cations)N
+849(that)X
+1005(are)X
+1135(collections)X
+1542(of)X
+1639(relatively)X
+1997(independent)X
+2452(programs.)X
+2830(In)X
+2927(view)X
+3122(of)X
+3219(this,)X
+3393(a)X
+3 f
+9 s
+3452(PVM)X
+1 f
+11 s
+3640(component)X
+576 4468(corresponds)N
+1031(not)X
+1175(to)X
+1275(a)X
+1345(phase)X
+1576(in)X
+1676(the)X
+1815(traditional)X
+2210(sense,)X
+2452(but)X
+2595(rather)X
+2830(to)X
+2929(a)X
+2998(larger)X
+3233(unit)X
+3401(of)X
+3504(an)X
+3617(application.)X
+576 4580(From)N
+790(the)X
+921(system)X
+1189(point)X
+1394(of)X
+1490(view,)X
+1706(a)X
+1768(component)X
+2183(corresponds)X
+2630(to)X
+2722(an)X
+2829(object)X
+3069(\256le)X
+3206(that)X
+3363(is)X
+3446(capable)X
+3739(of)X
+3836(being)X
+576 4692(executed)N
+925(as)X
+1034(a)X
+1109(user-level)X
+1492(process.)X
+1813(A)X
+1911(compiled)X
+2275(C)X
+2369(program)X
+2702(that)X
+2870(performs)X
+3222(LU)X
+3374(factorization)X
+3855(is)X
+3949(an)X
+576 4804(example)N
+897(of)X
+992(a)X
+1054(component.)X
+1491(It)X
+1568(is)X
+1650(the)X
+1781(responsibility)X
+2285(of)X
+2381(the)X
+2512(user)X
+2681(to)X
+2773(compile)X
+3081(component)X
+3496(programs)X
+3851(to)X
+3943(all)X
+576 4916(target)N
+806(architectures)X
+1285(on)X
+1402(which)X
+1646(that)X
+1808(component)X
+2229(may)X
+2409(execute.)X
+2728(Depending)X
+3142(upon)X
+3346(the)X
+3482(target)X
+3711(machine,)X
+576 5028(the)N
+719(compiled)X
+1083(version)X
+1377(of)X
+1485(a)X
+1559(component)X
+1986(may)X
+2173(either)X
+2409(link)X
+2582(against)X
+2867(the)X
+3 f
+9 s
+3007(PVM)X
+1 f
+11 s
+3207(primitives,)X
+3624(or)X
+3733(machine)X
+576 5140(speci\256c)N
+877(libraries,)X
+1220(or)X
+1325(both.)X
+1536(A)X
+1631(component)X
+2055(is)X
+2146(therefore)X
+2494(a)X
+2564(static)X
+2782(entity)X
+3015(and)X
+3173(is)X
+3263(identi\256ed)X
+3628(by)X
+3747(a)X
+2 f
+3817(name)X
+1 f
+4007(;)X
+576 5252(associations)N
+1024(between)X
+1339(component)X
+1753(names)X
+2000(and)X
+2149(executable)X
+2548(versions)X
+2864(are)X
+2994(set)X
+3115(up)X
+3226(as)X
+3322(discussed)X
+3682(in)X
+3774(the)X
+3905(fol-)X
+576 5364(lowing)N
+843(paragraphs.)X
+776 5616(A)N
+888(complete)X
+1261(description)X
+1703(of)X
+1826(application)X
+2269(components,)X
+2767(i.e.)X
+2925(the)X
+3083(component)X
+3525(name)X
+3766(and)X
+3943(all)X
+576 5728(corresponding)N
+1126(executables)X
+1584(\(each)X
+1820(with)X
+2023(an)X
+2152(architecture)X
+2614(tag\),)X
+2819(is)X
+2924(obtained)X
+3274(by)X
+3408(the)X
+3 f
+9 s
+3558(PVM)X
+1 f
+11 s
+3768(support)X
+576 5840(software.)N
+935(This)X
+1127(information)X
+1579(is)X
+1673(gathered)X
+2011(either)X
+2247(from)X
+2454(a)X
+2529(\256le)X
+2678(or)X
+2787(from)X
+2994(a)X
+3069(startup)X
+3345(process,)X
+3666(as)X
+3775(will)X
+3949(be)X
+
+5 p
+%%Page: 5 5
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(5)X
+2348(-)X
+576 688(explained)N
+950(below.)X
+1218(An)X
+1356(example)X
+1686(of)X
+1790(a)X
+1860(component)X
+2283(description)X
+2705(\256le)X
+2848(is)X
+2937(shown)X
+3196(in)X
+3295(Figure)X
+3555(1.)X
+3673(This)X
+3860(table)X
+576 800(illustrates)N
+944(that)X
+1101(a)X
+1164(component,)X
+1602(identi\256ed)X
+1961(by)X
+2074(a)X
+2138(name,)X
+2376(may)X
+2553(be)X
+2661(manifested)X
+3073(as)X
+3171(several)X
+3445(different)X
+3773(execut-)X
+576 912(able)N
+755(\256les;)X
+959(and)X
+1118(conversely,)X
+1553(that)X
+1718(multiple)X
+2046(component)X
+2470(names)X
+2727(may)X
+2911(map)X
+3094(onto)X
+3282(the)X
+3421(same)X
+3633(executable.)X
+576 1024(The)N
+746(\256rst)X
+916(feature)X
+1193(permits)X
+1491(the)X
+3 f
+9 s
+1628(PVM)X
+1 f
+11 s
+1825(system)X
+2104(to)X
+2207(execute)X
+2510(components)X
+2970(at)X
+3068(the)X
+3210(most)X
+3416(suitable)X
+3725(location,)X
+576 1136(while)N
+794(the)X
+924(second)X
+1190(allows)X
+1442(the)X
+1572(user)X
+1740(to)X
+1831(specify)X
+2107(a)X
+2168(particular)X
+2528(location)X
+2835(as)X
+2930(will)X
+3090(be)X
+3195(explained)X
+3560(below.)X
+10 f
+1190 1328(i)N
+1218(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1234 1440(Name)N
+1615(Location)X
+2061(Object)X
+2318(\256le)X
+2934(Architecture)X
+10 f
+1190 1456(i)N
+1218(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1190 1472(i)N
+1218(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1234 1576(factor)N
+1615(iPSC)X
+2061(/u0/host/factor1)X
+2934(ipsc)X
+1234 1688(factor)N
+1615(msrsun)X
+2061 0.1612(/usr/alg/math/factor)AX
+2934(sun3)X
+1234 1800(factor)N
+1615(msrsun)X
+2061 0.1531(/usr/alg4/math/factor)AX
+2934(sun4)X
+1234 1912(chol)N
+1615(csvax2)X
+2061(/usr/matrix/chol)X
+2934(vax)X
+1234 2024(chol)N
+1615(vmsvax)X
+2061(JOE:CHOL.OBJ)X
+2934(vms)X
+1234 2136(tool)N
+1615(msrsun)X
+2061(/usr/view/graph/obj)X
+2934(sun3)X
+1234 2248(factor2)N
+1615(iPSC)X
+2061(/u0/host/factor1)X
+2934(ipsc)X
+10 f
+1190 2272(i)N
+1218(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1190(c)X
+2208(c)Y
+2120(c)Y
+2032(c)Y
+1944(c)Y
+1856(c)Y
+1768(c)Y
+1680(c)Y
+1592(c)Y
+1504(c)Y
+1416(c)Y
+3418 2272(c)N
+2208(c)Y
+2120(c)Y
+2032(c)Y
+1944(c)Y
+1856(c)Y
+1768(c)Y
+1680(c)Y
+1592(c)Y
+1504(c)Y
+1416(c)Y
+1 f
+1451 2544(Figure)N
+1703(1)X
+1769(:)X
+1816(Example)X
+2152(Component)X
+2586(Description)X
+3019(File)X
+776 2908(A)N
+2 f
+862(process)X
+1 f
+1153(is)X
+1235(an)X
+1341(executing)X
+1707(instance)X
+2019(of)X
+2115(a)X
+2177(component)X
+2592(and)X
+2742(is)X
+2824(identi\256ed)X
+3181(by)X
+3293(the)X
+3425(component)X
+3841(name)X
+576 3020(and)N
+736(a)X
+808(positive)X
+1121(instance)X
+1443(number.)X
+1767(Processes)X
+2141(may)X
+2326(be)X
+2442(initiated)X
+2766(from)X
+2969(within)X
+3227(components)X
+3685(or)X
+3790(from)X
+3993(a)X
+576 3132("startup")N
+914(process)X
+1203(that)X
+1362(may)X
+1540(be)X
+1649(manually)X
+2004(executed)X
+2343(on)X
+2457(any)X
+2610(participating)X
+3083(host.)X
+3278(A)X
+3367(process)X
+3656(is)X
+3741(initiated)X
+576 3244(by)N
+688(invoking)X
+1026(the)X
+3 f
+1158(initiate)X
+1 f
+1447(primitive)X
+1796(with)X
+1977(the)X
+2108(component)X
+2523(name)X
+2737(as)X
+2833(an)X
+2939(argument;)X
+3320(the)X
+3451(instance)X
+3763(number)X
+576 3356(of)N
+676(the)X
+811(initiated)X
+1129(process)X
+1419(is)X
+1505(returned)X
+1825(to)X
+1921(the)X
+2057(user.)X
+2253(Prior)X
+2457(to)X
+2554(executing)X
+2925(any)X
+3 f
+9 s
+3076(PVM)X
+1 f
+11 s
+3268(construct,)X
+3641(however,)X
+3993(a)X
+576 3468(process)N
+871(must)X
+1075(invoke)X
+1347(the)X
+3 f
+1486(enroll)X
+1 f
+1738(function;)X
+2088(this)X
+2247(establishes)X
+2660(a)X
+2730(\(machine)X
+3089(dependent\))X
+3511(mechanism)X
+3944(by)X
+576 3580(which)N
+815(a)X
+878(user)X
+1048(process)X
+1335(may)X
+1511(communicate)X
+2011(with)X
+2192(the)X
+3 f
+9 s
+2320(PVM)X
+1 f
+11 s
+2509(system.)X
+2801(A)X
+2889(typical)X
+3155(section)X
+3430(of)X
+3528(code)X
+3719(executed)X
+576 3692(by)N
+690(a)X
+754(startup)X
+1019(process)X
+1307(is)X
+1391(shown)X
+1645(in)X
+1739(Figure)X
+1994(2.)X
+2107(It)X
+2186(should)X
+2446(be)X
+2554(noted)X
+2775(in)X
+2869(the)X
+3002(example)X
+3326(shown)X
+3580(that)X
+3738(the)X
+3871(phy-)X
+576 3804(sical)N
+770(location)X
+1087(of)X
+1192(the)X
+1333(initiated)X
+1657(processes)X
+2026(is)X
+2118(transparent)X
+2542(to)X
+2644(the)X
+2785(invoking)X
+3132(process;)X
+3453(the)X
+3 f
+9 s
+3590(PVM)X
+1 f
+11 s
+3787(system)X
+576 3916(determines)N
+989(the)X
+1123(best)X
+1291(machine)X
+1616(on)X
+1730(which)X
+1971(to)X
+2066(execute)X
+2361(a)X
+2426(process)X
+2715(based)X
+2940(upon)X
+3141(the)X
+3274(current)X
+3548(host)X
+3720(pool,)X
+3924(the)X
+576 4028(alternative)N
+994(architectures)X
+1489(on)X
+1622(which)X
+1882(a)X
+1966(component)X
+2403(may)X
+2600(execute,)X
+2936(and)X
+3109(the)X
+3263(load)X
+3461(factor)X
+3712(on)X
+3846(those)X
+576 4140(machines.)N
+955(However,)X
+1322(a)X
+1385(speci\256c)X
+1678(location)X
+1987(may)X
+2163(be)X
+2269(forced)X
+2516(by)X
+2627(declaring)X
+2978(a)X
+3040(new)X
+3209(component)X
+3624(name)X
+3838(\(as)X
+3963(in)X
+576 4252(the)N
+706(last)X
+851(line)X
+1006(of)X
+1101(the)X
+1231(component)X
+1645(description)X
+2059(\256le)X
+2194(above\))X
+2455(and)X
+2604 0.3681(initiating)AX
+2947(that)X
+3102(component.)X
+8 f
+735 4524(...)N
+735 4636 0.1985(enroll\("startup"\);)AN
+735 4748(for)N
+947(\(i=0;i<10;i++\))X
+894 4860(instance[i])N
+1530(=)X
+1636 0.1979(initiate\("factor"\);)AX
+735 4972(...)N
+1 f
+1373 5132(Figure)N
+1625(2)X
+1691(:)X
+1738(Initiation)X
+2085(of)X
+2180(multiple)X
+2498(component)X
+2912(instances)X
+2 f
+776 5496(Positioning)N
+1 f
+1212(of)X
+1313(application)X
+1734(components)X
+2188(on)X
+2304(speci\256c)X
+2601(processing)X
+3005(elements)X
+3348(is)X
+3436(often)X
+3646(a)X
+3714(desirable)X
+576 5608(facility,)N
+881(particularly)X
+1320(in)X
+1420(heterogeneous)X
+1959(environments.)X
+2492(When)X
+2733(the)X
+2872(application)X
+3296(has)X
+3444(prior)X
+3646(knowledge)X
+576 5720(of)N
+674(the)X
+807(special)X
+1077(capabilities)X
+1505(of)X
+1603(a)X
+1667(speci\256c)X
+1961(machine)X
+2285(or)X
+2383(even)X
+2574(the)X
+2707(characteristics)X
+3237(of)X
+3336(a)X
+3401(particular)X
+3765(dataset,)X
+576 5832(executing)N
+951(a)X
+1022(component)X
+1445(at)X
+1540(a)X
+1610(\256xed)X
+1817(location)X
+2133(can)X
+2286(lead)X
+2464(to)X
+2564(signi\256cant)X
+2963(bene\256ts.)X
+3290(In)X
+3 f
+9 s
+3390(PVM)X
+1 f
+11 s
+3554(,)X
+3607(this)X
+3766(may)X
+3949(be)X
+
+6 p
+%%Page: 6 6
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(6)X
+2348(-)X
+576 688(accomplished)N
+1090(either)X
+1320(statically)X
+1669(as)X
+1771(explained)X
+2143(above,)X
+2404(or)X
+2506(dynamically)X
+2972(by)X
+3089(using)X
+3309(the)X
+3 f
+3446(entercomp)X
+1 f
+3876(con-)X
+576 800(struct.)N
+824(Arguments)X
+1245(to)X
+1344(this)X
+1502(construct)X
+1855(are)X
+1992(a)X
+2060(component)X
+2481(name,)X
+2723(an)X
+2835(object)X
+3080(\256lename)X
+3413(and)X
+3569(location,)X
+3905(and)X
+576 912(an)N
+686(architecture)X
+1129(tag.)X
+1308(This)X
+1492(construct)X
+1842(is)X
+1928(used)X
+2116(to)X
+2212("register")X
+2575(a)X
+2641(new)X
+2814(component)X
+3233(that)X
+3393(may)X
+3572(subsequently)X
+576 1024(be)N
+695(executed)X
+1044(by)X
+1168(using)X
+1394(the)X
+3 f
+1537(initiate)X
+1 f
+1837(construct.)X
+2217(For)X
+2374(example,)X
+2730(if)X
+2819(an)X
+2937(executing)X
+3315(component)X
+3742(found)X
+3982(it)X
+576 1136(necessary)N
+952(to)X
+1056(spawn)X
+1315(a)X
+1389(subprocess)X
+1809(on)X
+1932(a)X
+2006(speci\256c)X
+2311(machine,)X
+2668(it)X
+2754(might)X
+2997(use)X
+3150(the)X
+3294(following)X
+3673(section)X
+3959(of)X
+576 1248(code:)N
+8 f
+735 1520 0.1912(entercomp\("subproc","sequent8","/usr/a.out","seq"\);)AN
+735 1632 0.1974(initiate\("subproc"\);)AN
+1 f
+776 1932(The)N
+3 f
+946(initiate)X
+1 f
+1244(mechanism)X
+1679(is,)X
+1793(by)X
+1914(default,)X
+2214(asynchronous.)X
+2752(Control)X
+3055(is)X
+3147(returned)X
+3473(to)X
+3576(the)X
+3718(invoking)X
+576 2044(process)N
+871(as)X
+975(soon)X
+1172(as)X
+1276(the)X
+1415(instance)X
+1735(number)X
+2035(of)X
+2139(the)X
+2278(process)X
+2572(is)X
+2662(available.)X
+3034(However,)X
+3408(under)X
+3639(certain)X
+3910(cir-)X
+576 2156(cumstances,)N
+1044(it)X
+1134(may)X
+1326(be)X
+1450(necessary)X
+1832(to)X
+1942(initiate)X
+2230(a)X
+2310(component)X
+2743(only)X
+2941(after)X
+3143(another)X
+3448(process)X
+3752(has)X
+3910(ter-)X
+576 2268(minated.)N
+938(The)X
+3 f
+1108(initiateP)X
+1 f
+1460(variant)X
+1738(allows)X
+2001(this)X
+2162(by)X
+2283(permitting)X
+2685(the)X
+2826(user)X
+3005(to)X
+3107(defer)X
+3320 0.3681(initiation)AX
+3674(of)X
+3780(a)X
+3851(com-)X
+576 2380(ponent)N
+838(until)X
+1023(after)X
+1206(another)X
+1492(has)X
+1631(terminated.)X
+2053(For)X
+2197(example,)X
+8 f
+735 2540 0.1937(initiateP\("factor","matmul",3\);)AN
+1 f
+576 2784(will)N
+742(initiate)X
+1017(an)X
+1129(instance)X
+1447(of)X
+1549("factor")X
+1855(only)X
+2041(after)X
+2231(instance)X
+2549(number)X
+2847(3)X
+2920(of)X
+3022("matmul")X
+3394(has)X
+3540(terminated.)X
+3969(A)X
+576 2896(third-argument)N
+1131(value)X
+1348(of)X
+1447(0)X
+1517(will)X
+1681(cause)X
+1902("factor")X
+2205(to)X
+2300(be)X
+2409(initiated)X
+2726(only)X
+2909(when)X
+2 f
+3124(all)X
+1 f
+3243(instances)X
+3591(of)X
+3689("matmul")X
+576 3008(terminate.)N
+956(In)X
+1053(an)X
+1160(analogous)X
+1541(fashion,)X
+3 f
+1846(initiateD)X
+1 f
+2198(is)X
+2281(used)X
+2466(to)X
+2559(execute)X
+2852(components)X
+3302(conditional)X
+3724(upon)X
+3924(the)X
+576 3120(occurrence)N
+983(of)X
+1078(a)X
+1139(user-signaled)X
+1630(event,)X
+1865(normally)X
+2206(the)X
+2336 0.2898(availability)AX
+2757(of)X
+2852(data.)X
+3043(Thus,)X
+8 f
+735 3280 0.1942(initiateD\("chol","dataset7"\);)AN
+1 f
+576 3524(will)N
+761(delay)X
+999(the)X
+1154(execution)X
+1544(of)X
+1664("chol")X
+1936(until)X
+2147(some)X
+2381(other)X
+2610(process)X
+2921(signals)X
+3214(the)X
+3370(occurrence)X
+3803(of)X
+3924(the)X
+576 3636("dataset7")N
+972(event,)X
+1220(by)X
+1343(invoking)X
+1692(the)X
+3 f
+1834(ready)X
+1 f
+2049(\("dataset7"\))X
+2502(primitive.)X
+2883(All)X
+3030(variants)X
+3343(of)X
+3 f
+3450(initiate)X
+1 f
+3749(return)X
+3993(a)X
+576 3748(negative)N
+897(result)X
+1115(if)X
+1191(a)X
+1252(process)X
+1537(could)X
+1755(not)X
+1890(be)X
+1996(initiated,)X
+2332(thereby)X
+2619(enabling)X
+2946(the)X
+3077(invoker)X
+3369(to)X
+3461(take)X
+3631(appropriate)X
+576 3860(action.)N
+862(The)X
+1025(global)X
+1272(component)X
+1690(dependencies)X
+2190(of)X
+2289(the)X
+2423(application)X
+2841(may)X
+3018(therefore)X
+3360(be)X
+3468(speci\256ed)X
+3806(within)X
+576 3972(a)N
+640(startup)X
+905(process)X
+1193(by)X
+1306(the)X
+1440(use)X
+1583(of)X
+1682(appropriate)X
+3 f
+2109(initiate)X
+1 f
+2400(primitives)X
+2785(or)X
+2884(variants,)X
+3211(embedded)X
+3599(within)X
+3851(com-)X
+576 4084(mon)N
+765(selection)X
+1110(and)X
+1268(iteration)X
+1594(control)X
+1875(\257ow)X
+2062(constructs)X
+2450(available)X
+2800(in)X
+2900(the)X
+3039(host)X
+3217(language.)X
+3588(Of)X
+3711(course,)X
+3993(a)X
+576 4196(component)N
+991(itself)X
+1191(may)X
+1366(be)X
+1472(composed)X
+1852(of)X
+1948(several)X
+2220(subcomponents)X
+2791(\320)X
+2902(whose)X
+3149(dependencies)X
+3647(and)X
+3798(execu-)X
+576 4308(tion)N
+748(order)X
+967(are)X
+1108(indicated)X
+1466(in)X
+1569(an)X
+1686(analogous)X
+2076(manner)X
+2373(within)X
+2632(that)X
+2798(component.)X
+3267(Two)X
+3461(other)X
+3675(constructs)X
+576 4420(termed)N
+3 f
+862(terminate)X
+1 f
+1269(and)X
+3 f
+1438(waitprocess)X
+1 f
+1919(are)X
+2068(also)X
+2252(provided.)X
+2629(Both)X
+2843(take)X
+3032(a)X
+3113(component)X
+3547(name)X
+3780(and)X
+3949(an)X
+576 4532(instance)N
+894(number)X
+1192(\(or)X
+1323(0)X
+1395(to)X
+1492(mean)X
+1711(all)X
+1828(instances\))X
+2208(as)X
+2309(arguments;)X
+2729(the)X
+2865(\256rst)X
+3030(aborts)X
+3273(the)X
+3409(process)X
+3700(while)X
+3924(the)X
+576 4644(second)N
+842(blocks)X
+1094(the)X
+1224(caller)X
+1442(until)X
+1627(the)X
+1757(process)X
+2042(completes.)X
+3 f
+576 4980(2.2.)N
+752(Data)X
+954(Transfer)X
+1308(and)X
+1472(Barrier)X
+1778(Synchronization)X
+1 f
+776 5232(Inter-process)N
+1258(communication)X
+1832(via)X
+1964(message)X
+2286(passing)X
+2574(is)X
+2657(one)X
+2808(of)X
+2905(the)X
+3037(basic)X
+3242(facilities)X
+3572(supported)X
+3944(by)X
+3 f
+9 s
+576 5344(PVM)N
+1 f
+11 s
+740(.)X
+792(In)X
+895(the)X
+1033(interest)X
+1323(of)X
+1426(portability)X
+1825(and)X
+1982(wide)X
+2183 0.2452(applicability,)AX
+2678(the)X
+2816(primitives)X
+3205(to)X
+3303(accomplish)X
+3734(message)X
+576 5456(transfer)N
+872(have)X
+1066(been)X
+1260(derived)X
+1552(from)X
+1751(existing)X
+2059 0.2500(implementations)AX
+2677(\(e.g)X
+2839([9]\),)X
+3020(including)X
+3382(those)X
+3597(described)X
+3963(in)X
+576 5568([3].)N
+725(Certain)X
+1010(aspects,)X
+1311(however,)X
+1660(are)X
+1792(necessarily)X
+2208(different;)X
+2561(primary)X
+2865(among)X
+3130(them)X
+3331(is)X
+3414(addressing.)X
+3836(Since)X
+576 5680(the)N
+712(physical)X
+1035(location)X
+1349(of)X
+1451(processes)X
+1816(is)X
+1904(deliberately)X
+2350(transparent)X
+2770(to)X
+2868(user)X
+3043(programs,)X
+3426(message)X
+3753(destina-)X
+576 5792(tions)N
+783(are)X
+925(identi\256ed)X
+1294(by)X
+1417(a)X
+1491({component)X
+1960(name,)X
+2208(instance)X
+2532(number})X
+2878(pair.)X
+3071(Furthermore,)X
+3567(owing)X
+3821(to)X
+3924(the)X
+
+7 p
+%%Page: 7 7
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(7)X
+2348(-)X
+576 688(heterogeneous)N
+1108(nature)X
+1352(of)X
+1449(the)X
+1582(underlying)X
+1989(hardware)X
+2340(that)X
+3 f
+9 s
+2494(PVM)X
+1 f
+11 s
+2683(executes)X
+3011(upon,)X
+3234(it)X
+3309(is)X
+3393(necessary)X
+3759(for)X
+3886(user)X
+576 800(programs)N
+935(to)X
+1031(send)X
+1219(and)X
+1373(receive)X
+1654(typed)X
+1877(data)X
+2051(in)X
+2147(a)X
+2213(machine)X
+2538(independent)X
+2995(form.)X
+3214(To)X
+3338(enable)X
+3594(this,)X
+3770(a)X
+3835(set)X
+3959(of)X
+576 912(conversion)N
+989(routines)X
+1300(has)X
+1444(been)X
+1637(provided)X
+1977(\320)X
+2092(user)X
+2265(programs)X
+2624(invoke)X
+2892(these)X
+3101(routines)X
+3413(to)X
+3510(construct)X
+3861(mes-)X
+576 1024(sage)N
+754(buffers)X
+1024(and)X
+1173(to)X
+1264(retrieve)X
+1555(data)X
+1724(values)X
+1971(from)X
+2164(incoming)X
+2520(messages.)X
+776 1276(In)N
+871(keeping)X
+1172(with)X
+1351(popular)X
+1642(message)X
+1962(passing)X
+2249(mechanisms,)X
+2730(the)X
+3 f
+9 s
+2857(PVM)X
+11 s
+3044(send)X
+1 f
+3238(and)X
+3 f
+3388(receive)X
+1 f
+3675(constructs)X
+576 1388(incorporate)N
+1003(a)X
+1068("type")X
+1318(argument.)X
+1699(This)X
+1882(is)X
+1967(the)X
+2101(only)X
+2284(argument)X
+2642(to)X
+3 f
+2736(receive)X
+1 f
+3000(,)X
+3047(while)X
+3 f
+3268(send)X
+1 f
+3464(requires)X
+3772(a)X
+3836(desti-)X
+576 1500(nation)N
+827(component)X
+1249(name)X
+1470(and)X
+1628(instance)X
+1948(number)X
+2248(as)X
+2352(additional)X
+2737(arguments.)X
+3157(The)X
+3325(type)X
+3508(parameter)X
+3891(per-)X
+576 1612(mits)N
+759(the)X
+897(selective)X
+1236(reception)X
+1594(of)X
+1697(messages)X
+2059(and)X
+2216(has)X
+2363(been)X
+2559(found)X
+2794(to)X
+2892(be)X
+3004(extremely)X
+3386(useful)X
+3630(in)X
+3728(practical)X
+576 1724(applications.)N
+1053(It)X
+1135(should)X
+1398(be)X
+1509(noted)X
+1733(that)X
+1894(neither)X
+2167(the)X
+2303(data)X
+2478(buffer)X
+2720(itself)X
+2925(nor)X
+3071(its)X
+3184(length)X
+3434(appear)X
+3697(explicitly)X
+576 1836(as)N
+684(arguments)X
+1086(\320)X
+1209(owing)X
+1464(to)X
+1568(data)X
+1749(representation)X
+2282(and)X
+2443(size)X
+2614(differences)X
+3038(on)X
+3160(different)X
+3497(machines,)X
+3886(user)X
+576 1948(programs)N
+940(should)X
+1207(only)X
+1396(access)X
+1652(messages)X
+2016(using)X
+2239(the)X
+2380(conversion)X
+2799(routines.)X
+3138(Shown)X
+3415(in)X
+3517(Figure)X
+3780(3)X
+3857(is)X
+3949(an)X
+576 2060(example)N
+897(of)X
+992(data)X
+1161(transfer)X
+1451(between)X
+1766(two)X
+1920(component)X
+2334(processes.)X
+8 f
+735 2220(/*)N
+894(Sending)X
+1318(Process)X
+1742(*/)X
+735 2332 0.1969(/*-----------------*/)AN
+735 2444(initsend\(\);)N
+2537(/*)X
+2696(Initialize)X
+3279(send)X
+3544(buffer)X
+3915(*/)X
+735 2556(putstring\("The)N
+1530(square)X
+1901(root)X
+2166(of)X
+2325("\);)X
+2537(/*)X
+2696(Store)X
+3014(values)X
+3385(in)X
+3915(*/)X
+735 2668(putint\(2\);)N
+2537(/*)X
+2696(machine)X
+3120(independent)X
+3915(*/)X
+735 2780(putstring\("is)N
+1477("\);)X
+2537(/*)X
+2696(form)X
+3915(*/)X
+735 2892(putfloat\(1.414\);)N
+735 3004 0.1964(send\("receiver",4,99\);)AN
+2537(/*)X
+2696(Instance)X
+3173(4;)X
+3332(type)X
+3597(99)X
+3915(*/)X
+735 3228(/*)N
+894(Receiving)X
+1424(Process)X
+1848(*/)X
+735 3340 0.1960(/*-------------------*/)AN
+735 3452(char)N
+1000 0.1992(msg1[32],msg2[4];)AX
+735 3564(int)N
+947(num;)X
+1212(float)X
+1530(sqnum;)X
+735 3676(recv\(99\);)N
+2537(/*)X
+2696(Receive)X
+3120(msg)X
+3332(of)X
+3491(type)X
+3756(99)X
+3915(*/)X
+735 3788(getstring\(msg1\);)N
+2537(/*)X
+2696(Extract)X
+3120(values)X
+3491(in)X
+3915(*/)X
+735 3900(getint\(&num\);)N
+2537(/*)X
+2696(a)X
+2802(machine)X
+3226(specific)X
+3915(*/)X
+735 4012(getstring\(msg2\);)N
+2537(/*)X
+2696(manner)X
+3915(*/)X
+735 4124 0.1992(getfloat\(&sqnum\);)AN
+1 f
+1667 4396(Figure)N
+1919(3)X
+1985(:)X
+2032(User)X
+2219(process)X
+2504(data)X
+2673(transfer)X
+776 4760(In)N
+883(order)X
+1102(for)X
+1238(a)X
+1311(receiving)X
+1673(process)X
+1970(to)X
+2073(obtain)X
+2328(additional)X
+2716(information)X
+3167(about)X
+3398(the)X
+3541(most)X
+3748(recently)X
+576 4872(received)N
+901(message,)X
+1248(the)X
+3 f
+1383(recvinfo)X
+1 f
+1718(construct)X
+2068(is)X
+2154(provided;)X
+2519(this)X
+2674(returns)X
+2944(the)X
+3078(name)X
+3295(and)X
+3448(instance)X
+3763(number)X
+576 4984(of)N
+672(the)X
+803(sending)X
+1100(process)X
+1386(and)X
+1536(the)X
+1667(message)X
+1988(length.)X
+2276(In)X
+2372(addition,)X
+2707(two)X
+2862(variants)X
+3164(of)X
+3261(the)X
+3 f
+3393(recv)X
+1 f
+3578(construct)X
+3925(are)X
+576 5096(provided.)N
+936(The)X
+1097(\256rst,)X
+3 f
+1280(recv1)X
+1 f
+1485(,)X
+1531(permits)X
+1820(the)X
+1952(user)X
+2122(to)X
+2215(specify)X
+2493(the)X
+2625(maximum)X
+3008(number)X
+3301(of)X
+3398(messages)X
+3754(of)X
+3851(other)X
+576 5208(types)N
+790(that)X
+951(may)X
+1131(arrive)X
+1364(in)X
+1461(the)X
+1597(interim)X
+1882(\(i.e.)X
+2048(while)X
+2273(waiting)X
+2567(for)X
+2698(a)X
+2766(message)X
+3093(of)X
+3195(the)X
+3332(speci\256ed)X
+3674(type\).)X
+3906(If)X
+3993(a)X
+576 5320(message)N
+902(of)X
+1003(the)X
+1138(anticipated)X
+1553(type)X
+1732(does)X
+1920(not)X
+2060(arrive)X
+2292(within)X
+2545(this)X
+2700(window,)X
+3032(an)X
+3142(error)X
+3339(value)X
+3557(is)X
+3643(returned)X
+3963(to)X
+576 5432(the)N
+731(program,)X
+1098(thus)X
+1292(enabling)X
+1643(the)X
+1798(detection)X
+2169(of)X
+2289(and)X
+2463(possible)X
+2799(recovery)X
+3154(from)X
+3373(incorrect)X
+3734(program)X
+576 5544(behavior)N
+948(or)X
+1085(unacceptable)X
+1609(levels)X
+1878(of)X
+2014(asynchrony.)X
+2504(The)X
+2704(second)X
+3011(variant,)X
+3 f
+3341(recv2)X
+1 f
+3546(,)X
+3631(allows)X
+3924(the)X
+576 5656(speci\256cation)N
+1045(of)X
+1141(a)X
+1203(timeout)X
+1497(value)X
+1711(and)X
+1861(is)X
+1943(valuable)X
+2265(in)X
+2357(preventing)X
+2757(certain)X
+3020(forms)X
+3248(of)X
+3344(deadlock)X
+3686(as)X
+3783(well)X
+3959(as)X
+576 5768(in)N
+670(user-level)X
+1042(detection)X
+1391(of)X
+1489(failed)X
+1715(components.)X
+2188(Also)X
+2379(provided)X
+2717(is)X
+2801(the)X
+3 f
+2934(broadcast)X
+1 f
+3330(primitive)X
+3680(that)X
+3837(sends)X
+
+8 p
+%%Page: 8 8
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(8)X
+2348(-)X
+576 688(a)N
+637(message)X
+957(to)X
+1048(all)X
+1159(instances)X
+1504(of)X
+1599(a)X
+1660(speci\256ed)X
+1995(component.)X
+776 940(Synchronization)N
+1377(via)X
+1508(barriers)X
+1799(is)X
+1881(a)X
+1944(common)X
+2277(operation)X
+2634(in)X
+2727(many)X
+2947(applications.)X
+3442(Under)X
+3 f
+9 s
+3681(PVM)X
+1 f
+11 s
+3845(,)X
+3891(bar-)X
+576 1052(rier)N
+725(synchronization)X
+1315(is)X
+1401(accomplished)X
+1913(using)X
+2131(the)X
+3 f
+2266(barrier)X
+1 f
+2567(construct.)X
+2939(This)X
+3122(construct)X
+3471(takes)X
+3678(an)X
+3787(integer)X
+576 1164(argument;)N
+975(an)X
+1099(instance)X
+1429(of)X
+1543(a)X
+1623(component)X
+2056(invoking)X
+2411(this)X
+2581(construct)X
+2946(will)X
+3126(block)X
+3364(until)X
+3569(the)X
+3719(speci\256ed)X
+576 1276(number)N
+870(of)X
+968(instances)X
+1316(of)X
+1414(the)X
+1547(component)X
+1963(also)X
+2129(arrive)X
+2358(at)X
+2446(the)X
+2578(barrier.)X
+2858(For)X
+3004(example,)X
+3349(to)X
+3442(measure)X
+3759(the)X
+3891(per-)X
+576 1388(formance)N
+938(of)X
+1041(algorithm)X
+1415(sections,)X
+1751(participating)X
+2228(components)X
+2684(may)X
+2866(execute)X
+3165(the)X
+3304(following)X
+3678(section)X
+3959(of)X
+576 1500(code:)N
+8 f
+841 1772(.)N
+947(.)X
+1053(.)X
+841 1884(barrier\(k\);)N
+1795(/*)X
+1954(There)X
+2272(are)X
+2484(k)X
+2590(instances)X
+3120(executing)X
+3650(*/)X
+841 1996(/*)N
+1000(Get)X
+1212(start)X
+1530(time)X
+1795(*/)X
+841 2108(/*)N
+1000(Perform)X
+1424(computations)X
+2113(*/)X
+841 2220(/*)N
+1000(Get)X
+1212(end)X
+1424(time)X
+1689(*/)X
+841 2332(barrier\(k\);)N
+841 2444(/*)N
+1000(Compute)X
+1424(global)X
+1795(maximum)X
+2219(of)X
+2378(\(end)X
+2643(time)X
+2908(-)X
+3014(start)X
+3332(time\))X
+3650(*/)X
+1 f
+576 2632(When)N
+808(the)X
+938(barrier)X
+1194(construct)X
+1539(has)X
+1678(the)X
+1809(above)X
+2042(semantics)X
+2413(however,)X
+2760(it)X
+2833(is)X
+2915(possible)X
+3227(that)X
+3383(different)X
+3709(instances)X
+576 2744(invoke)N
+845(the)X
+3 f
+982(barrier)X
+1 f
+1285(construct)X
+1636(with)X
+1821(different)X
+2152(arguments.)X
+2569(Any)X
+2748(such)X
+2937(con\257icts)X
+3264(are)X
+3399(resolved)X
+3725(by)X
+3841(using)X
+576 2856(the)N
+708(maximum)X
+1091(speci\256ed)X
+1428(number)X
+1721(as)X
+1818(the)X
+1950(barrier)X
+2208(count.)X
+2472(The)X
+3 f
+9 s
+2629(PVM)X
+1 f
+11 s
+2817(system)X
+3086(also)X
+3252(attempts)X
+3576(to)X
+3669(detect)X
+3905(and)X
+576 2968(correct)N
+849(barrier)X
+1112(deadlocks)X
+1493(by)X
+1610(notifying)X
+1963(invoking)X
+2306(processes)X
+2671(if)X
+2754(some)X
+2969(instances)X
+3321(of)X
+3423(a)X
+3490(component)X
+3910(ter-)X
+576 3080(minate)N
+850(before)X
+1107(they)X
+1292(reach)X
+1515(a)X
+1587(barrier,)X
+1876(and)X
+2036(the)X
+2177(residual)X
+2489(number)X
+2791(of)X
+2897(instances)X
+3253(cannot)X
+3521(form)X
+3725(a)X
+3798(barrier)X
+576 3192(quorum.)N
+897(In)X
+995(such)X
+1181(situations,)X
+1567(live)X
+1725(processes)X
+2086(return)X
+2321(from)X
+2517(a)X
+3 f
+2581(barrier)X
+1 f
+2880(call)X
+3032(with)X
+3213(a)X
+3276(negative)X
+3599(result)X
+3819(value.)X
+576 3304(In)N
+673(addition)X
+987(to)X
+1080(barriers,)X
+1394(or)X
+1491(as)X
+1588(an)X
+1695(alternative,)X
+2114(the)X
+3 f
+2247(waituntil)X
+1 f
+2610(construct)X
+2958(is)X
+3042(also)X
+3209(provided)X
+3547(as)X
+3645(a)X
+3709(means)X
+3959(of)X
+576 3416(synchronization.)N
+1201(This)X
+1398(construct)X
+1760(\(suggested)X
+2175(in)X
+2283([10]\))X
+2497(takes)X
+2717(an)X
+2839(event)X
+3069(name)X
+3299(as)X
+3411(an)X
+3533(argument)X
+3905(and)X
+576 3528(blocks)N
+834(until)X
+1026(another)X
+1319(process)X
+1611(indicates)X
+1954(the)X
+2091(occurrence)X
+2505(of)X
+2607(that)X
+2769(event)X
+2989(by)X
+3106(using)X
+3326(the)X
+3 f
+3463(ready)X
+1 f
+3707(primitive)X
+576 3640(mentioned)N
+971(earlier.)X
+3 f
+576 3976(2.3.)N
+752(Shared)X
+1043(Memory)X
+1387(and)X
+1551(Mutual)X
+1852(Exclusion)X
+1 f
+776 4228(The)N
+945(use)X
+1094(of)X
+1199(shared)X
+1461(memory)X
+1788(to)X
+1890(synchronize)X
+2348(and)X
+2508(communicate)X
+3017(between)X
+3343(processes)X
+3712(is)X
+3804(a)X
+3876(con-)X
+576 4340(venient)N
+865(and)X
+1020(well)X
+1200(understood)X
+1619(paradigm,)X
+2002(and)X
+2157(the)X
+3 f
+9 s
+2289(PVM)X
+1 f
+11 s
+2481(system)X
+2754(provides)X
+3085(such)X
+3274(an)X
+3385(interface)X
+3721(for)X
+3851(algo-)X
+576 4452(rithms)N
+831(that)X
+993(are)X
+1129(best)X
+1300(expressed)X
+1675(in)X
+1773(these)X
+1983(terms.)X
+2230(This)X
+2416(facility,)X
+2718(however,)X
+3071(should)X
+3335(be)X
+3448(used)X
+3639(judiciously)X
+576 4564(\320)N
+693(since)X
+903(shared)X
+1161(memory)X
+1484(is)X
+1572(emulated)X
+1925(by)X
+3 f
+9 s
+2038(PVM)X
+1 f
+11 s
+2231(on)X
+2347(distributed)X
+2753(memory)X
+3075(architectures,)X
+3575(some)X
+3789(perfor-)X
+576 4676(mance)N
+832(degradation)X
+1274(is)X
+1359(inevitable)X
+1735(when)X
+1952(the)X
+2087(granularity)X
+2501(of)X
+2601(access)X
+2852(is)X
+2938(very)X
+3121(\256ne.)X
+3302(Nevertheless,)X
+3805(such)X
+3993(a)X
+576 4788(feature)N
+854(is)X
+947(useful)X
+1196(and)X
+1357(valuable.)X
+1712(For)X
+1868(example,)X
+2223(when)X
+2447(using)X
+2672(the)X
+2814("bag)X
+3011(of)X
+3117(tasks")X
+3362(and)X
+3522("worker)X
+3839(pool")X
+576 4900(approach,)N
+945(the)X
+1078(shared)X
+1332(memory)X
+1651(model)X
+1897(permits)X
+2188(greater)X
+2458(control,)X
+2756(increased)X
+3114(overall)X
+3385(throughput,)X
+3820(and)X
+3973(is)X
+576 5012(affected)N
+885(less)X
+1042(by)X
+1155(load)X
+1332(imbalances,)X
+1776(provided)X
+2114(the)X
+2247(tasks)X
+2448(are)X
+2580(of)X
+2678(suf\256ciently)X
+3100(large)X
+3301(size.)X
+3485(Since)X
+3 f
+9 s
+3702(PVM)X
+1 f
+11 s
+3891(per-)X
+576 5124(mits)N
+755(each)X
+942(worker)X
+1216(in)X
+1311(the)X
+1445(pool)X
+1628(to)X
+1723(run)X
+1866(on)X
+1981(different)X
+2311(architectures,)X
+2810(the)X
+2945(individual)X
+3331(worker)X
+3606(components)X
+576 5236(\(or)N
+710(groups)X
+981(thereof\))X
+1291(may)X
+1475(be)X
+1590(written)X
+1872(to)X
+2 f
+1973(internally)X
+1 f
+2348(use)X
+2496(either)X
+2728(message)X
+3057(passing)X
+3352(or)X
+3456(shared)X
+3716(memory.)X
+576 5348(Section)N
+873(5)X
+949(describes)X
+1308(an)X
+1423(experiment)X
+1852(where)X
+2098(this)X
+2258(facility)X
+2541(was)X
+2709(successfully)X
+3172(used)X
+3366(to)X
+3468(enable)X
+3731(a)X
+3803(shared)X
+576 5460(memory)N
+892(multiprocessor)X
+1438(to)X
+1529(cooperate)X
+1893(with)X
+2072(a)X
+2133(hypercube)X
+2521(in)X
+2612(the)X
+2742(solution)X
+3049(of)X
+3144(an)X
+3249(application)X
+3664(problem.)X
+776 5712(The)N
+951(shared)X
+1218(memory)X
+1550(primitives)X
+1947(provided)X
+2298(are)X
+2444(modeled)X
+2787(once)X
+2992(again)X
+3222(after)X
+3422(popular,)X
+3752(existing)X
+576 5824 0.2333(implementations.)AN
+1238(A)X
+1329(shared)X
+1585(memory)X
+1906(segment)X
+2227(is)X
+2313(\256rst)X
+2477(allocated)X
+2823(by)X
+2938(invoking)X
+3279(the)X
+3 f
+3414(shmget)X
+1 f
+3709(construct)X
+
+9 p
+%%Page: 9 9
+11 s 11 xH 0 xS 1 f
+2231 400(-)N
+2282(9)X
+2348(-)X
+576 688(that)N
+731(takes)X
+934(a)X
+995(string)X
+1218(valued)X
+1476(identi\256er)X
+1818(and)X
+1968(a)X
+2030(segment)X
+2347(size)X
+2507(in)X
+2599(bytes.)X
+2852(To)X
+2973(acquire)X
+3255(a)X
+3317(shared)X
+3569(memory)X
+3886(seg-)X
+576 800(ment)N
+783(for)X
+915(use,)X
+1084(a)X
+1153(user)X
+1329(process)X
+1622(invokes)X
+1926(the)X
+3 f
+2064(shmat)X
+1 f
+2323(construct,)X
+2698(specifying)X
+3094(the)X
+3231(segment)X
+3554(identi\256er,)X
+3924(the)X
+576 912(address)N
+869(within)X
+1125(the)X
+1263(process)X
+1556(at)X
+1650(which)X
+1895(the)X
+2033(segment)X
+2357(is)X
+2446(to)X
+2546(be)X
+2660(mapped,)X
+2992(a)X
+3062(\257ag)X
+3225(indicating)X
+3610(whether)X
+3924(the)X
+576 1024(segment)N
+899(is)X
+987(to)X
+1085(be)X
+1197(mapped)X
+1505(read-only)X
+1871(or)X
+1973(read-write,)X
+2385(and)X
+2541(a)X
+2609(timeout)X
+2909(value.)X
+3150(This)X
+3335(construct)X
+3686 0.4306(implicitly)AX
+576 1136(incorporates)N
+1033(a)X
+1094(lock)X
+1268(operation;)X
+1648(if)X
+1724(mutually)X
+2061(exclusive)X
+2416(access)X
+2662(to)X
+2754(the)X
+2885(segment)X
+3202(cannot)X
+3460(be)X
+3566(provided,)X
+3924(the)X
+576 1248(invoking)N
+912(process)X
+1197(is)X
+1278(suspended)X
+1666(\320)X
+1776(for)X
+1900(a)X
+1961(period)X
+2208(not)X
+2343(to)X
+2434(exceed)X
+2700(the)X
+2830(speci\256ed)X
+3165(timeout)X
+3458(value.)X
+776 1500(The)N
+950(attach)X
+1198(operation)X
+1568(described)X
+1942(above)X
+2189(maps)X
+2412(a)X
+2488(contiguous,)X
+2934(untyped)X
+3255(block)X
+3488(of)X
+3598(bytes)X
+3822(at)X
+3924(the)X
+576 1612(speci\256ed)N
+914(address.)X
+1224(In)X
+1322(most)X
+1519(situations)X
+1883(however,)X
+2232(shared)X
+2486(memory)X
+2805(segments)X
+3158(will)X
+3321(be)X
+3429(used)X
+3615(to)X
+3709(store)X
+3905(and)X
+576 1724(manipulate)N
+998(typed)X
+1223(data.)X
+1421(In)X
+1523(order)X
+1737(to)X
+1835(permit)X
+2095(this)X
+2252(among)X
+2522(dissimilar)X
+2901(machines,)X
+3286(typed)X
+3512(variants)X
+3821(of)X
+3924(the)X
+576 1836(attach)N
+813(construct)X
+1162(are)X
+1295(provided.)X
+1656(For)X
+1804(example,)X
+2151(the)X
+3 f
+2285(shmatint)X
+1 f
+2643(construct)X
+2991(takes)X
+3197(an)X
+3305(integer)X
+3575(pointer)X
+3850(as)X
+3948(its)X
+576 1948(second)N
+843(argument,)X
+1221(while)X
+1440(the)X
+3 f
+1572(shmat\257oat)X
+1 f
+1991(variant)X
+2260(is)X
+2343(used)X
+2528(for)X
+2654(shared)X
+2907(memory)X
+3225(regions)X
+3508(that)X
+3665(hold)X
+3846(\257oat-)X
+576 2060(ing)N
+725(point)X
+943(values.)X
+1248(\(It)X
+1367(should)X
+1637(be)X
+1755(noted)X
+1986(that)X
+2154(typed)X
+2385(data)X
+2567(transfer)X
+2870(between)X
+3198(dissimilar)X
+3582(architectures)X
+576 2172(could)N
+807(lead)X
+989(to)X
+1093(loss)X
+1266(of)X
+1375(precision)X
+1734(or)X
+1843(to)X
+1948(truncation)X
+2342(owing)X
+2598(to)X
+2703(wordsize)X
+3056(differences.)X
+3526(Both)X
+3734(message)X
+576 2284(passing)N
+865(and)X
+1017(shared)X
+1271(memory)X
+1590(mechanisms)X
+2051(are)X
+2183(subject)X
+2458(to)X
+2552(this)X
+2705(drawback.)X
+3115(The)X
+3 f
+9 s
+3273(PVM)X
+1 f
+11 s
+3462(system)X
+3732(attempts)X
+576 2396(to)N
+671(minimize)X
+1032(this)X
+1186(by)X
+1300(utilizing)X
+1623(the)X
+1758(largest)X
+2020(size)X
+2184(possible)X
+2500(for)X
+2629(typed)X
+2852(data)X
+3026(values.\))X
+3351(When)X
+3588(a)X
+3654(process)X
+3944(no)X
+576 2508(longer)N
+836(needs)X
+1071(exclusive)X
+1439(access)X
+1698(to)X
+1802(a)X
+1876(region,)X
+2158(it)X
+2243(invokes)X
+2552(the)X
+3 f
+2694(shmdt)X
+1 f
+2962(construct)X
+3319(\(or)X
+3455(a)X
+3528(typed)X
+3758(variant\))X
+576 2620(whereupon)N
+993(the)X
+1128(lock)X
+1307(is)X
+1393(released)X
+1708(and)X
+1862(the)X
+1997(region)X
+2249(unmapped.)X
+2666(Finally,)X
+2967(the)X
+3 f
+3103(shmfree)X
+1 f
+3433(construct)X
+3784(is)X
+3871(used)X
+576 2732(to)N
+670(deallocate)X
+1053(a)X
+1117(segment)X
+1436(of)X
+1534(shared)X
+1788(memory)X
+2107(when)X
+2322(it)X
+2397(is)X
+2481(no)X
+2594(longer)X
+2844(required.)X
+3183(Shown)X
+3451(in)X
+3544(Figure)X
+3798(4)X
+3866(is)X
+3949(an)X
+576 2844(example)N
+897(of)X
+992(the)X
+1122(use)X
+1261(of)X
+1356(these)X
+1559(constructs)X
+1938(to)X
+2029(pass)X
+2202(an)X
+2307(array)X
+2509(of)X
+2604(real)X
+2758(numbers)X
+3083(between)X
+3398(two)X
+3552(processes.)X
+8 f
+735 3116(/*)N
+894(Process)X
+1318(A)X
+1424(*/)X
+735 3228(/*-----------*/)N
+735 3340(if)N
+894 0.1964(\(shmget\("matrx",1024\)\))AX
+2113(error\(\);/*)X
+2696(Allocation)X
+3279(failure)X
+3862(*/)X
+735 3452(while)N
+2537(/*)X
+2696(Try)X
+2908(to)X
+3067(lock)X
+3332(&)X
+3438(map)X
+3650(seg)X
+3862(*/)X
+894 3564 0.1935(\(shmatfloat\("matrx",fp,"RW",5\)\);)AN
+735 3676(for)N
+947(\(i=0;i<256;i++\))X
+1795(*fp++)X
+2113(=)X
+2219(a[i];)X
+2537(/*)X
+2696(Fill)X
+2961(in)X
+3120(shmem)X
+3438(segment)X
+3862(*/)X
+735 3788 0.1974(shmdtfloat\("matrx"\);)AN
+2537(/*)X
+2696(Unlock)X
+3067(&)X
+3173(unmap)X
+3491(region)X
+3862(*/)X
+735 4012(/*)N
+894(Process)X
+1318(B)X
+1424(*/)X
+735 4124(/*-----------*/)N
+735 4236(while)N
+2537(/*)X
+2696(Lock)X
+2961(&)X
+3067(map;)X
+3332(note:reader*/)X
+894 4348 0.1934(\(shmatfloat\("matrx",fp,"R",5\)\);/*)AN
+2696(may)X
+2908(lock)X
+3173(before)X
+3544(writer)X
+3915(*/)X
+735 4460(for)N
+947(\(i=0;i<256;i++\))X
+1795(a[i])X
+2060(=)X
+2166(*fp++;)X
+2537(/*)X
+2696(Read)X
+2961(out)X
+3173(values)X
+3915(*/)X
+735 4572 0.1974(shmdtfloat\("matrx"\);)AN
+2537(/*)X
+2696(Unlock)X
+3067(&)X
+3173(unmap)X
+3491(region)X
+3915(*/)X
+735 4684 0.1992(shmfree\("matrx"\);)AN
+2537(/*)X
+2696(Deallocate)X
+3279(mem)X
+3491(segment)X
+3915(*/)X
+1 f
+1581 4844(Figure)N
+1833(4)X
+1899(:)X
+1946(Use)X
+2104(of)X
+2199(shared)X
+2450(memory)X
+2766(for)X
+2890(IPC)X
+776 5096(While)N
+1014(shared)X
+1265(memory)X
+1581(is)X
+1662(perhaps)X
+1957(the)X
+2087(most)X
+2281(common)X
+2612(resource)X
+2931(that)X
+3086(processes)X
+3445(require)X
+3717(mutually)X
+576 5208(exclusive)N
+957(access)X
+1229(to,)X
+1368(it)X
+1466(is)X
+1573(possible)X
+1910(that)X
+2091(the)X
+3 f
+9 s
+2243(PVM)X
+1 f
+11 s
+2455(environment)X
+2949(contains)X
+3291(other)X
+3520(resources)X
+3899(that)X
+576 5320(processes)N
+946(must)X
+1152(access)X
+1410(in)X
+1513(a)X
+1586(similar)X
+1866(manner.)X
+2186(To)X
+2318(accommodate)X
+2842(such)X
+3037(requirements,)X
+3553(a)X
+3626(generalized)X
+576 5432(locking)N
+864(facility)X
+1138(is)X
+1220(also)X
+1385(provided.)X
+1743(The)X
+3 f
+1903(lock)X
+1 f
+2082(construct)X
+2427(permits)X
+2714(the)X
+2844(logical)X
+3107(locking)X
+3394(of)X
+3489(an)X
+3594(entity)X
+3818(that)X
+3973(is)X
+576 5544(named)N
+840(by)X
+957(a)X
+1025(string)X
+1255(argument;)X
+1642(the)X
+3 f
+9 s
+1776(PVM)X
+1 f
+11 s
+1970(system)X
+2245(blocks)X
+2505(other)X
+2716(processes)X
+3082(wishing)X
+3391(to)X
+3490(lock)X
+3672(this)X
+3830(entity)X
+576 5656(until)N
+769(the)X
+907(possessor)X
+1273(invokes)X
+1577(the)X
+3 f
+1715(unlock)X
+1 f
+2000(construct.)X
+2397(For)X
+2549(example,)X
+2899(different)X
+3231(components)X
+3686(of)X
+3788(a)X
+3856(large)X
+576 5768(application)N
+996(may)X
+1175(wish)X
+1368(to)X
+1464(output)X
+1717(results)X
+1974(periodically)X
+2424(to)X
+2521(a)X
+2588(user)X
+2762(terminal.)X
+3107(To)X
+3233(avoid)X
+3457(interference)X
+3905(and)X
+
+10 p
+%%Page: 10 10
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(10)X
+2370(-)X
+576 688(to)N
+670(distinguish)X
+1083(the)X
+1216(source)X
+1470(of)X
+1568(the)X
+1701(output,)X
+1974(components)X
+2425(may)X
+2602(adopt)X
+2823(a)X
+2887(convention)X
+3303(that)X
+3460(requires)X
+3767(locking)X
+576 800(")N
+7 f
+612(terminal)X
+1 f
+1036(")X
+1100(before)X
+1352(printing)X
+1660(messages)X
+2021(or)X
+2123(results.)X
+2404(Another)X
+2721(situation)X
+3055(where)X
+3298(such)X
+3488(a)X
+3556(facility)X
+3836(could)X
+576 912(be)N
+685(useful)X
+926(may)X
+1104(be)X
+1213(found)X
+1444(in)X
+1539(the)X
+1673(shared)X
+1928(memory)X
+2248(example)X
+2573(in)X
+2668(Figure)X
+2924(4.)X
+3016(In)X
+3115(that)X
+3274(example,)X
+3621(it)X
+3697(is)X
+3782(easy)X
+3963(to)X
+576 1024(see)N
+714(that)X
+873(the)X
+1007(processes)X
+1369(may)X
+1547(access)X
+1797(the)X
+1931(shared)X
+2186(memory)X
+2506(segment)X
+2826(in)X
+2922(an)X
+3032(incorrect)X
+2 f
+3372(order)X
+1 f
+3594(even)X
+3787(though)X
+576 1136(each)N
+767(will)X
+935(have)X
+1131(exclusive)X
+1494(access)X
+1748(to)X
+1847(it.)X
+1949(A)X
+2042(possible)X
+2361(recti\256cation)X
+2813(of)X
+2915(this)X
+3072(situation)X
+3406(is)X
+3494(to)X
+3592(use)X
+3738(the)X
+3 f
+3875(lock)X
+1 f
+576 1248(construct)N
+925(as)X
+1025(shown)X
+1281(in)X
+1377(Figure)X
+1634(5;)X
+1730(however,)X
+2081(in)X
+2177(practice)X
+2483(it)X
+2560(is)X
+2646(more)X
+2854(likely)X
+3083(that)X
+3243(a)X
+3309(transmitted)X
+3734(message)X
+576 1360(or)N
+671(the)X
+3 f
+801(waituntil)X
+1 f
+1161(facility)X
+1434(will)X
+1594(be)X
+1699(used)X
+1882(to)X
+1973(resolve)X
+2249(such)X
+2432(situations.)X
+8 f
+735 1632(/*)N
+894(Process)X
+1318(A)X
+1424(*/)X
+735 1744(/*-----------*/)N
+735 1856 0.1969(lock\("fillmatrix",5\);)AN
+735 1968(/*)N
+894(Allocate,)X
+1424(attach,)X
+1848(fill,)X
+2166(and)X
+2378(detach)X
+2749(shared)X
+3120(mem)X
+3332(segment.)X
+3809(*/)X
+735 2080 0.1969(unlock\("fillmatrix"\);)AN
+735 2304(/*)N
+894(Process)X
+1318(B)X
+1424(*/)X
+735 2416(/*-----------*/)N
+735 2528(loop:)N
+894 2640 0.1969(lock\("fillmatrix",5\);)AN
+894 2752(if)N
+1053(\(shmatfloat\(...\))X
+1954(==)X
+2113 0.1974(SEGMENT_NONEXISTENT\))AX
+3226({)X
+1053 2864 0.1969(unlock\("fillmatrix"\);)AN
+1053 2976(sleep\(1\);)N
+1053 3088(goto)N
+1318(loop;)X
+894 3200(})N
+735 3312(/*)N
+894(Read)X
+1159(values)X
+1530(out)X
+1742(of)X
+1901(shared)X
+2272(mem)X
+2484(segment,)X
+2961(detach,)X
+3385(&)X
+3491(free)X
+3756(*/)X
+1 f
+1651 3472(Figure)N
+1903(5)X
+1969(:)X
+2016(Use)X
+2174(of)X
+2269(the)X
+7 f
+2399(lock)X
+1 f
+2633(construct)X
+776 3836(It)N
+855(should)X
+1115(be)X
+1223(noted)X
+1444(that)X
+1602(the)X
+3 f
+1735(lock)X
+1 f
+1917(construct)X
+2265(is)X
+2350(intended)X
+2680(in)X
+3 f
+9 s
+2771(PVM)X
+1 f
+11 s
+2961(for)X
+3089(obtaining)X
+3449(exclusive)X
+3808(access)X
+576 3948(to)N
+674(resources)X
+1033(at)X
+1125(a)X
+1192(large-grained)X
+1689(level,)X
+1911(as)X
+2012(opposed)X
+2333(to)X
+2430(loop)X
+2615(level)X
+2815(locking)X
+3108(of)X
+3209(shared)X
+3466(variables)X
+3812(that)X
+3973(is)X
+576 4060(common)N
+908(on)X
+1019(shared)X
+1271(memory)X
+1588(machines.)X
+1966(Once)X
+2174(again,)X
+2410(a)X
+2473(component)X
+2889(that)X
+3046(executes)X
+3373(on)X
+3485(such)X
+3670(a)X
+3733(machine)X
+576 4172(would)N
+833(be)X
+953(programmed)X
+1440(to)X
+1546(use)X
+1699(internal)X
+2005(locking)X
+2306(constructs)X
+2699(where)X
+2949(appropriate,)X
+3408(and)X
+3 f
+9 s
+3567(PVM)X
+1 f
+11 s
+3767(locking)X
+576 4284(facilities)N
+905(for)X
+1032(resource)X
+1354(sharing)X
+1638(between)X
+1956(other)X
+2162(components)X
+2613(that)X
+2771(executed)X
+3109(on)X
+3222(other)X
+3428(architectures.)X
+3925(An)X
+576 4396(example)N
+903(code)X
+1097(skeleton)X
+1419(depicting)X
+1776(this)X
+1932(situation)X
+2265(on)X
+2381(a)X
+2447(Sequent)X
+2758(shared)X
+3014(memory)X
+3335(multiprocessor)X
+3886([19])X
+576 4508(is)N
+657(shown)X
+908(in)X
+999(Figure)X
+1251(6.)X
+3 f
+576 4956(2.4.)N
+752(Miscellaneous)X
+1303(Facilities)X
+1 f
+776 5208(In)N
+874(addition)X
+1189(to)X
+1284(the)X
+1418(primary)X
+1723(constructs)X
+2106(described)X
+2469(in)X
+2564(the)X
+2698(preceding)X
+3071(sections,)X
+3403(a)X
+3468(few)X
+3625(miscellane-)X
+576 5320(ous)N
+737(constructs)X
+1132(are)X
+1277(also)X
+1457(provided.)X
+1830(The)X
+3 f
+2005(status)X
+1 f
+2262(construct)X
+2623(takes)X
+2842(a)X
+2919(component)X
+3349(name)X
+3578(and)X
+3743(instance)X
+576 5432(number)N
+870(as)X
+968(arguments)X
+1360(and)X
+1512(returns)X
+1781(status)X
+2007(and)X
+2159(location)X
+2469(information)X
+2911(regarding)X
+3274(that)X
+3433(component.)X
+3895(The)X
+3 f
+576 5544(entercomp)N
+1 f
+1000(construct)X
+1347(permits)X
+1636(dynamic)X
+1963(additions)X
+2310(to)X
+2402(the)X
+2533(component)X
+2948(description)X
+3363(table.)X
+3580(The)X
+3 f
+3740(shmstat)X
+1 f
+576 5656(construct)N
+929(is)X
+1018(used)X
+1209(to)X
+1308(obtain)X
+1559(information)X
+2007(about)X
+2234(active)X
+2476(shared)X
+2736(memory)X
+3061(regions,)X
+3373(while)X
+3600(the)X
+3 f
+3739(lockstat)X
+1 f
+576 5768(primitive)N
+935(reports)X
+1213(the)X
+1355(status)X
+1590(of)X
+1697(active)X
+1942(locks.)X
+2184(A)X
+2281(complete)X
+2639(list)X
+2782(of)X
+2889(all)X
+3012(the)X
+3154(user)X
+3334(interface)X
+3675(constructs)X
+
+11 p
+%%Page: 11 11
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(11)X
+2370(-)X
+8 f
+1106 736(.)N
+1212(.)X
+1318(.)X
+1106 848(CALL)N
+1371 0.1942(shmatfloat\("A_row1",A,"RW",5\))AX
+7 f
+1106 960({Lock)N
+1424(&)X
+1530(map)X
+1742(row)X
+1954(1)X
+2060(of)X
+2219(an)X
+2 f
+2378(external)X
+7 f
+2720(shared)X
+3091(array)X
+3409(to)X
+3568(A})X
+8 f
+1106 1072(.)N
+1212(.)X
+1318(.)X
+788 1184(C$DOACROSS)N
+1371(SHARE\(A,index\))X
+1106 1296(do)N
+1265(20)X
+1424(i)X
+1530(=)X
+1636(1,)X
+1795(100)X
+1106 1408(.)N
+1212(.)X
+1318(.)X
+1106 1520(CALL)N
+1371(m_lock)X
+7 f
+1106 1632({Local,)N
+1530(loop)X
+1795(level)X
+2113(lock)X
+2378(to)X
+2537(indicate)X
+3014(critical)X
+3491(section})X
+8 f
+1106 1744(index)N
+1424(=)X
+1530(index)X
+1848(+)X
+1954(1)X
+1106 1856(CALL)N
+1371(m_unlock)X
+1106 1968(.)N
+1212(.)X
+1318(.)X
+788 2080(20)N
+1106(continue)X
+1106 2192(.)N
+1212(.)X
+1318(.)X
+1106 2304(CALL)N
+1371 0.1974(shmdtfloat\("A_row1"\))AX
+7 f
+1106 2416({Unlock)N
+1530(and)X
+1742(unmap)X
+2060(external)X
+2537(shared)X
+2908(array})X
+8 f
+1106 2528(.)N
+1212(.)X
+1318(.)X
+1 f
+1173 2688(Figure)N
+1425(6:)X
+3 f
+9 s
+1516(PVM)X
+1 f
+11 s
+1702(locking)X
+1989(contrasted)X
+2373(to)X
+2464(machine)X
+2785(dependent)X
+3169(locking)X
+576 2912(along)N
+794(with)X
+973(their)X
+1157(argument)X
+1512(lists)X
+1677(and)X
+1826(a)X
+1887(one-line)X
+2198(description)X
+2612(of)X
+2707(each)X
+2890(is)X
+2971(given)X
+3189(in)X
+3280(the)X
+3410(appendix.)X
+3 f
+576 3248(3.)N
+686(PVM)X
+908(System)X
+1198(Design)X
+1474(and)X
+1638(Implementation)X
+1 f
+776 3500(The)N
+3 f
+9 s
+938(PVM)X
+1 f
+11 s
+1131(support)X
+1424(software)X
+1756(executes)X
+2089(as)X
+2192(a)X
+2261(user-level)X
+2638(process)X
+2931(on)X
+3049(each)X
+3240(host)X
+3417(in)X
+3516(the)X
+3654(participant)X
+576 3612(pool.)N
+778(An)X
+908(initial)X
+1139(set)X
+1260(of)X
+1356(participating)X
+1825(hosts)X
+2028(is)X
+2109(statically)X
+2451(identi\256ed;)X
+2832(additions)X
+3178(or)X
+3273(deletions)X
+3614(are)X
+3743(possible)X
+576 3724(during)N
+842(operation)X
+1212(by)X
+1337(means)X
+1599(of)X
+1709(an)X
+1829(administration)X
+2377(interface.)X
+2744(The)X
+3 f
+9 s
+2914(PVM)X
+1 f
+11 s
+3115(system)X
+3397(is)X
+3493(designed)X
+3843(to)X
+3949(be)X
+576 3836(implemented)N
+1061(in)X
+1153(a)X
+1215(manner)X
+1502(that)X
+1658(requires)X
+1964(no)X
+2075(operating)X
+2431(system)X
+2699(changes)X
+3005(or)X
+3101(modi\256cations,)X
+3627(and)X
+3777(porting)X
+576 3948(efforts)N
+834(to)X
+932(varied)X
+1181(operating)X
+1544(system)X
+1819(environments)X
+2329(are)X
+2466(minimal.)X
+2814(The)X
+3 f
+9 s
+2977(PVM)X
+1 f
+11 s
+3171(support)X
+3465(process)X
+3758(\(termed)X
+2 f
+576 4060(pvmd)N
+1 f
+766(\))X
+828(on)X
+949(a)X
+1021(host)X
+1201(is)X
+1293(responsible)X
+1727(for)X
+1862(all)X
+1983(application)X
+2408(component)X
+2832(processes)X
+3200(executing)X
+3575(on)X
+3695(that)X
+3860(host;)X
+576 4172(however,)N
+922(there)X
+1120(is)X
+1202(no)X
+1313(central)X
+1576(or)X
+1672(master)X
+1930(instance)X
+2242(of)X
+2 f
+2338(pvmd)X
+1 f
+2528(.)X
+2573(Control)X
+2866(is)X
+2948(completely)X
+3364(distributed)X
+3765(\(by)X
+3905(vir-)X
+576 4284(tue)N
+714(of)X
+817(all)X
+2 f
+936(pvmd)X
+1 f
+1156(processes)X
+1522(possessing)X
+1928(global)X
+2179(knowledge\))X
+2624(in)X
+2722(the)X
+2859(interest)X
+3148(of)X
+3250(avoiding)X
+3588(performance)X
+576 4396(bottlenecks)N
+1003(and)X
+1155(increasing)X
+1542(fault)X
+1729(tolerance.)X
+2099(The)X
+2 f
+2261(pvmd)X
+1 f
+2476(processes)X
+2837(are)X
+2969(initiated)X
+3285(on)X
+3398(each)X
+3585(participating)X
+576 4508(host)N
+770(either)X
+1018(manually,)X
+1416(through)X
+1737(the)X
+1892(administration)X
+2450(interface,)X
+2827(or)X
+2947(via)X
+3102(a)X
+3188(machine/OS)X
+3670(dependent)X
+576 4620(mechanism)N
+1004(such)X
+1191(as)X
+2 f
+1290(inetd)X
+1 f
+1493(in)X
+1588(the)X
+1723(Unix)X
+1926(environment.)X
+2443(In)X
+2543(this)X
+2698(section,)X
+2997(the)X
+3132(key)X
+3286(design)X
+3543(aspects)X
+3824(of)X
+3924(the)X
+2 f
+576 4732(pvmd)N
+1 f
+788(software)X
+1112(are)X
+1241(discussed)X
+1600(with)X
+1779(an)X
+1884(emphasis)X
+2234(on)X
+2344(the)X
+2474(protocol)X
+2790(algorithms)X
+3190(used.)X
+3 f
+576 5068(3.1.)N
+752(Basic)X
+975(Facilities)X
+1 f
+776 5320(In)N
+894(terms)X
+1135(of)X
+1253(network)X
+1586(capabilities,)X
+2056(the)X
+3 f
+9 s
+2205(PVM)X
+1 f
+11 s
+2414(system)X
+2704(assumes)X
+3042(only)X
+3244(that)X
+3422(unreliable,)X
+3842(unse-)X
+576 5432(quenced,)N
+934(point-to-point)X
+1467(data)X
+1656(transfer)X
+1966(\(but)X
+2150(with)X
+2349(data)X
+2538(integrity\))X
+2909(facilities)X
+3256(are)X
+3405(supported)X
+3794(by)X
+3924(the)X
+576 5544(hardware)N
+926(platform)X
+1255(on)X
+1368(which)X
+1608(it)X
+1683(executes.)X
+2033(The)X
+2195(required)X
+2513(reliability)X
+2883(and)X
+3035(sequencing,)X
+3478(as)X
+3576(well)X
+3753(as)X
+3851(other)X
+576 5656(necessary)N
+943(operations)X
+1336(such)X
+1522(as)X
+1620(broadcast,)X
+2004(are)X
+2136(built)X
+2324(into)X
+2487(the)X
+3 f
+9 s
+2616(PVM)X
+1 f
+11 s
+2805(system)X
+3075(in)X
+3169(the)X
+3302(interest)X
+3587(of)X
+3685(ef\256ciency)X
+576 5768(and)N
+729(portability.)X
+1146(While)X
+1388(it)X
+1464(is)X
+1550(true)X
+1714(that)X
+1874(most)X
+2073(operating)X
+2433(systems)X
+2739(in)X
+2835(existence)X
+3190(already)X
+3476(support)X
+3767(reliable)X
+
+12 p
+%%Page: 12 12
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(12)X
+2370(-)X
+576 688(and)N
+734(sequenced)X
+1131(data)X
+1309(delivery,)X
+1651(in)X
+1751(most)X
+1954(cases)X
+2170(this)X
+2329(is)X
+2419(via)X
+2558(the)X
+2697(use)X
+2844(of)X
+2947(virtual)X
+3208(circuits)X
+3498(\320)X
+3616(for)X
+3748(the)X
+3886(pro-)X
+576 800(jected)N
+816(use)X
+962(of)X
+3 f
+9 s
+1060(PVM)X
+1 f
+11 s
+1224(,)X
+1275(the)X
+1412(overheads)X
+1797(and)X
+1953(scalability)X
+2346 0.3625(limitations)AX
+2756(of)X
+2859(using)X
+3080(such)X
+3271(a)X
+3340(service)X
+3619(directly)X
+3919(did)X
+576 912(not)N
+721(warrant)X
+1020(its)X
+1135(adoption.)X
+1497(In)X
+1601(the)X
+1740(test)X
+1894 0.2500(implementations)AX
+2515(of)X
+3 f
+9 s
+2615(PVM)X
+1 f
+11 s
+2779(,)X
+2832(the)X
+2971(UDP)X
+3177([11])X
+3354(protocol)X
+3679(was)X
+3846(used;)X
+576 1024(this)N
+727(deliberate)X
+1098(choice)X
+1351(of)X
+1447(a)X
+1509(simple)X
+1768(datagram)X
+2119(protocol)X
+2437(also)X
+2603(permits)X
+2892(relatively)X
+3250(simple)X
+3510(porting)X
+3789(or)X
+3886(pro-)X
+576 1136(tocol)N
+775(conversion)X
+1183(when)X
+3 f
+9 s
+1391(PVM)X
+1 f
+11 s
+1577(is)X
+1658(to)X
+1749(be)X
+1854(installed)X
+2176(under)X
+2398(a)X
+2459(different)X
+2784(operating)X
+3139(system)X
+3406(environment.)X
+776 1388(Across)N
+1042(the)X
+1173(network,)X
+2 f
+1506(pvmd)X
+1 f
+1719(processes)X
+2078(communicate)X
+2577(using)X
+2791(UDP)X
+2990(datagrams.)X
+3420(The)X
+3581("well)X
+3793(known)X
+576 1500(port")N
+777(approach)X
+1122(is)X
+1203(used)X
+1386(for)X
+1510(addressing;)X
+1933(all)X
+2044(incoming)X
+2400(messages)X
+2754(are)X
+2883(received)X
+3203(by)X
+2 f
+3313(pvmd)X
+1 f
+3525(processes)X
+3883(on)X
+3993(a)X
+576 1612(predetermined)N
+1132(port)X
+1321(number.)X
+1659(For)X
+1828(user-process)X
+2313(to)X
+2429(user-process)X
+2914(communication,)X
+3533(the)X
+3689(following)X
+576 1724(scheme)N
+887(is)X
+993(employed.)X
+1410(The)X
+1594(\256rst)X
+1778(communication)X
+2375(instance)X
+2710(between)X
+3049(any)X
+3222(two)X
+3400(entities)X
+3702(is)X
+3807(routed)X
+576 1836(through)N
+880(the)X
+2 f
+1018(pvmd)X
+1 f
+1239(processes)X
+1606(on)X
+1725(the)X
+1864(source)X
+2124(and)X
+2282(destination)X
+2701(machines.)X
+3087(Location)X
+3432(and)X
+3590(port)X
+3763(number)X
+576 1948(information)N
+1032(is)X
+1130(appended)X
+1506(to)X
+1614(this)X
+1781(exchange;)X
+2177(the)X
+3 f
+9 s
+2320(PVM)X
+1 f
+11 s
+2522(routines)X
+2844(\(linked)X
+3132(to)X
+3239(the)X
+3385(user)X
+3569(process\))X
+3899(that)X
+576 2060(implement)N
+3 f
+981(send)X
+1 f
+1179(and)X
+3 f
+1333(recv)X
+1 f
+1521(cache)X
+1748(this)X
+1903(information,)X
+2369(thus)X
+2543(enabling)X
+2874(direct)X
+3102(communication)X
+3679(for)X
+3808(subse-)X
+576 2172(quent)N
+796(exchanges.)X
+1230(Local)X
+1455(user)X
+1625(processes)X
+1985(communicate)X
+2485(with)X
+2 f
+2666(pvmd)X
+1 f
+2880(using)X
+3095(the)X
+3226(most)X
+3421(ef\256cient)X
+3733(machine)X
+576 2284(dependent)N
+970(mechanism)X
+1405(available)X
+1757(and)X
+1917(the)X
+2058(development)X
+2547(of)X
+2653(this)X
+2814(mechanism)X
+3249(is)X
+3341(deemed)X
+3648(part)X
+3818(of)X
+3924(the)X
+576 2396(installation)N
+995(procedure.)X
+1415(However,)X
+1783(the)X
+1915(generic)X
+2198(version)X
+2503(of)X
+2 f
+2600(pvmd)X
+1 f
+2814(may)X
+2990(be)X
+3097(adopted;)X
+3425(this)X
+3577(utilizes)X
+3857(UDP)X
+576 2508(datagrams)N
+961(once)X
+1150(again,)X
+1386(via)X
+1517(the)X
+1649(loopback)X
+1996(interface)X
+2328(if)X
+2406(one)X
+2557(is)X
+2640(available.)X
+3005(The)X
+2 f
+3166(pvmd)X
+1 f
+3380(process)X
+3667(uses)X
+3842(a)X
+3905(dif-)X
+576 2620(ferent,)N
+825(predetermined)X
+1356(port)X
+1520(number)X
+1811(for)X
+1935(incoming)X
+2291(messages)X
+2645(from)X
+2838(all)X
+2949(local)X
+3143(user)X
+3311(processes.)X
+3 f
+576 2956(3.2.)N
+752(Point-to-Point)X
+1307(Data)X
+1509(Transfer)X
+1 f
+776 3208(To)N
+896(achieve)X
+1187(reliable)X
+1474(and)X
+1623(sequenced)X
+2011(point-to-point)X
+2524(communications,)X
+3152(the)X
+2 f
+3282(pvmd)X
+1 f
+3494(processes)X
+3853(use)X
+3993(a)X
+576 3320(positive)N
+892(acknowledgment)X
+1530(scheme)X
+1829(and)X
+1991(an)X
+2109(additional)X
+2498(header)X
+2767(that)X
+2935(contains)X
+3264(sequence)X
+3621(numbers)X
+3959(as)X
+576 3432(well)N
+758(as)X
+861(fragmentation)X
+1386(and)X
+1543(reassembly)X
+1969(information.)X
+2438(Unacknowledged)X
+3083(transmissions)X
+3594(are)X
+3732(retried)X
+3993(a)X
+576 3544(parameterized)N
+1104(number)X
+1402(of)X
+1504(times)X
+1725(after)X
+1915(which)X
+2159(the)X
+2296(recipient)X
+2634(process)X
+2926(or)X
+3028(processor)X
+3393(is)X
+3481(presumed)X
+3852(to)X
+3949(be)X
+576 3656(inoperative.)N
+1019(The)X
+1180(sequence)X
+1526(numbers)X
+1853(are)X
+1984(destination)X
+2396(speci\256c)X
+2689(and)X
+2840(are)X
+2971(used)X
+3156(by)X
+3268(the)X
+3400(message)X
+3723(recipient)X
+576 3768(for)N
+716(sequencing)X
+1150(as)X
+1261(well)X
+1451(as)X
+1562(for)X
+1702(duplicate)X
+2064(detection.)X
+2448(The)X
+2623(header)X
+2895(is)X
+2992(placed)X
+3260(at)X
+3362(the)X
+3507(end)X
+3671(of)X
+3781(a)X
+3857(UDP)X
+576 3880(datagram)N
+936(to)X
+1037(reduce)X
+1303(copying)X
+1619(overheads,)X
+2029(and)X
+2189(single)X
+2433(datagram)X
+2794(sizes)X
+2998(are)X
+3138(restricted)X
+3499(to)X
+3601(the)X
+3742(smallest)X
+576 3992(MTU)N
+824(\(maximum)X
+1265(transmission)X
+1764(unit\))X
+1984(of)X
+2109(all)X
+2250(participating)X
+2749(hosts.)X
+3026(When)X
+3288(\256rst)X
+3477(initiated,)X
+2 f
+3842(pvmd)X
+1 f
+576 4104(processes)N
+940(determine)X
+1321(the)X
+1457(protocol)X
+1779(speci\256c)X
+2076(addresses)X
+2440(of)X
+2541(all)X
+2658(participating)X
+3133(hosts)X
+3342(and)X
+3497(proceed)X
+3803(to)X
+3901(ser-)X
+576 4216(vice)N
+745(incoming)X
+1101(requests)X
+1411(from)X
+1604(the)X
+1734(network)X
+2044(or)X
+2139(user)X
+2307(processes)X
+2665(in)X
+2756(an)X
+2861(in\256nite)X
+3134(loop.)X
+776 4468(Each)N
+2 f
+977(pvmd)X
+1 f
+1192(process)X
+1480(maintains)X
+1849(information)X
+2292(concerning)X
+2709(the)X
+2843(location)X
+3154(and)X
+3307(status)X
+3534(of)X
+3633(all)X
+3748(applica-)X
+576 4580(tion)N
+742(component)X
+1162(processes.)X
+1548(A)X
+1639(user)X
+3 f
+1812(send)X
+1 f
+2010(is)X
+2096(addressed)X
+2469(to)X
+2565(a)X
+2631(component)X
+3050(name)X
+3268(and)X
+3422(instance)X
+3738(number;)X
+576 4692(the)N
+712(local)X
+2 f
+912(pvmd)X
+1 f
+1130(determines)X
+1545(the)X
+1681(physical)X
+2003(location)X
+2316(of)X
+2417(that)X
+2578(process)X
+2869(and)X
+3024(forwards)X
+3363(the)X
+3499(message)X
+3826(to)X
+3924(the)X
+576 4804(remote)N
+2 f
+849(pvmd)X
+1 f
+1039(.)X
+1089(As)X
+1214(described,)X
+1601(the)X
+1737(user)X
+1911(process)X
+2202(library)X
+2465(performs)X
+2810(this)X
+2966(translation)X
+3367(for)X
+3497(the)X
+3633(second)X
+3905(and)X
+576 4916(subsequent)N
+1005(messages.)X
+1397(The)X
+1572(source)X
+1839(component)X
+2269(name)X
+2498(and)X
+2663(instance)X
+2990(number)X
+3297(are)X
+3442(appended)X
+3817(to)X
+3924(the)X
+576 5028(message,)N
+929(enabling)X
+1266(message)X
+1597(delivery)X
+1919(with)X
+2109(an)X
+2225(indication)X
+2612(of)X
+2718(the)X
+2859(sender's)X
+3183(identity.)X
+3508(As)X
+3637(mentioned,)X
+576 5140(executing)N
+958(the)X
+3 f
+1105(enroll)X
+1 f
+1365(construct)X
+1727(is)X
+1825(a)X
+1903(precondition)X
+2388(to)X
+2496(user)X
+2682(process)X
+2985(participation)X
+3472(\320)X
+3600(in)X
+3709(the)X
+3857(UDP)X
+576 5252 0.2679(implementation,)AN
+1176(this)X
+1326(supplies)X
+1637(to)X
+1728(the)X
+1858(local)X
+2 f
+2052(pvmd)X
+1 f
+2264(the)X
+2394(receiving)X
+2744(port)X
+2908(number)X
+3199(of)X
+3294(the)X
+3424(user)X
+3592(process.)X
+
+13 p
+%%Page: 13 13
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(13)X
+2370(-)X
+3 f
+576 688(3.3.)N
+752(Message)X
+1091(Broadcasting)X
+1 f
+776 940(Broadcast)N
+1161(is)X
+1253(a)X
+1326(commonly)X
+1738(performed)X
+2138(operation)X
+2505(in)X
+2608(the)X
+3 f
+9 s
+2746(PVM)X
+1 f
+11 s
+2944(system,)X
+3245(both)X
+3436(because)X
+3748(applica-)X
+576 1052(tions)N
+772(desire)X
+1006(such)X
+1191(a)X
+1254(facility)X
+1529(and)X
+1680(since)X
+1885(it)X
+1959(is)X
+2042(inherent)X
+2355(to)X
+2448(the)X
+2580(completely)X
+2997(distributed)X
+3399(nature)X
+3643(of)X
+3740(the)X
+3 f
+9 s
+3868(PVM)X
+1 f
+11 s
+576 1164(support)N
+888(software.)X
+1261(All)X
+2 f
+1423(pvmd)X
+1 f
+1662(processes)X
+2047(maintain)X
+2406(information)X
+2872(regarding)X
+3258(all)X
+3396(processes,)X
+3803(shared)X
+576 1276(memory)N
+900(segments,)X
+1280(and)X
+1437(locks,)X
+1675(to)X
+1774(guard)X
+2004(against)X
+2284(loss)X
+2451(of)X
+2553(context)X
+2842(and)X
+2998(state)X
+3189(in)X
+3287(the)X
+3424(event)X
+3644(of)X
+3746(failures.)X
+576 1388(User)N
+779(process)X
+1080(broadcasts)X
+1489(are)X
+1635(\256rst)X
+1811(delivered)X
+2178(sequentially)X
+2644(to)X
+2752(local)X
+2963(recipient)X
+3311(user)X
+3496(processes)X
+3871(after)X
+576 1500(which)N
+814(the)X
+945(local)X
+2 f
+1139(pvmd)X
+1 f
+1351(process)X
+1636(broadcasts)X
+2029(over)X
+2207(the)X
+2337(network)X
+2647(to)X
+2738(all)X
+2849(other)X
+2 f
+3052(pvmd)X
+1 f
+3264(processes)X
+3622(that)X
+3777(in)X
+3868(turn,)X
+576 1612(deliver)N
+843(the)X
+973(message)X
+1293(to)X
+1384(their)X
+1568(local)X
+1762(user)X
+1930(process)X
+2215(recipients.)X
+2602(Although)X
+2957(most)X
+3151(computing)X
+3552(environments)X
+576 1724(support)N
+865(a)X
+929(network)X
+1242(broadcast)X
+1604(facility,)X
+2 f
+1902(pvmd)X
+1 f
+2117(broadcast)X
+2479(is)X
+2563(implemented)X
+3049(in)X
+3 f
+9 s
+3138(PVM)X
+1 f
+11 s
+3326(using)X
+3541(point-to-point)X
+576 1836(messages)N
+948(with)X
+1145(recursive)X
+1507(doubling.)X
+1883(This)X
+2080(decision)X
+2414(was)X
+2590(made)X
+2821(in)X
+2931(the)X
+3080(interest)X
+3381(of)X
+3495(portability)X
+3905(and)X
+576 1948(ef\256ciency;)N
+974(given)X
+1196(that)X
+1355(network)X
+1669(broadcast)X
+2032(is)X
+2116(unreliable,)X
+2516(acknowledgments)X
+3177(are)X
+3309(necessary)X
+3675(from)X
+3871(each)X
+576 2060(recipient,)N
+937(resulting)X
+1277(in)X
+2 f
+1377(O)X
+1 f
+1454(\()X
+2 f
+1483(p)X
+1 f
+1534(\))X
+1594(time)X
+1783(\()X
+2 f
+1812(p)X
+1 f
+2 f
+9 f
+1885(+)X
+1 f
+1955(1)X
+2030(sequential)X
+2419(steps)X
+2626(are)X
+2764(to)X
+2864(be)X
+2978(performed)X
+3375(by)X
+3494(the)X
+3633(originator\),)X
+576 2172(while)N
+799(recursive)X
+1148(doubling)X
+1489(broadcast)X
+1852(is)X
+1937(accomplished)X
+2448(in)X
+2 f
+2543(O)X
+1 f
+2620(\(log)X
+8 s
+2762 2189(2)N
+11 s
+2 f
+2823 2172(p)N
+1 f
+2874(\))X
+2929(time,)X
+3135(where)X
+2 f
+3375(p)X
+1 f
+3445(is)X
+3530(the)X
+3664(number)X
+3959(of)X
+576 2284(processors.)N
+993(The)X
+1155(participating)X
+1627(pool)X
+1809(of)X
+1907(hosts)X
+2113(is)X
+2197(logically)X
+2532(numbered)X
+2909(from)X
+3105(0)X
+3174(to)X
+2 f
+3268(p)X
+9 f
+3326(-)X
+1 f
+3374(1,)X
+3466(and)X
+3619(the)X
+3753(origina-)X
+576 2396(tor)N
+697(\(or)X
+822(root\))X
+1016(of)X
+1112(the)X
+1243(broadcast)X
+1603(is)X
+1685(part)X
+1845(of)X
+1941(the)X
+2072(broadcast)X
+2432(message.)X
+2775(There)X
+3002(is)X
+3083(one)X
+2 f
+3232(pvmd)X
+1 f
+3444(process)X
+3729(per)X
+3863(host,)X
+576 2508(which)N
+840(represents)X
+1223(that)X
+1383(processor.)X
+1768(Broadcast)X
+2147(proceeds)X
+2486(in)X
+2582("rounds",)X
+2943(with)X
+3128(the)X
+3264(number)X
+3561(of)X
+3662(processors)X
+576 2620(contributing)N
+1031(to)X
+1123(the)X
+1254(broadcast)X
+1614(effort)X
+1832(doubling)X
+2169(in)X
+2261(each)X
+2445(round.)X
+2717(In)X
+2813(any)X
+2963(round,)X
+3212(processor)X
+2 f
+3570(i)X
+1 f
+3617(transmits)X
+3963(to)X
+2 f
+576 2732(i)N
+1 f
+2 f
+9 f
+630(+)X
+1 f
+700(2)X
+2 f
+8 s
+2697(r)Y
+1 f
+11 s
+2 f
+798 2732(mod)N
+1 f
+2 f
+978(p)X
+1 f
+1050(and)X
+1206(receives)X
+1523(an)X
+1635(acknowledgment.)X
+2288(A)X
+2380(processor)X
+2 f
+2752(j)X
+1 f
+2806(joins)X
+3007(the)X
+3144(broadcast)X
+3510(effort)X
+3734(at)X
+3827(round)X
+2 f
+576 2844(r)N
+8 s
+615 2861(j)N
+1 f
+11 s
+640 2844(,)N
+700(where)X
+2 f
+952(r)X
+8 s
+991 2861(j)N
+1 f
+11 s
+2 f
+9 f
+1038 2844(=)N
+1 f
+2 f
+1108(no.)X
+1 f
+2 f
+1247(of)X
+1 f
+2 f
+1345(signi\256cant)X
+1 f
+2 f
+1742(bits)X
+1 f
+2 f
+1899(in)X
+1 f
+1997(\()X
+2 f
+2033(j)X
+1 f
+2 f
+9 f
+2087(-)X
+1 f
+2 f
+2157(root)X
+1 f
+2311(\))X
+2 f
+2362(mod)X
+1 f
+2 f
+2542(p)X
+1 f
+(.)S
+2668(In)X
+2779(the)X
+2924(event)X
+3152(of)X
+3262(processor)X
+3635(failure,)X
+3924(the)X
+2 f
+576 2956(pvmd)N
+1 f
+792(process)X
+1081(that)X
+1241(\256rst)X
+1405(detects)X
+1677(the)X
+1812(failure)X
+2069(assumes)X
+2389(the)X
+2524(broadcast)X
+2888(duties)X
+3126(of)X
+3226(the)X
+3361(failed)X
+3589(processor.)X
+3974(If)X
+576 3068(the)N
+709(quantity)X
+1024(2\(2)X
+2 f
+8 s
+1141 3033(r)N
+1 f
+11 s
+1173 3068(\))N
+1226(is)X
+1309(less)X
+1465(than)X
+1641(2)X
+1707(log)X
+8 s
+1820 3085(2)N
+11 s
+2 f
+1881 3068(p)N
+1 f
+(,)S
+1971(failure)X
+2225(noti\256cation)X
+2652(is)X
+2735(piggybacked)X
+3209(on)X
+3321(the)X
+3453(broadcast,)X
+3836(at)X
+3924(the)X
+576 3180(end)N
+733(of)X
+836(which)X
+1081(the)X
+1219(remaining)X
+1607(processors)X
+2007(are)X
+2144(individually)X
+2602(informed.)X
+2978(Otherwise,)X
+3392(the)X
+3531(detecting)X
+3886(pro-)X
+576 3292(cessor)N
+817(initiates)X
+1120(another)X
+1406(broadcast)X
+1765(with)X
+1944(failure)X
+2196(information,)X
+2657(at)X
+2743(completion)X
+3163(of)X
+3258(the)X
+3388(current)X
+3659(broadcast.)X
+776 3544(The)N
+2 f
+950(pvmd)X
+1 f
+1177(processes)X
+1550(execute)X
+1856(a)X
+1932(\256nite)X
+2151(state)X
+2350(machine)X
+2686(which)X
+2938(gives)X
+3161(precedence)X
+3593(to)X
+3700(messages)X
+576 3656(\(requests\))N
+960(incoming)X
+1332(while)X
+1566(another)X
+1867(activity)X
+2170(is)X
+2266(in)X
+2372(progress.)X
+2728(Such)X
+2941(a)X
+3017(scheme)X
+3318(is)X
+3414(adopted)X
+3730(to)X
+3836(avoid)X
+576 3768(deadlock;)N
+941(two)X
+1095(processes)X
+1453(transmitting)X
+1903(to)X
+1994(each)X
+2177(other)X
+2380(may)X
+2554(both)X
+2733(wait)X
+2908(inde\256nitely)X
+3334(for)X
+3459(each)X
+3643(others)X
+3881(ack-)X
+576 3880(nowledgment)N
+1084(if)X
+1166(this)X
+1322(precedence)X
+1745(rule)X
+1910(were)X
+2108(not)X
+2249(followed.)X
+2612(It)X
+2694(should)X
+2957(also)X
+3126(be)X
+3236(pointed)X
+3528(out)X
+3668(that)X
+3828(in)X
+3924(the)X
+576 3992(case)N
+771(of)X
+3 f
+9 s
+884(PVM)X
+1 f
+11 s
+1092(hardware)X
+1462(platforms)X
+1844(where)X
+2102(wide)X
+2317(area)X
+2508(networks)X
+2875(are)X
+3027(involved,)X
+3403(the)X
+3556(choice)X
+3831(of)X
+3949(an)X
+576 4104(appropriate)N
+1009(timeout)X
+1312(value)X
+1535(can)X
+1689(signi\256cantly)X
+2158(affect)X
+2390(the)X
+2530(performance)X
+3006(of)X
+3111(the)X
+3251(data)X
+3430(transfer)X
+3729(mechan-)X
+576 4216(isms)N
+760(and)X
+909(the)X
+1039(broadcast)X
+1398(process.)X
+1705(Further,)X
+2008(the)X
+2139(present)X
+2416 0.2885(implementation)AX
+2995(does)X
+3179(not)X
+3315(perform)X
+3621(any)X
+3771(optimi-)X
+576 4328(zations)N
+850(in)X
+943(the)X
+1075(broadcast)X
+1436(scheme)X
+1724(when)X
+1938(a)X
+2001(geographically)X
+2548(distant)X
+2807(host)X
+2977(is)X
+3059(at)X
+3146(a)X
+3208(non-leaf)X
+3524(position)X
+3832(in)X
+3924(the)X
+576 4440(broadcast)N
+935(spanning)X
+1275(tree.)X
+3 f
+576 4776(3.4.)N
+752(Mutual)X
+1053(Exclusion)X
+1 f
+776 5028(Mutual)N
+1058(exclusion)X
+1423(is)X
+1509(another)X
+1800(primitive)X
+2153(required)X
+2474(both)X
+2659(in)X
+2756(response)X
+3091(to)X
+3188(user)X
+3362(requests)X
+3678(as)X
+3779(well)X
+3959(as)X
+576 5140(for)N
+2 f
+723(pvmd)X
+1 f
+958(coordination.)X
+1471(Examples)X
+1863(are)X
+2014(exclusive)X
+2391(access)X
+2659(to)X
+2772(emulated)X
+3140(shared)X
+3413(memory,)X
+3773(general)X
+576 5252(resource)N
+928(locking,)X
+1270(and)X
+1452(assignment)X
+1904(of)X
+2033(unique)X
+2329(instance)X
+2674(numbers)X
+3033(for)X
+3191(application)X
+3640(component)X
+576 5364(processes.)N
+973(Distributed)X
+1409(mutual)X
+1694(exclusion)X
+2071(is)X
+2168(normally)X
+2525(achieved)X
+2876(by)X
+3002(unanimous)X
+3427(or)X
+3538(majority)X
+3876(con-)X
+576 5476(sensus;)N
+871(a)X
+951(requesting)X
+1359(process)X
+1663(that)X
+1837(receives)X
+2166(permission)X
+2594(from)X
+2806(a)X
+2887(certain)X
+3169(number)X
+3480(of)X
+3595(processes)X
+3973(is)X
+576 5588(deemed)N
+877(to)X
+973(have)X
+1166(acquired)X
+1496(the)X
+1631(lock.)X
+1832(Different)X
+2181(strategies,)X
+2562(varying)X
+2857(in)X
+2952(their)X
+3140(approach,)X
+3510(ef\256ciency,)X
+3905(and)X
+576 5700(level)N
+779(of)X
+883(failure)X
+1144(resiliency)X
+1518(have)X
+1716(been)X
+1914(proposed)X
+2268(and)X
+2427(representative)X
+2953(methods)X
+3284(are)X
+3423(described)X
+3792(in)X
+3893([12,)X
+576 5812(13,)N
+727(14].)X
+907(The)X
+1085(strategy)X
+1405(adopted)X
+1725(in)X
+3 f
+9 s
+1831(PVM)X
+1 f
+11 s
+2036(is)X
+2136(somewhat)X
+2534(different)X
+2878(from)X
+3090(these)X
+3312(approaches,)X
+3770(but)X
+3924(the)X
+
+14 p
+%%Page: 14 14
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(14)X
+2370(-)X
+576 688(algorithm)N
+953(is)X
+1046(ef\256cient)X
+1369(and,)X
+1552(more)X
+1767(importantly,)X
+2236(is)X
+2329(integrated)X
+2716(with)X
+2907(the)X
+3049(required)X
+3376(distribution)X
+3840(to)X
+3943(all)X
+2 f
+576 800(pvmd)N
+1 f
+766(s)X
+822(of)X
+917(lock)X
+1091(location)X
+1398(information.)X
+776 1052(A)N
+2 f
+862(pvmd)X
+1 f
+1075(process,)X
+1383(either)X
+1607(for)X
+1732(its)X
+1840(own)X
+2015(purposes)X
+2351(or)X
+2448(on)X
+2560(behalf)X
+2804(of)X
+2901(a)X
+2964(local)X
+3160(user)X
+3330(process,)X
+3639(attempts)X
+3963(to)X
+576 1164(obtain)N
+821(a)X
+884(lock)X
+1060(by)X
+1172(broadcasting)X
+1646(a)X
+1709("claim")X
+2002(for)X
+2128(the)X
+2260(lock.)X
+2457(Since)X
+2676(all)X
+2 f
+2788(pvmd)X
+1 f
+3001(processes)X
+3360(possess)X
+3646(knowledge)X
+576 1276(regarding)N
+935(the)X
+1065(use)X
+1204(\(and)X
+1382(location\))X
+1718(of)X
+1813(all)X
+1924(locks,)X
+2154(such)X
+2337(an)X
+2442(attempt)X
+2730(will,)X
+2912(of)X
+3007(course,)X
+3280(only)X
+3460(be)X
+3566(made)X
+3780(when)X
+3993(a)X
+576 1388(lock)N
+754(is)X
+839(known)X
+1104(to)X
+1199(be)X
+1308(free)X
+1469(at)X
+1558(the)X
+1691(start)X
+1868(of)X
+1966(the)X
+2099(claim.)X
+2343(In)X
+2441(the)X
+2574(absence)X
+2877(of)X
+2975(con\257icting)X
+3378(claims)X
+3634(\(a)X
+3727(situation)X
+576 1500(most)N
+774(likely)X
+1002(to)X
+1097(be)X
+1206(encountered)X
+1662(in)X
+1757(practice\),)X
+2113(the)X
+2247(requester,)X
+2618(after)X
+2806(the)X
+2941(broadcast)X
+3305(has)X
+3449(been)X
+3642(completed,)X
+576 1612(can)N
+728(assume)X
+1017(that)X
+1180(the)X
+1318(lock)X
+1500(has)X
+1647(been)X
+1843(successfully)X
+2303(obtained.)X
+2659(In)X
+2762(the)X
+2900(process,)X
+3215(all)X
+3334(other)X
+2 f
+3544(pvmd)X
+1 f
+3734(s)X
+3797(update)X
+576 1724(their)N
+766(lock)X
+946(table)X
+1146(information,)X
+1613(and)X
+1768 0.2955(\(implicitly\))AX
+2201(grant)X
+2411(the)X
+2548(requester)X
+2899(permission)X
+3315(for)X
+3446(exclusive)X
+3808(access)X
+576 1836(to)N
+667(the)X
+797(particular)X
+1157(resource.)X
+776 2088(It)N
+858(is)X
+945(of)X
+1046(course)X
+1303(possible)X
+1620(that)X
+1781(two)X
+1941(processes)X
+2305(may)X
+2485(initiate)X
+2760(claims)X
+3019(on)X
+3135(the)X
+3272(same)X
+3482(resource)X
+3808(before)X
+576 2200(either)N
+802(has)X
+944(received)X
+1267(the)X
+1399(other's)X
+1667(request.)X
+1989(In)X
+3 f
+9 s
+2082(PVM)X
+1 f
+11 s
+2246(,)X
+2292(such)X
+2477(situations)X
+2840(are)X
+2971(resolved)X
+3293(using)X
+3508(a)X
+3571(heuristic)X
+3899(that)X
+576 2312(assumes)N
+897(that)X
+1058(communication)X
+1636(between)X
+1957(any)X
+2112(pair)X
+2277(of)X
+2378(processors)X
+2776(takes)X
+2985(the)X
+3122(same)X
+3332(amount)X
+3626(of)X
+3728(time.)X
+3959(In)X
+576 2424(particular,)N
+962(consider)X
+1286(two)X
+1444(processors)X
+1840(\()X
+2 f
+1869(pvmd)X
+1 f
+2085(processes\))X
+2 f
+2476(A)X
+1 f
+2556(and)X
+2 f
+2709(B)X
+1 f
+2789(that)X
+2948(wish)X
+3140(to)X
+3235(acquire)X
+3519(the)X
+3652(same)X
+3858(lock,)X
+576 2536(and)N
+726(another)X
+1013(processor)X
+2 f
+1372(C)X
+1 f
+1431(.)X
+1498(Note)X
+1692(that)X
+1848({)X
+2 f
+1890(B)X
+1 f
+1944(,)X
+2 f
+(C)S
+1 f
+2025(})X
+2090(and)X
+2240({)X
+2 f
+2282(A)X
+1 f
+2336(,)X
+2 f
+(C)S
+1 f
+2417(})X
+2482(are)X
+2612(in)X
+2705(the)X
+2837(broadcast)X
+3198(spanning)X
+3540(trees)X
+3730(of)X
+2 f
+3827(A)X
+1 f
+3905(and)X
+2 f
+576 2648(B)N
+1 f
+655(respectively,)X
+1128(possibly)X
+1447(at)X
+1536(different)X
+1864(depths.)X
+2141(It)X
+2219(may)X
+2395(be)X
+2502(assumed)X
+2829(without)X
+3123(loss)X
+3284(of)X
+3381(generality)X
+3758(that)X
+2 f
+3915(A)X
+1 f
+3969('s)X
+576 2760(processor)N
+941(number)X
+1239(is)X
+1327(less)X
+1488(than)X
+1669(that)X
+1831(of)X
+2 f
+1933(B)X
+1 f
+1987(.)X
+2038(Under)X
+2286(the)X
+2423(constant)X
+2746(time)X
+2933(assumption,)X
+3386(both)X
+2 f
+3572(A)X
+1 f
+3655(and)X
+2 f
+3811(B)X
+1 f
+3894(will)X
+576 2872(receive)N
+865(each)X
+1061(others)X
+1311(claims)X
+1577(before)X
+1836(their)X
+2033(broadcast)X
+2405(is)X
+2499(completed.)X
+2924(When)X
+2 f
+3168(B)X
+1 f
+3256(receives)X
+2 f
+3578(A)X
+1 f
+3632('s)X
+3729(claim,)X
+3982(it)X
+576 2984(computes)N
+942(the)X
+1078(number)X
+1376(of)X
+1478(rounds)X
+1746(that)X
+2 f
+1908(A)X
+1 f
+1962('s)X
+2054(broadcast)X
+2420(has)X
+2566(proceeded;)X
+2981(if)X
+3064(this)X
+3221(number)X
+3519(is)X
+3607(greater)X
+3880(than)X
+576 3096(the)N
+708(number)X
+1001(of)X
+1098(rounds)X
+1361(that)X
+1518(its)X
+1626(own)X
+1801(broadcast)X
+2162(has)X
+2303(proceeded,)X
+2 f
+2710(B)X
+1 f
+2788(surrenders)X
+3177(its)X
+3285(claim)X
+3505(to)X
+3597(the)X
+3728(lock.)X
+3925(An)X
+576 3208(identical)N
+910(\(\256rst-claim,)X
+1353(\256rst)X
+1520(served\))X
+1808(policy)X
+2059(is)X
+2148(followed)X
+2491(by)X
+2 f
+2609(A)X
+1 f
+2663(.)X
+2715(If)X
+2803(the)X
+2941(broadcast)X
+3308(progress)X
+3635(metrics)X
+3925(are)X
+576 3320(the)N
+712(same,)X
+943(the)X
+1079(lower)X
+1307(numbered)X
+1687(processor)X
+2051(is)X
+2138(given)X
+2362(priority)X
+2655(and)X
+2810(is)X
+2896(considered)X
+3304(to)X
+3400(have)X
+3593(obtained)X
+3924(the)X
+576 3432(lock.)N
+773(The)X
+933(passive)X
+1215(processor)X
+2 f
+1574(C)X
+1 f
+1656(also)X
+1821(makes)X
+2069(the)X
+2200(same)X
+2404(decision)X
+2721(since)X
+2925(it)X
+2998(has)X
+3138(the)X
+3269(capability)X
+3641(of)X
+3738(comput-)X
+576 3544(ing)N
+723(the)X
+865(number)X
+1168(of)X
+1274(rounds)X
+1546(of)X
+1652(broadcast)X
+2022(progress)X
+2352(that)X
+2518(each)X
+2712(claimant)X
+3050(has)X
+3200(made)X
+3424(when)X
+3647(the)X
+3788(second)X
+576 3656(such)N
+759(broadcast)X
+1118(arrives.)X
+776 3908(In)N
+872(practice)X
+1174(however,)X
+1521(communication)X
+2094(times)X
+2309(between)X
+2625(arbitrary)X
+2951(pairs)X
+3145(of)X
+3242(processors)X
+3636(may)X
+3812(not)X
+3949(be)X
+576 4020(constant;)N
+920(further,)X
+1206(intervening)X
+1633(messages)X
+1990(of)X
+2088(other)X
+2294(types)X
+2504(may)X
+2680(skew)X
+2884(the)X
+3016(propagation)X
+3461(time)X
+3643(of)X
+3740(a)X
+3803(broad-)X
+576 4132(cast)N
+759(claim.)X
+1046(For)X
+1214(practical)X
+1564(safety)X
+1821(therefore,)X
+2207(the)X
+2362(originators)X
+2791(of)X
+2911(con\257icting)X
+3336(claims)X
+3614(exchange)X
+3993(a)X
+576 4244(con\256rmatory)N
+1061(message)X
+1389(\320)X
+1507(with)X
+1694(the)X
+1832(claim)X
+2059(being)X
+2285(abandoned)X
+2696(if)X
+2780(their)X
+2972(respective)X
+3358(notions)X
+3647(of)X
+3749(the)X
+3886(suc-)X
+576 4356(cessful)N
+848(claimant)X
+1181(are)X
+1317(not)X
+1459(in)X
+1557(agreement.)X
+1975(In)X
+2077(such)X
+2267(a)X
+2335(situation,)X
+2691(the)X
+2828(lower)X
+3057(numbered)X
+3438(processor)X
+3803(broad-)X
+576 4468(casts)N
+769(a)X
+830("reset)X
+1054(lock")X
+1264(message,)X
+1606(and)X
+1755(the)X
+1885(entire)X
+2108(process)X
+2393(is)X
+2474(started)X
+2731(afresh,)X
+2989(but)X
+3124(without)X
+3416(competition)X
+3861(from)X
+576 4580(the)N
+707("losing")X
+1018(processor.)X
+1421(In)X
+1517(case)X
+1691(of)X
+1787(process)X
+2073(or)X
+2169(processor)X
+2528(failures,)X
+2837(the)X
+2969(strategy)X
+3272(of)X
+3369(all)X
+2 f
+3482(pvmd)X
+1 f
+3696(processes)X
+576 4692(possessing)N
+979(all)X
+1095(information)X
+1539(is)X
+1624(used)X
+1811(to)X
+1906(avoid)X
+2128(undesirable)X
+2560(situations.)X
+2947(If)X
+3031(a)X
+3096(process)X
+3385(or)X
+3484(processor)X
+3846(hold-)X
+576 4804(ing)N
+716(a)X
+782(lock)X
+961(terminates)X
+1356(without)X
+1653(releasing)X
+1998(it,)X
+2097(the)X
+2233(particular)X
+2599(resource)X
+2924(is)X
+3011(marked)X
+3303(as)X
+3404("defunct";)X
+3793(further)X
+576 4916(requests)N
+886(to)X
+977(the)X
+1107(resource)X
+1426(are)X
+1555(denied)X
+1812(until)X
+1997(an)X
+2102(explicit)X
+2390(reset)X
+2578(is)X
+2659(performed.)X
+3 f
+576 5252(3.5.)N
+752(Process)X
+1057(control)X
+1 f
+776 5504(The)N
+942 0.3681(initiation)AX
+1292(order)X
+1506(and)X
+1662(process)X
+1954(dependencies)X
+2458(of)X
+2561(application)X
+2984(components)X
+3440(are)X
+3577(described)X
+3944(by)X
+576 5616(the)N
+710(use)X
+853(of)X
+952(appropriate)X
+3 f
+1378(initiate)X
+1 f
+1668(constructs)X
+2050(embedded)X
+2437(within)X
+2688(host)X
+2860(language)X
+3203(control)X
+3478(\257ow)X
+3659(statements)X
+576 5728(as)N
+678(described)X
+1044(in)X
+1142(the)X
+1279(preceding)X
+1656(section.)X
+1958(This)X
+2145(implies)X
+2436(that)X
+2599(it)X
+2679(is)X
+2768(not)X
+2911(possible)X
+3230(to)X
+3329(determine)X
+3712(statically)X
+576 5840(the)N
+708(application)X
+1125(process)X
+1412(\257ow)X
+1592(graph)X
+1816(as)X
+1913(component)X
+2329 0.3063(initiations)AX
+2708(may)X
+2884(be)X
+2991(conditional)X
+3413(or)X
+3510(repeated)X
+3832(based)X
+
+15 p
+%%Page: 15 15
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(15)X
+2370(-)X
+576 688(upon)N
+778(parameters)X
+1190(known)X
+1456(only)X
+1640(at)X
+1731(execution)X
+2101(time.)X
+2308(The)X
+3 f
+9 s
+2468(PVM)X
+1 f
+11 s
+2659(system)X
+2931(therefore)X
+3275(performs)X
+3619(process)X
+3909(ini-)X
+576 800(tiations)N
+874(in)X
+980(response)X
+1324(to)X
+1430(requests)X
+1755(based)X
+1991(upon)X
+2203(the)X
+2347(resources)X
+2714(available)X
+3069(and)X
+3232(load)X
+3420(conditions)X
+3824(at)X
+3924(the)X
+576 912(moment)N
+889(of)X
+985(the)X
+1116(request)X
+1393(\320)X
+1504(rather)X
+1732(than)X
+1907(by)X
+2019(constructing)X
+2479(a)X
+2542(predetermined)X
+3075(static)X
+3286(schedule)X
+3618(and)X
+3769(process)X
+576 1024(to)N
+667(processor)X
+1025(assignments.)X
+776 1276(When)N
+1013(an)X
+1123(application)X
+1543(component)X
+1963(process)X
+2254(makes)X
+2507(an)X
+3 f
+2618(initiate)X
+1 f
+2911(request,)X
+3215(the)X
+3351(local)X
+2 f
+3551(pvmd)X
+1 f
+3769(process)X
+576 1388(\256rst)N
+747(determines)X
+1168(a)X
+1241(candidate)X
+1613(pool)X
+1804(of)X
+1911(target)X
+2146(hosts)X
+2361(based)X
+2595(upon)X
+2805(the)X
+2947(information)X
+3397(in)X
+3499(the)X
+3640(component)X
+576 1500(description)N
+990(\256le.)X
+1169(One)X
+1337(host)X
+1506(is)X
+1587(then)X
+1761(selected)X
+2067(from)X
+2260(this)X
+2410(pool)X
+2589(based)X
+2811(upon)X
+3009(the)X
+3139(following)X
+3504(algorithm:)X
+576 1668(\(1\))N
+776(Select)X
+1017(next)X
+1194(host)X
+1366(from)X
+1562(pool)X
+1744(in)X
+1838(round-robin)X
+2283(manner,)X
+2594(based)X
+2819(upon)X
+3020(all)X
+3134 0.3063(initiations)AX
+3515(that)X
+3674(originated)X
+776 1780(here.)N
+576 1920(\(2\))N
+776(Obtain)X
+1040(load)X
+1216(metric)X
+1467(\(decayed)X
+1809(average)X
+2107(of)X
+2205(number)X
+2499(of)X
+2597(processes)X
+2958(in)X
+3052(run)X
+3194(queue\))X
+3458(from)X
+3654(this)X
+3807(poten-)X
+776 2032(tial)N
+912(target)X
+1135(host.)X
+576 2172(\(3\))N
+776(If)X
+856(this)X
+1006(quantity)X
+1318(is)X
+1399(less)X
+1553(than)X
+1727(a)X
+1788(prespeci\256ed)X
+2235(threshold,)X
+2607(select)X
+2830(this)X
+2980(host.)X
+576 2312(\(4\))N
+776(Otherwise,)X
+1182(repeat)X
+1420(the)X
+1551(process.)X
+1859(If)X
+1940(no)X
+2051(host)X
+2221(has)X
+2361(a)X
+2423(load)X
+2598(factor)X
+2827(below)X
+3066(the)X
+3198(threshold,)X
+3572(the)X
+3704(host)X
+3875(with)X
+776 2424(the)N
+906(lowest)X
+1158(load)X
+1332(is)X
+1413(the)X
+1543(selected)X
+1849(target.)X
+576 2676(Once)N
+785(the)X
+917(target)X
+1142(host)X
+1313(is)X
+1396(identi\256ed,)X
+1776(the)X
+1908(local)X
+2 f
+2104(pvmd)X
+1 f
+2318(sends)X
+2537(the)X
+2669(initiate)X
+2940(request)X
+3218(to)X
+3311(the)X
+2 f
+3443(pvmd)X
+1 f
+3657(process)X
+3944(on)X
+576 2788(the)N
+712(remote)X
+985(host,)X
+1182(where)X
+1424(the)X
+1560(application)X
+1981(component)X
+2401(is)X
+2488(initiated.)X
+2829(The)X
+2993(remote)X
+2 f
+3265(pvmd)X
+1 f
+3482(then)X
+3661(broadcasts)X
+576 2900(noti\256cation)N
+1009(of)X
+1112(this)X
+1270(event)X
+1491(to)X
+1590(all)X
+1709(processors,)X
+2131(simultaneously)X
+2696(claiming)X
+3037(an)X
+3151(instance)X
+3471(number)X
+3771(for)X
+3904(this)X
+576 3012 0.3681(initiation)AN
+949(\(by)X
+1118(simply)X
+1411(incrementing)X
+1929(the)X
+2089(last)X
+2263(previous)X
+2617(instance)X
+2957(number)X
+3277(for)X
+3430(the)X
+3589(component\).)X
+576 3124(Con\257icting)N
+1008(claims)X
+1273(for)X
+1409(the)X
+1551(same)X
+1766(instance)X
+2089(number)X
+2392(are)X
+2533(again)X
+2758(resolved)X
+3090(as)X
+3197(in)X
+3300(the)X
+3442(case)X
+3628(of)X
+3736(multiple)X
+576 3236(claims)N
+837(to)X
+936(a)X
+1005(lock,)X
+1209(with)X
+1395(a)X
+1463("losing")X
+1780(processor)X
+2145(using)X
+2365(a)X
+2433(higher)X
+2687(value.)X
+2929(Once)X
+3143(again,)X
+3385(consistent)X
+3767(con\257ict)X
+576 3348(resolution)N
+958(is)X
+1046(con\256rmed)X
+1432(by)X
+1549(an)X
+1661(exchange)X
+2022(of)X
+2124(messages)X
+2485(between)X
+2807(all)X
+2925(claimants)X
+3293(and)X
+3449(reset)X
+3645(actions)X
+3925(are)X
+576 3460(performed)N
+985(in)X
+1097(the)X
+1248(case)X
+1442(of)X
+1558(disagreement.)X
+2115(Application)X
+2575(process)X
+2880(termination)X
+3330(information)X
+3789(is)X
+3890(also)X
+576 3572(broadcast)N
+937(to)X
+1030(all)X
+2 f
+1143(pvmd)X
+1 f
+1357(processes.)X
+1739(Conditional)X
+2181(variants)X
+2484(of)X
+3 f
+2581(initiate)X
+1 f
+2870(are)X
+3001(saved)X
+3225(by)X
+3338(the)X
+3471(local)X
+2 f
+3668(pvmd)X
+1 f
+3858(,)X
+3905(and)X
+576 3684(this)N
+726(queue)X
+958(is)X
+1039(inspected)X
+1394(and)X
+1543(appropriate)X
+1966(action)X
+2204(taken)X
+2417(when)X
+2629(the)X
+2759(particular)X
+3119(event)X
+3332(occurs.)X
+3 f
+576 4020(3.6.)N
+752(Shared)X
+1043(Memory)X
+1387(and)X
+1551(Barriers)X
+1 f
+776 4272(In)N
+872(the)X
+3 f
+9 s
+999(PVM)X
+1 f
+11 s
+1187(system,)X
+1478(shared)X
+1731(memory)X
+2049(is)X
+2132(emulated)X
+2480(by)X
+2592(\256rst)X
+2753(creating)X
+3061(an)X
+3168(image)X
+3408(of)X
+3505(a)X
+3568(memory)X
+3886(seg-)X
+576 4384(ment)N
+780(on)X
+895(secondary)X
+1278(storage.)X
+1581(A)X
+1671(\256le)X
+1811(of)X
+1911(the)X
+2046(requested)X
+2410(size)X
+2574(is)X
+2660(created;)X
+2966(for)X
+3094(ef\256ciency)X
+3467(and)X
+3620(failure)X
+3876(resi-)X
+576 4496(liency)N
+815(reasons,)X
+1123(the)X
+1254(local)X
+2 f
+1449(pvmd)X
+1 f
+1662(\(the)X
+1823(processor)X
+2183(at)X
+2271(which)X
+2510(the)X
+2642(creation)X
+2950(request)X
+3228(originated\))X
+3639(attempts)X
+3963(to)X
+576 4608(locate)N
+811(the)X
+943(\256le)X
+1080(on)X
+1192(a)X
+1255(device)X
+1509(that)X
+1666(is)X
+1749(accessible)X
+2130(to)X
+2223(other)X
+2428(processors)X
+2822(via)X
+2954(a)X
+3017(network)X
+3329(\256le)X
+3465(system.)X
+3777(Mutual)X
+576 4720(exclusion,)N
+958(both)X
+1137(for)X
+1261(creation)X
+1567(as)X
+1662(well)X
+1836(as)X
+1932(for)X
+2057(access,)X
+2326(is)X
+2408(achieved)X
+2744(as)X
+2840(described)X
+3200(earlier.)X
+3470(A)X
+2 f
+3556(pvmd)X
+1 f
+3769(process)X
+576 4832(that)N
+732(has)X
+872(acquired)X
+1198(a)X
+1259(lock)X
+1433(\(on)X
+1572(behalf)X
+1814(of)X
+1909(a)X
+1970(local)X
+2164(application)X
+2579(process\))X
+2893(copies)X
+3140(the)X
+3270(\256le)X
+3405(into)X
+3565(the)X
+3695(requested)X
+576 4944(address)N
+864(space;)X
+1109(this)X
+1262(is)X
+1346(done)X
+1542(directly)X
+1838(if)X
+1918(the)X
+2052(\256le)X
+2191(is)X
+2276(accessible)X
+2659(directly,)X
+2977(and)X
+3130(with)X
+3313(the)X
+3447(assistance)X
+3825(of)X
+3924(the)X
+576 5056(remote)N
+2 f
+846(pvmd)X
+1 f
+1061(if)X
+1140(it)X
+1215(is)X
+1299(not.)X
+1459(A)X
+1547(user)X
+1718(release)X
+1987(request)X
+2266(results)X
+2521(in)X
+2615(the)X
+2748(speci\256ed)X
+3086(memory)X
+3405(area)X
+3576(being)X
+3797(copied)X
+576 5168(back)N
+766(to)X
+859(the)X
+991(\256le)X
+1128(unless)X
+1372(the)X
+1504(lock)X
+1680(request)X
+1958(was)X
+2118(for)X
+2245(read-only)X
+2607(access.)X
+2900(It)X
+2979(should)X
+3239(be)X
+3347(noted)X
+3568(that)X
+3726(creation,)X
+576 5280(locking,)N
+888(unlocking,)X
+1288(and)X
+1440(deallocation)X
+1897(\(resulting)X
+2260(in)X
+2354(\256le)X
+2492(removal\))X
+2835(events)X
+3085(are)X
+3216(broadcast)X
+3577(to)X
+3670(all)X
+2 f
+3783(pvmd)X
+1 f
+3973(s;)X
+576 5392(given)N
+803(the)X
+942(con\257ict)X
+1238(resolution)X
+1622(rules)X
+1824(and)X
+1982(highest)X
+2268(priority)X
+2564(to)X
+2664(incoming)X
+3029(requests,)X
+3370(undesirable)X
+3807(incon-)X
+576 5504(sistencies)N
+936(are)X
+1065(avoided.)X
+
+16 p
+%%Page: 16 16
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(16)X
+2370(-)X
+776 688(Barrier)N
+1047(synchronization)X
+1632(in)X
+3 f
+9 s
+1719(PVM)X
+1 f
+11 s
+1905(is)X
+1986(accomplished)X
+2493(by)X
+2604(using)X
+2818(an)X
+2924(ef\256cient)X
+3236(algorithm)X
+3603(described)X
+3963(in)X
+576 800([20].)N
+770(The)X
+932(algorithm)X
+1301(considers)X
+1658(the)X
+2 f
+1791(pvmd)X
+1 f
+2006(processes)X
+2367(as)X
+2465(being)X
+2686(the)X
+2819(vertices)X
+3118(in)X
+3212(a)X
+3276(logical)X
+3542(quadratic)X
+3895(net-)X
+576 912(work.)N
+803(In)X
+901(such)X
+1087(a)X
+1151(network)X
+1464(each)X
+1650(vertex)X
+2 f
+1895(i)X
+1 f
+1945(has)X
+2087(outgoing)X
+2426(links)X
+2623(to)X
+2 f
+2725(j)X
+1 f
+2776(such)X
+2963(that)X
+2 f
+3129(j)X
+1 f
+2 f
+9 f
+3183(=)X
+1 f
+2 f
+3253(i)X
+1 f
+2 f
+9 f
+3307(+)X
+1 f
+3377(2)X
+2 f
+8 s
+877(r)Y
+1 f
+11 s
+2 f
+3475 912(modN)N
+1 f
+3685(,)X
+3733(where)X
+2 f
+3973(N)X
+1 f
+576 1024(is)N
+660(the)X
+793(number)X
+1087(of)X
+2 f
+1185(pvmd)X
+1 f
+1399(processes,)X
+1781(and)X
+1932(0)X
+9 f
+1998(\243)X
+2 f
+2068(r)X
+1 f
+2 f
+2131(<)X
+1 f
+2212(log)X
+8 s
+2325 1041(2)N
+11 s
+2 f
+2386 1024(N)N
+1 f
+2445(.)X
+2491(Upon)X
+2710(receipt)X
+2974(of)X
+3071(a)X
+3 f
+3134(barrier)X
+1 f
+3432(request)X
+3710(from)X
+3905(one)X
+576 1136(of)N
+673(the)X
+806(local)X
+1003(application)X
+1421(processes,)X
+1804(each)X
+2 f
+1990(pvmd)X
+1 f
+2205(process)X
+2 f
+2493(i)X
+1 f
+2543(\256rst)X
+2705(waits)X
+2916(until)X
+3104(all)X
+3218(local)X
+3415(components)X
+3866(have)X
+576 1248(also)N
+740(reached)X
+1035(the)X
+1165(barrier,)X
+1443(and)X
+1592(then)X
+1766(executes)X
+2091(the)X
+2221(following)X
+2586(algorithm:)X
+796 1388(for)N
+2 f
+920(r)X
+1 f
+976(:=)X
+1073(0)X
+1139(to)X
+1230(log)X
+8 s
+1343 1405(2)N
+11 s
+2 f
+1404 1388(N)N
+1 f
+2 f
+9 f
+1492(-)X
+1 f
+1562(1)X
+1628(do)X
+928 1500(send)N
+1111(message)X
+1431(containing)X
+2 f
+1826(r)X
+1 f
+1882(to)X
+2 f
+1973(i)X
+1 f
+2 f
+9 f
+2027(+)X
+1 f
+2097(2)X
+2 f
+8 s
+1465(r)Y
+1 f
+11 s
+2 f
+2195 1500(mod)N
+1 f
+2 f
+2375(N)X
+1 f
+928 1612(wait)N
+1102(for)X
+1226(receipt)X
+1488(of)X
+1583(message)X
+1903(containing)X
+2 f
+2298(r)X
+1 f
+576 1864(This)N
+762(algorithm)X
+1135(is)X
+1223(ef\256cient)X
+1541(both)X
+1727(in)X
+1825(the)X
+1962(number)X
+2261(of)X
+2364(messages)X
+2726(used)X
+2917(and)X
+3074(the)X
+3212(number)X
+3511(of)X
+3614(rounds,)X
+3905(and)X
+576 1976(may)N
+750(be)X
+855(used)X
+1038(for)X
+1162(arbitrary)X
+1487(values)X
+1734(of)X
+2 f
+1829(N)X
+1 f
+1888(.)X
+3 f
+576 2312(3.7.)N
+752(Discussion)X
+1 f
+776 2564(An)N
+914(overview)X
+1272(of)X
+1376(the)X
+1515(design)X
+1776(and)X
+1934 0.2885(implementation)AX
+2521(strategies)X
+2885(used)X
+3077(to)X
+3177(realize)X
+3443(the)X
+3582(various)X
+3 f
+9 s
+3868(PVM)X
+1 f
+11 s
+576 2676(features)N
+885(has)X
+1033(been)X
+1230(presented)X
+1598(in)X
+1698(this)X
+1857(section.)X
+2160(As)X
+2287(is)X
+2376(common)X
+2715(with)X
+2902(most)X
+3104(software)X
+3436(systems,)X
+3767(there)X
+3973(is)X
+576 2788(sometimes)N
+980(a)X
+1045(tradeoff)X
+1349(between)X
+1669(versatility)X
+2050(and)X
+2204(ef\256ciency.)X
+2600(In)X
+3 f
+9 s
+2696(PVM)X
+1 f
+11 s
+2860(,)X
+2909(the)X
+3044(shared)X
+3300(memory)X
+3621(facility)X
+3899(that)X
+576 2900(is)N
+664(emulated)X
+1017(on)X
+1134(a)X
+1202(network)X
+1519(is)X
+1607(likely)X
+1837(to)X
+1934(be)X
+2045(the)X
+2181(cause)X
+2404(of)X
+2505(performance)X
+2977(degradation)X
+3421(if)X
+3503(used)X
+3692(unwisely.)X
+576 3012(However,)N
+948(as)X
+1050(has)X
+1196(been)X
+1391(pointed)X
+1685(out,)X
+1849(when)X
+2068(the)X
+2205(grainsize)X
+2552(of)X
+2654(sharing)X
+2943(memory)X
+3267(across)X
+3516(the)X
+3654(distributed)X
+576 3124(environment)N
+1058(is)X
+1152(relatively)X
+1521(large,)X
+1754(acceptable)X
+2161(ef\256ciency)X
+2543(levels)X
+2784(may)X
+2971(be)X
+3089(obtained;)X
+3453(and)X
+3615(the)X
+3758(bene\256ts)X
+576 3236(obtained)N
+920(by)X
+1048(the)X
+1196(shared)X
+1466(memory)X
+1801(abstraction)X
+2229(outweighs)X
+2632(the)X
+2781(small)X
+3014(performance)X
+3499(degradation.)X
+3978(It)X
+576 3348(should)N
+839(be)X
+950(noted)X
+1174(that)X
+1335(mutual)X
+1608(exclusion)X
+1973(and)X
+2127(barrier)X
+2388(synchronization)X
+2978(are)X
+3112(implemented)X
+3601(independent)X
+576 3460(of)N
+679(the)X
+817(shared)X
+1076(memory)X
+1400(mechanism)X
+1832(and)X
+1990(use)X
+2138(algorithms)X
+2547(that)X
+2711(are)X
+2849(known)X
+3119(to)X
+3219(be)X
+3333(ef\256cient)X
+3653(for)X
+3786(tens)X
+3959(of)X
+576 3572(processors)N
+968(on)X
+1078(local)X
+1272(networks.)X
+3 f
+576 3908(4.)N
+686(Preliminary)X
+1164(Results)X
+1 f
+776 4160(To)N
+910(facilitate)X
+1256(its)X
+1376(use)X
+1529(and)X
+1692(to)X
+1797(determine)X
+2186(its)X
+2306(effectiveness,)X
+2823(the)X
+3 f
+9 s
+2963(PVM)X
+1 f
+11 s
+3163(system)X
+3444(has)X
+3598(been)X
+3801(imple-)X
+576 4272(mented)N
+865(on)X
+982(a)X
+1050(variety)X
+1324(of)X
+1426(machines)X
+1788(including)X
+2151(Sun)X
+2316(3/50,)X
+2523(3/60)X
+2708(and)X
+2863(SparcStation1)X
+3386(workstations,)X
+3886(Vax)X
+576 4384(11/785)N
+854(and)X
+1014(Sun)X
+1184(4/280)X
+1418(servers,)X
+1721(a)X
+1793(64)X
+1914(node)X
+2119(Intel)X
+2315(iPSC/2)X
+2600(hypercube,)X
+3022(and)X
+3183(a)X
+3256(12)X
+3378(processor)X
+3748(Sequent)X
+576 4496(shared-memory)N
+1157(multiprocessor.)X
+1732(The)X
+1898(minimal)X
+2223(assumptions)X
+2688(made)X
+2908(regarding)X
+3274(the)X
+3411(underlying)X
+3821(facili-)X
+576 4608(ties)N
+725(available)X
+1070(greatly)X
+1341(simpli\256ed)X
+1721(the)X
+1855 0.2885(implementation)AX
+2437(efforts;)X
+2717(the)X
+2852(software)X
+3181(could)X
+3404(be)X
+3514(ported)X
+3766(\(from)X
+3993(a)X
+576 4720(base)N
+773(Sun)X
+951(3)X
+1036 0.2455(implementation\))AX
+1662(to)X
+1772(to)X
+1881(all)X
+2010(the)X
+2158(environments)X
+2678(with)X
+2875(changes)X
+3198(necessary)X
+3579(only)X
+3776(in)X
+3885(data)X
+576 4832(representation)N
+1105(and)X
+1262(conversion)X
+1678 0.3403(utilities.)AX
+1997(In)X
+2101(the)X
+2240 0.2679(implementation,)AX
+2849(the)X
+2 f
+2988(pvmd)X
+1 f
+3209(processes)X
+3576(run)X
+3724(indepen-)X
+576 4944(dently,)N
+844(while)X
+1065(the)X
+1198(user)X
+1369(level)X
+1566(routines)X
+1875(are)X
+2007(supplied)X
+2331(as)X
+2429(a)X
+2493(set)X
+2616(of)X
+2714(libraries)X
+3028(to)X
+3122(be)X
+3229(linked)X
+3474(in)X
+3567(with)X
+3748(applica-)X
+576 5056(tion)N
+739(components.)X
+1235(This)X
+1418(section)X
+1694(reports)X
+1964(on)X
+2078(observed)X
+2421(performance)X
+2891(\256gures)X
+3156(for)X
+3284(the)X
+3418(basic)X
+3 f
+9 s
+3621(PVM)X
+1 f
+11 s
+3811(primi-)X
+576 5168(tives)N
+772(and)X
+928(two)X
+1089(straightforward)X
+1660(applications;)X
+2141(in)X
+2239(the)X
+2376(next)X
+2556(section,)X
+2856(two)X
+3016(other)X
+3225(applications)X
+3680(that)X
+3841(make)X
+576 5280(extensive)N
+931(use)X
+1070(of)X
+1165(the)X
+1295(heterogeneous)X
+1825(facilities)X
+2152(are)X
+2281(described.)X
+
+17 p
+%%Page: 17 17
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(17)X
+2370(-)X
+3 f
+576 688(4.1.)N
+752(Basic)X
+975(Primitives)X
+1 f
+776 940(The)N
+945(ef\256ciency)X
+1324(of)X
+1429(user-level)X
+1808(data)X
+1987(transfer)X
+2287(is)X
+2378(perhaps)X
+2683(the)X
+2823(most)X
+3027(critical)X
+3305(aspect)X
+3557(of)X
+3662(any)X
+3821(distri-)X
+576 1052(buted)N
+804(computing)X
+1214(environment.)X
+1714(In)X
+1819(the)X
+3 f
+9 s
+1955(PVM)X
+1 f
+11 s
+2150(system,)X
+2448(low)X
+2611(latency)X
+2897(data)X
+3075(transfer)X
+3374(has)X
+3522(been)X
+3719(provided)X
+576 1164(without)N
+877(sacri\256cing)X
+1276(location)X
+1593(transparency,)X
+2096(and)X
+2255(a)X
+2326(datagram)X
+2686(protocol)X
+3012(is)X
+3103(used)X
+3296(so)X
+3406(that)X
+3571(overheads)X
+3959(of)X
+576 1276(more)N
+791(heavyweight)X
+1275(protocols)X
+1636(are)X
+1776(avoided.)X
+2110(It)X
+2197(is)X
+2289(anticipated)X
+2710(that)X
+2876(a)X
+2948(large)X
+3157(proportion)X
+3562(of)X
+3668(the)X
+3809(use)X
+3959(of)X
+3 f
+9 s
+576 1388(PVM)N
+1 f
+11 s
+764(will)X
+926(be)X
+1033(constrained)X
+1463(to)X
+1557(local)X
+1754(networks,)X
+2123(with)X
+2305(only)X
+2487(a)X
+2551(few)X
+2707(applications)X
+3159(wishing)X
+3463(to)X
+3557(execute)X
+3851(com-)X
+576 1500(ponents)N
+873(on)X
+984(geographically)X
+1531(distant)X
+1790(hosts.)X
+2016(The)X
+2176(protocols)X
+2527(used)X
+2711(by)X
+3 f
+9 s
+2818(PVM)X
+1 f
+11 s
+3004(therefore)X
+3343(incur)X
+3546(the)X
+3676(overheads)X
+576 1612(of)N
+679(retransmission)X
+1223(and)X
+1380(sequencing)X
+1806(only)X
+1993(when)X
+2213(the)X
+2352(underlying)X
+2765(network)X
+3084(quality)X
+3361(is)X
+3451(poor;)X
+3668(more)X
+3880(than)X
+576 1724(95%)N
+766(of)X
+868(local)X
+1069(network)X
+1386(communications)X
+1999(typically)X
+2337(succeed)X
+2643(on)X
+2759(the)X
+2895(\256rst)X
+3060(attempt.)X
+3376(Table)X
+3605(1)X
+3677(shows)X
+3924(the)X
+576 1836(message)N
+897(delivery)X
+1209(times)X
+1424(for)X
+1549(varying)X
+1841(message)X
+2162(sizes)X
+2356(under)X
+3 f
+9 s
+2575(PVM)X
+1 f
+11 s
+2763(between)X
+3080(two)X
+3236(Sun)X
+3397(3/50)X
+3578(systems)X
+3881(on)X
+3993(a)X
+576 1948(10)N
+695(MB/s)X
+922(Ethernet.)X
+1273(It)X
+1357(should)X
+1622(be)X
+1735(noted)X
+1961(that)X
+2124(these)X
+2335(\256gures)X
+2604(represent)X
+2956(elapsed)X
+3250(time)X
+3438(from)X
+3639(the)X
+3777(start)X
+3959(of)X
+576 2060(message)N
+906(transmission)X
+1384(to)X
+1486(the)X
+1627(receipt)X
+1900(of)X
+2006(positive)X
+2319(acknowledgment)X
+2954(and)X
+3114(are)X
+3254(averages)X
+3594(over)X
+3783(several)X
+576 2172(runs)N
+749(performed)X
+1137(under)X
+1359(varying)X
+1650(host)X
+1819(and)X
+1968(network)X
+2278(loads.)X
+10 f
+1022 2364(i)N
+1034(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1066 2476(Message)N
+1395(size)X
+1554(\(bytes\))X
+2033(8)X
+2334(128)X
+2679(256)X
+3024(512)X
+3347(1024)X
+10 f
+1022 2492(i)N
+1034(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1022 2508(i)N
+1034(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1066 2612(First)N
+1250(instance)X
+1949(15)X
+2059(ms)X
+2294(18)X
+2404(ms)X
+2639(22)X
+2749(ms)X
+2984(25)X
+3094(ms)X
+3329(30)X
+3439(ms)X
+10 f
+1022 2636(i)N
+1034(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1066 2748(Subsequent)N
+1494(instances)X
+1971(6)X
+2037(ms)X
+2316(8)X
+2382(ms)X
+2639(10)X
+2749(ms)X
+2984(12)X
+3094(ms)X
+3329(15)X
+3439(ms)X
+10 f
+1022 2772(i)N
+1034(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1022(c)X
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+1883 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+2228 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+2573 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+2918 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+3263 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+3586 2772(c)N
+2716(c)Y
+2628(c)Y
+2540(c)Y
+2452(c)Y
+1 f
+1436 2932(Table)N
+1659(1)X
+1725(:)X
+1772(User)X
+1959(process)X
+2244(data)X
+2413(transfer)X
+2703(times)X
+2917(in)X
+3 f
+9 s
+3008(PVM)X
+1 f
+11 s
+576 3184(Broadcast,)N
+976(since)X
+1183(it)X
+1259(is)X
+1344(used)X
+1531(heavily)X
+1817(within)X
+3 f
+9 s
+2065(PVM)X
+1 f
+11 s
+2229(,)X
+2277(is)X
+2363(another)X
+2654(important)X
+3025(factor)X
+3257(in)X
+3353(the)X
+3488(performance)X
+3959(of)X
+576 3296(the)N
+708(system.)X
+999(It)X
+1077(was)X
+1237(observed)X
+1578(that)X
+1734(for)X
+1859(broadcast)X
+2219(among)X
+2 f
+2482(pvmd)X
+1 f
+2695(processes,)X
+3076(the)X
+3207(calculated)X
+3588(performance)X
+576 3408(of)N
+679(the)X
+817(recursive)X
+1169(doubling)X
+1513(algorithm)X
+1887(is)X
+1976(consistent)X
+2359(with)X
+2546(actual)X
+2788(behavior.)X
+3171(Acknowledged)X
+3734(message)X
+576 3520(transmission)N
+1057(on)X
+1180(a)X
+1254(single)X
+1500(branch)X
+1774(of)X
+1882(the)X
+2024(broadcast)X
+2395(spanning)X
+2747(tree)X
+2913(required)X
+3240(between)X
+3567(4)X
+3645(and)X
+3806(9)X
+3884(mil-)X
+576 3632(liseconds)N
+929(for)X
+1056(a)X
+1120(\(typical\))X
+1444(100-byte)X
+1782(message,)X
+2128(depending)X
+2521(upon)X
+2723(the)X
+2857(speed)X
+3083(and)X
+3236(load)X
+3414(on)X
+3528(the)X
+3662(processors)X
+576 3744(involved.)N
+969(This)X
+1166(translated)X
+1549(to)X
+1658(measured)X
+2034(\256gures)X
+2312(of)X
+2424(15,)X
+2573(28,)X
+2722(35,)X
+2871(and)X
+3037(50)X
+3164(milliseconds)X
+3650(for)X
+3791(typical)X
+576 3856(broadcasts)N
+979(to)X
+1080(3,)X
+1178(7,)X
+1276(15,)X
+1418(and)X
+1577(31)X
+1697(hosts)X
+1910(respectively.)X
+2412(For)X
+2566(user)X
+2744(process)X
+3039(broadcasts,)X
+3464(the)X
+3604(\256gures)X
+3876(vary)X
+576 3968(widely,)N
+866(owing)X
+1114(to)X
+1211(the)X
+1347(fact)X
+1507(that)X
+2 f
+1668(pvmd)X
+1 f
+1885(processes)X
+2248(deliver)X
+2520(broadcasts)X
+2918(sequentially)X
+3372(to)X
+3468(local)X
+3667(recipients.)X
+576 4080(Thus,)N
+799(if)X
+878(a)X
+942(large)X
+1143(percentage)X
+1549(of)X
+1648(the)X
+1782(user)X
+1954(process)X
+2243(broadcast)X
+2606(group)X
+2837(were)X
+3033(physically)X
+3422(executing)X
+3791(on)X
+3905(one)X
+576 4192(host,)N
+773(the)X
+909(sequential)X
+1295(delivery)X
+1612(time)X
+1798(for)X
+1928(that)X
+2089(host)X
+2264(would)X
+2512(dominate)X
+2869(the)X
+3004(total)X
+3189(broadcast)X
+3553(time.)X
+3760(Table)X
+3988(2)X
+576 4304(shows)N
+835(typical)X
+1116(time)X
+1314(requirements)X
+1814(for)X
+1956(user)X
+2142(broadcast,)X
+2541(under)X
+2781(the)X
+2929(assumption)X
+3372(that)X
+3546(the)X
+3695(broadcast)X
+576 4416(groups)N
+837(are)X
+966(evenly)X
+1223(distributed)X
+1623(among)X
+1885(participating)X
+2354(hosts.)X
+776 4808(For)N
+926(access)X
+1179(to)X
+1277(shared)X
+1535(memory)X
+1858(segments,)X
+3 f
+9 s
+2233(PVM)X
+1 f
+11 s
+2426(performance)X
+2899(was)X
+3064(good,)X
+3291(although)X
+3629(the)X
+3766(timings)X
+576 4920(varied)N
+823(signi\256cantly,)X
+1309(depending)X
+1703(upon)X
+1906(the)X
+2041(number)X
+2337(of)X
+2437(active)X
+2 f
+2675(pvmd)X
+1 f
+2891(processes)X
+3253(as)X
+3352(well)X
+3530(as)X
+3629(the)X
+3763(number)X
+576 5032(of)N
+681(con\257icting)X
+1091(requests.)X
+1433(It)X
+1519(was)X
+1687(empirically)X
+2122(determined)X
+2551(that)X
+2716(the)X
+2856(average)X
+3161(time)X
+3351(to)X
+3452(access)X
+3708(emulated)X
+576 5144(shared)N
+827(memory)X
+1143(could)X
+1361(be)X
+1466(expressed)X
+1834(as)X
+2 f
+796 5368(Time)N
+8 s
+5385(ms)Y
+1 f
+11 s
+2 f
+9 f
+1072 5368(=)N
+1 f
+1142(12)X
+2 f
+9 f
+1252(\264)X
+1 f
+2 f
+1322(#)X
+1 f
+2 f
+1395(of)X
+1 f
+2 f
+1493(pvmd)X
+1 f
+2 f
+1712(processes)X
+1 f
+2 f
+9 f
+2082(+)X
+1 f
+2152(0.04)X
+2 f
+9 f
+2328(\264)X
+1 f
+2 f
+2398(segment_size)X
+8 s
+2862 5385(bytes)N
+1 f
+11 s
+576 5620(for)N
+705(shared)X
+961(memory)X
+1282(segments)X
+1637(of)X
+1737(size)X
+1901(256)X
+2060(bytes)X
+2274(and)X
+2429(larger.)X
+2684(the)X
+2820(\256rst)X
+2985(term)X
+3175(in)X
+3272(the)X
+3408(expression)X
+3812(is)X
+3899(that)X
+576 5732(required)N
+894(for)X
+1021(locking)X
+1311(the)X
+1444(segment,)X
+1785(this)X
+1938(term)X
+2125(is)X
+2209(dominant)X
+2568(and)X
+2720(increases)X
+3067(with)X
+3249(the)X
+3381(number)X
+3674(of)X
+3771(distinct)X
+576 5844(participating)N
+1048(processors.)X
+1465(An)X
+1597(alternative)X
+1996(mutual)X
+2268(exclusion)X
+2632(algorithm)X
+3002(that)X
+3161(reduced)X
+3465(the)X
+3599(effect)X
+3825(of)X
+3924(the)X
+
+18 p
+%%Page: 18 18
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(18)X
+2370(-)X
+10 f
+890 656(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1007 768(No.)N
+1158(of)X
+1492(No.)X
+1643(of)X
+2422(Message)X
+2751(size)X
+2910(\(bytes\))X
+934 880(processors)N
+1436(processes)X
+1988(8)X
+2311(128)X
+2700(256)X
+3089(512)X
+3456(1024)X
+10 f
+890 896(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+890 912(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1119 1016(4)N
+1604(4)X
+1904(18)X
+2014(ms)X
+2293(22)X
+2403(ms)X
+2682(26)X
+2792(ms)X
+3071(30)X
+3181(ms)X
+3460(35)X
+3570(ms)X
+10 f
+890 1040(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1119 1152(4)N
+1604(8)X
+1904(21)X
+2014(ms)X
+2293(26)X
+2403(ms)X
+2682(30)X
+2792(ms)X
+3071(35)X
+3181(ms)X
+3460(41)X
+3570(ms)X
+10 f
+890 1176(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1119 1288(8)N
+1604(8)X
+1904(39)X
+2014(ms)X
+2293(48)X
+2403(ms)X
+2682(60)X
+2792(ms)X
+3071(75)X
+3181(ms)X
+3460(90)X
+3570(ms)X
+10 f
+890 1312(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1119 1424(8)N
+1560(16)X
+1904(47)X
+2014(ms)X
+2293(57)X
+2403(ms)X
+2682(70)X
+2792(ms)X
+3071(86)X
+3181(ms)X
+3416(105)X
+3570(ms)X
+10 f
+890 1448(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1075 1560(16)N
+1560(16)X
+1904(65)X
+2014(ms)X
+2293(76)X
+2403(ms)X
+2682(91)X
+2792(ms)X
+3027(110)X
+3181(ms)X
+3416(130)X
+3570(ms)X
+10 f
+890 1584(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1075 1696(16)N
+1560(32)X
+1904(95)X
+2014(ms)X
+2249(110)X
+2403(ms)X
+2638(125)X
+2792(ms)X
+3027(145)X
+3181(ms)X
+3416(180)X
+3570(ms)X
+10 f
+890 1720(i)N
+901(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+890(c)X
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+1370 1720(c)N
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+1838 1720(c)N
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+2183 1720(c)N
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+2572 1720(c)N
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+2961 1720(c)N
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+3350 1720(c)N
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+3717 1720(c)N
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+1 f
+1449 1880(Table)N
+1672(2)X
+1738(:)X
+1785(User)X
+1972(process)X
+2257(broadcast)X
+2616(timings)X
+2904(in)X
+3 f
+9 s
+2995(PVM)X
+1 f
+11 s
+576 2104(\256rst)N
+739(term)X
+927(by)X
+1041(about)X
+1263(40%)X
+1450(is)X
+1535(available)X
+1880(and)X
+2033(may)X
+2211(be)X
+2320(used,)X
+2529(but)X
+2668(the)X
+2803(failure)X
+3060(resilience)X
+3425(properties)X
+3804(of)X
+3904(this)X
+576 2216(protocol)N
+892(are)X
+1021(considered)X
+1424(inadequate.)X
+776 2468(Owing)N
+1037(to)X
+1129(the)X
+1260(manner)X
+1547(in)X
+1639(which)X
+1877(process)X
+2163 0.3681(initiation)AX
+2507(and)X
+2657(mutual)X
+2926(exclusion)X
+3287(are)X
+3417(implemented,)X
+3924(the)X
+576 2580(time)N
+759(taken)X
+975(for)X
+1101(these)X
+1306(operations)X
+1697(are)X
+1828(almost)X
+2088(identical)X
+2417(to)X
+2510(that)X
+2667(for)X
+2793(100-byte)X
+3130(broadcasts)X
+3525(between)X
+2 f
+3842(pvmd)X
+1 f
+576 2692(processes.)N
+978(For)X
+1122(barrier)X
+1378(synchronization,)X
+1985(it)X
+2057(was)X
+2216(once)X
+2405(again)X
+2619(observed)X
+2959(that)X
+3115(the)X
+3246(sequential)X
+3627(handling)X
+3959(of)X
+576 2804(component)N
+992(instances)X
+1339(on)X
+1451(a)X
+1514(local)X
+1710(processor)X
+2069(could)X
+2288(be)X
+2394(dominant,)X
+2773(if)X
+2850(there)X
+3049(were)X
+3242(a)X
+3304(large)X
+3503(number)X
+3795(of)X
+3891(par-)X
+576 2916(ticipants)N
+912(on)X
+1036(any)X
+1199(one)X
+1362(machine.)X
+1720(To)X
+1855(measure)X
+2185(the)X
+2330(performance)X
+2811(of)X
+2921(the)X
+3066(barrier)X
+3 f
+9 s
+3333(PVM)X
+1 f
+11 s
+3534(primitive)X
+3896(was)X
+576 3028(tested)N
+805(using)X
+1019(a)X
+1081(sample)X
+1354(application)X
+1770(that)X
+1926(invoked)X
+2232(the)X
+3 f
+2362(barrier)X
+1 f
+2658(construct)X
+3003(twice)X
+3216(consecutively,)X
+3745(with)X
+3924(the)X
+576 3140(second)N
+842(invocation)X
+1237(being)X
+1455(timed.)X
+1701(Shown)X
+1967(in)X
+2058(Table)X
+2281(3)X
+2347(are)X
+2476(the)X
+2606(observed)X
+2945(measurements.)X
+10 f
+1638 3332(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1755 3444(No.)N
+1906(of)X
+2240(No.)X
+2391(of)X
+2695(Time)X
+1682 3556(processors)N
+2184(processes)X
+2652(\(msecs\))X
+10 f
+1638 3572(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1638 3588(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1867 3692(4)N
+2352(4)X
+2766(24)X
+10 f
+1638 3716(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1867 3828(4)N
+2352(8)X
+2766(58)X
+10 f
+1638 3852(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1867 3964(8)N
+2352(8)X
+2766(55)X
+10 f
+1638 3988(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1867 4100(8)N
+2308(16)X
+2722(120)X
+10 f
+1638 4124(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1823 4236(16)N
+2308(16)X
+2722(120)X
+10 f
+1638 4260(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1823 4372(16)N
+2308(32)X
+2722(270)X
+10 f
+1638 4396(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1823 4508(32)N
+2308(32)X
+2722(268)X
+10 f
+1638 4532(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1823 4644(32)N
+2308(64)X
+2722(605)X
+10 f
+1638 4668(i)N
+1649(iiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1638(c)X
+4652(c)Y
+4564(c)Y
+4476(c)Y
+4388(c)Y
+4300(c)Y
+4212(c)Y
+4124(c)Y
+4036(c)Y
+3948(c)Y
+3860(c)Y
+3772(c)Y
+3684(c)Y
+3596(c)Y
+3508(c)Y
+3420(c)Y
+2118 4668(c)N
+4652(c)Y
+4564(c)Y
+4476(c)Y
+4388(c)Y
+4300(c)Y
+4212(c)Y
+4124(c)Y
+4036(c)Y
+3948(c)Y
+3860(c)Y
+3772(c)Y
+3684(c)Y
+3596(c)Y
+3508(c)Y
+3420(c)Y
+2586 4668(c)N
+4652(c)Y
+4564(c)Y
+4476(c)Y
+4388(c)Y
+4300(c)Y
+4212(c)Y
+4124(c)Y
+4036(c)Y
+3948(c)Y
+3860(c)Y
+3772(c)Y
+3684(c)Y
+3596(c)Y
+3508(c)Y
+3420(c)Y
+2969 4668(c)N
+4652(c)Y
+4564(c)Y
+4476(c)Y
+4388(c)Y
+4300(c)Y
+4212(c)Y
+4124(c)Y
+4036(c)Y
+3948(c)Y
+3860(c)Y
+3772(c)Y
+3684(c)Y
+3596(c)Y
+3508(c)Y
+3420(c)Y
+1 f
+1436 4828(Table)N
+1659(3)X
+1725(:)X
+1772(Barrier)X
+2043(synchronization)X
+2628(timings)X
+2916(in)X
+3 f
+9 s
+3007(PVM)X
+11 s
+576 5276(4.2.)N
+752(Example)X
+1107(Applications)X
+1 f
+776 5416(In)N
+871(order)X
+1078(to)X
+1169(compare)X
+1494(the)X
+1624(relative)X
+1912(performance)X
+2379(of)X
+2475(the)X
+3 f
+9 s
+2602(PVM)X
+1 f
+11 s
+2789(system)X
+3057(to)X
+3149(existing)X
+3452(multiprocessors,)X
+576 5528(two)N
+733(existing)X
+1038(parallel)X
+1328(codes)X
+1553(were)X
+1748(ported)X
+1998(to)X
+2092(run)X
+2234(on)X
+2347(the)X
+2480(system.)X
+2772(These)X
+3006(two)X
+3162(applications)X
+3613(were)X
+3807(ported)X
+576 5640(without)N
+881(any)X
+1043(changes)X
+1361(to)X
+1466(the)X
+1610(algorithm)X
+1990(itself,)X
+2225(and)X
+2388(were)X
+2594(executed)X
+2943(under)X
+3 f
+9 s
+3175(PVM)X
+1 f
+11 s
+3375(on)X
+3499(a)X
+3574(collection)X
+3959(of)X
+576 5752(homogeneous)N
+1092(machines.)X
+1474(The)X
+1638(\256rst)X
+1802(application)X
+2222(was)X
+2385(numerical)X
+2764(integration)X
+3173(using)X
+3390(the)X
+3524(rectangle)X
+3873(rule.)X
+576 5864(The)N
+736(results)X
+989(from)X
+1184(this)X
+1336(experiment)X
+1757(were)X
+1951(uninterestingly)X
+2505(predictable;)X
+2946(on)X
+3 f
+9 s
+3054(PVM)X
+1 f
+11 s
+3218(,)X
+3264(scaling)X
+3538(in)X
+3631(the)X
+3763(number)X
+
+19 p
+%%Page: 19 19
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(19)X
+2370(-)X
+576 688(of)N
+673(processors)X
+1067(or)X
+1164(the)X
+1296(number)X
+1589(of)X
+1686(rectangles)X
+2067(resulted)X
+2370(in)X
+2462(a)X
+2524(linear)X
+2748(performance)X
+3215(increase.)X
+3570(Furthermore,)X
+576 800(the)N
+709(performance)X
+1178(ratio)X
+1365(between)X
+3 f
+9 s
+1679(PVM)X
+1 f
+11 s
+1868(and)X
+2020(the)X
+2153(iPSC/2)X
+2429(multiprocessor)X
+2978(for)X
+3105(this)X
+3258(problem)X
+3577(was)X
+3738(constant)X
+576 912(\320)N
+689(and)X
+840(consistent)X
+1217(with)X
+1398(the)X
+1530(inherent)X
+1843(processor)X
+2203(speed)X
+2427(differences.)X
+2863(The)X
+3024(second)X
+3292(application)X
+3709(is)X
+3792(Chole-)X
+576 1024(sky)N
+724(matrix)X
+981(factorization)X
+1453([16])X
+1625(\320)X
+1739(an)X
+1848(application)X
+2267(that)X
+2426(has)X
+2569(a)X
+2634(relatively)X
+2994(high)X
+3178(communication)X
+3755(to)X
+3851(com-)X
+576 1136(putation)N
+896(ratio.)X
+1132(Table)X
+1363(4)X
+1437(shows)X
+1686(the)X
+1824(elapsed)X
+2118(times)X
+2340(for)X
+2472(this)X
+2630(problem)X
+2954(run)X
+3101(on)X
+3219(a)X
+3288(network)X
+3606(of)X
+3709(Sun)X
+3875(3/50)X
+576 1248(machines)N
+952(for)X
+1098(varying)X
+1411(problem)X
+1749(sizes.)X
+1986(Shown)X
+2274(in)X
+2387(parentheses)X
+2841(adjacent)X
+3179(to)X
+3292(each)X
+3497(timing)X
+3773(are)X
+3924(the)X
+576 1360(corresponding)N
+1106(times)X
+1325(for)X
+1454(running)X
+1755(the)X
+1890(same)X
+2098(program)X
+2423(on)X
+2538(an)X
+2648(Intel)X
+2837(iPSC/2)X
+3115(hypercube.)X
+3530(In)X
+3629(this)X
+3783(experi-)X
+576 1472(ment,)N
+808(no)X
+929(attempt)X
+1228(was)X
+1397(made)X
+1621(to)X
+1723(place)X
+1942(more)X
+2156(than)X
+2341(one)X
+2501(component)X
+2926(process)X
+3223(on)X
+3345(a)X
+3418(host;)X
+3624(however,)X
+3982(it)X
+576 1584(should)N
+838(be)X
+948(noted)X
+1171(that)X
+1331(each)X
+1519(participating)X
+1993(host)X
+2167(was)X
+2330(also)X
+2499(being)X
+2722(used)X
+2910(simultaneously)X
+3472(for)X
+3601(general)X
+3886(pur-)X
+576 1696(pose)N
+759(editing,)X
+1049(compilation,)X
+1516(and)X
+1665(other)X
+1868(normal)X
+2140(workstation)X
+2578(activities.)X
+10 f
+936 1888(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1053 2000(No.)N
+1204(of)X
+2005(Problem)X
+2326(size)X
+2485(\(Order)X
+2740(of)X
+2835(Matrix\))X
+980 2112(processors)N
+1610(100)X
+2119(200)X
+2661(500)X
+3269(1000)X
+10 f
+936 2128(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+936 2144(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1165 2248(2)N
+1526(6)X
+1702(\(2\))X
+2002(35)X
+2222(\(30\))X
+2500(260)X
+2764(\(245\))X
+3086(1950)X
+3394(\(1923\))X
+10 f
+936 2272(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1165 2384(4)N
+1526(7)X
+1702(\(2\))X
+2002(22)X
+2222(\(16\))X
+2500(130)X
+2764(\(120\))X
+3130(990)X
+3438(\(970\))X
+10 f
+936 2408(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1165 2520(8)N
+1526(9)X
+1702(\(1.5\))X
+2002(17)X
+2266(\(9\))X
+2544(75)X
+2808(\(64\))X
+3130(610)X
+3438(\(490\))X
+10 f
+936 2544(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+1 f
+1121 2656(16)N
+1482(14)X
+1702(\(1\))X
+2002(12)X
+2266(\(6\))X
+2544(46)X
+2808(\(34\))X
+3130(342)X
+3438(\(255\))X
+10 f
+936 2680(i)N
+944(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
+936(c)X
+2592(c)Y
+2504(c)Y
+2416(c)Y
+2328(c)Y
+2240(c)Y
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1416 2680(c)N
+2592(c)Y
+2504(c)Y
+2416(c)Y
+2328(c)Y
+2240(c)Y
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1936 2680(c)N
+2672(c)Y
+2584(c)Y
+2496(c)Y
+2408(c)Y
+2320(c)Y
+2232(c)Y
+2434 2680(c)N
+2672(c)Y
+2584(c)Y
+2496(c)Y
+2408(c)Y
+2320(c)Y
+2232(c)Y
+3020 2680(c)N
+2672(c)Y
+2584(c)Y
+2496(c)Y
+2408(c)Y
+2320(c)Y
+2232(c)Y
+3672 2680(c)N
+2592(c)Y
+2504(c)Y
+2416(c)Y
+2328(c)Y
+2240(c)Y
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1 f
+1327 2840(Table)N
+1550(4)X
+1616(:)X
+1663(Times)X
+1906(\(in)X
+2026(seconds\))X
+2355(for)X
+2479(Cholesky)X
+2834(factorization)X
+776 3204(The)N
+941(anomaly)X
+1273(apparent)X
+1605(in)X
+1703(the)X
+1840(\256rst)X
+2006(column)X
+2300(of)X
+2402(Table)X
+2632(4)X
+2705(was)X
+2870(traced)X
+3114(down)X
+3338(to)X
+3436(the)X
+3573(nature)X
+3822(of)X
+3924(the)X
+576 3316(Cholesky)N
+935(algorithm)X
+1305(\320)X
+1419(for)X
+1547(a)X
+1612(small)X
+1830(matrix,)X
+2109(the)X
+2243(simultaneous)X
+2735(broadcasts)X
+3132(of)X
+3230(every)X
+3450(process's)X
+3801(matrix)X
+576 3428(column)N
+877(to)X
+983(a)X
+1059(\(relatively\))X
+1488(large)X
+1701(number)X
+2007(of)X
+2117(processors)X
+2524(resulted)X
+2840(in)X
+2946(a)X
+3022(high)X
+3216(percentage)X
+3634(of)X
+3744(dropped)X
+576 3540(packets,)N
+889(leading)X
+1176(to)X
+1272(retransmissions)X
+1846(and)X
+1999(elapsed)X
+2289(timeouts.)X
+2642(For)X
+2790(larger)X
+3021(problems)X
+3375(however,)X
+3725(it)X
+3801(can)X
+3949(be)X
+576 3652(seen)N
+760(that)X
+921(the)X
+1057(performance)X
+1529(of)X
+3 f
+9 s
+1626(PVM)X
+1 f
+11 s
+1818(is)X
+1905(acceptable)X
+2305(at)X
+2397(the)X
+2533(least,)X
+2745(considering)X
+3184(that)X
+3346(the)X
+3483(application)X
+3905(is)X
+3993(a)X
+576 3764(substantially)N
+1051(communication)X
+1629(oriented)X
+1945(one)X
+2099(and)X
+2253(that)X
+2413(general)X
+2699(purpose)X
+3004(machines)X
+3364(on)X
+3479(a)X
+3545(local)X
+3744(network)X
+576 3876(were)N
+775(used.)X
+987(It)X
+1070(should)X
+1334(also)X
+1505(be)X
+1617(pointed)X
+1911(out)X
+2053(that)X
+2215(these)X
+2426(\256gures)X
+2695(are)X
+2832(2)X
+2906(to)X
+3005(4)X
+3079(times)X
+3301(better)X
+3532(than)X
+3714(those)X
+3930(for)X
+576 3988(other)N
+787(distributed)X
+1194(multiprocessor)X
+1747(simulators)X
+2144(such)X
+2334(as)X
+2436(dsim[5].)X
+2783(Furthermore,)X
+3274(the)X
+3411(factorization)X
+3886(pro-)X
+576 4100(gram)N
+794(was)X
+967(built)X
+1167(for)X
+1307(performance)X
+1789(measurement)X
+2297(purposes)X
+2647(and)X
+2812(therefore)X
+3167(internally)X
+3544(generated)X
+3924(the)X
+576 4212(matrix)N
+858(elements)X
+1223(and)X
+1401(did)X
+1565(not)X
+1729(output)X
+2006(the)X
+2165(factorized)X
+2568(results.)X
+2871(Given)X
+3137(the)X
+3295(usual)X
+3531(dif\256culty)X
+3905(and)X
+576 4324(inef\256ciencies)N
+1074(in)X
+1172(I/O)X
+1318(from)X
+1518(within)X
+1773(the)X
+1910(nodes)X
+2144(in)X
+2242(a)X
+2310(distributed)X
+2717(memory)X
+3040(machine,)X
+3390(it)X
+3469(is)X
+3557(expected)X
+3899(that)X
+3 f
+9 s
+576 4436(PVM)N
+1 f
+11 s
+785(will)X
+968(compare)X
+1316(much)X
+1557(more)X
+1783(favorably)X
+2164(against)X
+2458(hardware)X
+2828(multiprocessors)X
+3430(when)X
+3664(signi\256cant)X
+576 4548(amounts)N
+897(of)X
+992(I/O)X
+1131(are)X
+1260(performed.)X
+3 f
+576 4884(5.)N
+686(Application)X
+1149(Experiences)X
+1 f
+776 5136(The)N
+3 f
+9 s
+937(PVM)X
+1 f
+11 s
+1129(system)X
+1402(has)X
+1547(evolved)X
+1854(and)X
+2009(has)X
+2154(been)X
+2348(in)X
+2445 0.3182(intermittent)AX
+2887(use)X
+3033(for)X
+3164(the)X
+3301(past)X
+3472(several)X
+3750(months,)X
+576 5248(and)N
+730(enhancements)X
+1256(are)X
+1390(still)X
+1551(ongoing.)X
+1889(Several)X
+2180(application)X
+2599(codes)X
+2825(have)X
+3017(been)X
+3209(ported)X
+3460(to)X
+3555(run)X
+3698(under)X
+3924(the)X
+3 f
+9 s
+576 5360(PVM)N
+1 f
+11 s
+762(environment;)X
+1255(in)X
+1346(this)X
+1496(section,)X
+1790(two)X
+1944(applications)X
+2393(that)X
+2549(make)X
+2763(extensive)X
+3119(use)X
+3259(of)X
+3355(the)X
+3486(system)X
+3754(features)X
+576 5472(are)N
+705(described.)X
+
+20 p
+%%Page: 20 20
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(20)X
+2370(-)X
+3 f
+576 688(5.1.)N
+752(Block)X
+990(Matrix)X
+1276(Multiplication)X
+1 f
+776 940(Matrix)N
+1046 0.3365(multiplication)AX
+1574(is)X
+1663(a)X
+1732(compute)X
+2066(intensive)X
+2415(application)X
+2838(that)X
+3001(is)X
+3091(amenable)X
+3460(to)X
+3560(parallel)X
+3856(solu-)X
+576 1052(tion.)N
+767(On)X
+905(shared)X
+1165(memory)X
+1489(multiprocessors,)X
+2099(prescheduling)X
+2623(algorithms)X
+3031(work)X
+3241(well)X
+3423(and)X
+3580(exhibit)X
+3856(good)X
+576 1164(speedup)N
+901(characteristics)X
+1442(with)X
+1636(an)X
+1756(increase)X
+2081(in)X
+2187(the)X
+2332(number)X
+2638(of)X
+2748(processors.)X
+3177(On)X
+3322(distributed)X
+3738(memory)X
+576 1276(machines,)N
+957(matrices)X
+1282(are)X
+1415(decomposed)X
+1881(into)X
+2045(subblocks)X
+2423(and)X
+2576 0.3875(multiplied;)AX
+2992(and)X
+3144(a)X
+3208(regular)X
+3482(communication)X
+576 1388(pattern)N
+855(between)X
+1182(the)X
+1324(processing)X
+1734(elements)X
+2082(helps)X
+2302(minimize)X
+2671(the)X
+2814(overheads.)X
+3227(A)X
+3325(detailed)X
+3640(description)X
+576 1500(and)N
+725(analysis)X
+1031(of)X
+1126(block)X
+1344(matrix)X
+1597 0.3365(multiplication)AX
+2117(on)X
+2227(hypercube)X
+2615(architectures)X
+3087(may)X
+3261(be)X
+3366(found)X
+3593(in)X
+3684([18].)X
+776 1752(A)N
+870(modi\256ed)X
+1215(version)X
+1505(of)X
+1609(the)X
+1748(block)X
+1975(matrix)X
+2237 0.3365(multiplication)AX
+2766(algorithm)X
+3142(was)X
+3310(implemented)X
+3804(on)X
+3924(the)X
+3 f
+9 s
+576 1864(PVM)N
+1 f
+11 s
+768(system)X
+1041(and)X
+1196(executed)X
+1537(on)X
+1653(various)X
+1940(hardware)X
+2294(combinations.)X
+2820(The)X
+2985(modi\256cation)X
+3460(was)X
+3624(with)X
+3808(regard)X
+576 1976(to)N
+672(subblock)X
+1017(decomposition;)X
+1590(when)X
+1808(the)X
+1944(individual)X
+2331(processors)X
+2729(differ)X
+2952(widely)X
+3220(in)X
+3317(computing)X
+3723(capabili-)X
+576 2088(ties,)N
+752(equal)X
+974(sized)X
+1186(subblocks)X
+1569(lead)X
+1746(to)X
+1845(severe)X
+2099(load)X
+2281(imbalances)X
+2708(and)X
+2865(result)X
+3091(in)X
+3190(signi\256cant)X
+3588(performance)X
+576 2200(degradation.)N
+1040(To)X
+1164(overcome)X
+1538(this,)X
+1715(the)X
+1850(matrices)X
+2176(to)X
+2272(be)X
+2382 0.3681(multiplied)AX
+2774(were)X
+2971(viewed)X
+3252(as)X
+3352(being)X
+3575(composed)X
+3959(of)X
+576 2312(small,)N
+814(equal)X
+1029(sized)X
+1234(subblocks)X
+1610(\320)X
+1722(with)X
+1903(individual)X
+2286(processors)X
+2680(taking)X
+2924(responsibility)X
+3428(for)X
+2 f
+3553(collections)X
+1 f
+3959(of)X
+576 2424(subblocks)N
+965(at)X
+1066(a)X
+1142(time,)X
+1359(the)X
+1504(size)X
+1678(of)X
+1789(the)X
+1935(collections)X
+2356(being)X
+2590(determined)X
+3025(by)X
+3151(their)X
+3351(relative)X
+3654(computing)X
+576 2536(power.)N
+852(In)X
+960(other)X
+1176(words,)X
+1447(the)X
+1590(algorithm)X
+1969(was)X
+2140(expressed)X
+2521(using)X
+2747(the)X
+2890("bag)X
+3087(of)X
+3194(tasks")X
+3440(approach,)X
+3818(where)X
+576 2648(each)N
+783(task)X
+971(is)X
+1076(individual)X
+1481(subblock)X
+1846 0.3125(multiplication.)AX
+2413(However,)X
+2803(each)X
+3011(worker)X
+3306(process)X
+3616(extracts,)X
+3959(or)X
+576 2760(assumes)N
+893(responsibility)X
+1398(for,)X
+1546(a)X
+1609(number)X
+1902(of)X
+1999(tasks)X
+2199(at)X
+2287(a)X
+2350(time)X
+2531(to)X
+2623(reduce)X
+2880(synchronization)X
+3466(and)X
+3616(cooperation)X
+576 2872(overheads.)N
+576 3012 MXY
+3672
+2966
+0.00
+0.00
+459.00
+370.80
+startFig
+%!
+%%%Creator: vss@mathsund (V.S.Sunderam,216 Fishburne,7275926,2974135)
+%%%Title: fig7 (xpic)
+%%%CreationDate: Fri Mar 23 13:10:10 1990
+%%%Pages: 1
+%%%BoundingBox: 0 0 459 370.8
+%% (in inches) at 0 0, width 6.375, height 5.15
+%%%EndComments
+%% Prolog for xpic to PostScript converter
+%% Author: Mark Moraes
+%% $Header: x2ps.pro,v 1.2 88/03/19 16:50:09 moraes Exp
+%% %d D - change style SOLID, DOTTED, SHORT-DASH, LONG-DASH, DOT-DASH
+%% %s F - change font to fontname
+%% %d S - change size (font size in points)
+%% (%s) rj %d t - text right just. (%d is TOPLINE, MIDLINE, BOTLINE)
+%% (%s) lj %d t - text left just. (%d is TOPLINE, MIDLINE, BOTLINE)
+%% (%s) ce %d t - text centered (%d is TOPLINE, MIDLINE, BOTLINE)
+%% %d %d l - lineto
+%% %d %d m - moveto
+%% %d %d s - spline segment
+%% x - flush line, spline
+%% <wid> <ht> <x> <y> b - box
+%% <wid> <ht> <x> <y> e - ellipse
+%% %d ss - setscale
+%% %d W - change linewidth
+%% getpagesize - gets the values of PAGEHEIGHT and PAGEWIDTH
+%% %d %d flip - translate by %d, PAGEHEIGHT - %d (this
+%% transforms to X windows coordinates)
+save 50 dict begin /xpic exch def
+/StartXpic {newpath 0 0 moveto [] 0 setdash 0 setgray 1 setlinecap} def
+%% Set defaults
+/fontname /Times-Roman def
+/ptsize 12 def
+%% halign has the values for MIDLINE, TOPLINE, BOTLINE
+/halign 3 array def
+/s {rcurveto} def
+/x {stroke} def
+/l {lineto} def
+/m {moveto} def
+/b {
+ /ury exch def /urx exch def /lly exch def /llx exch def
+ llx lly moveto urx lly lineto urx ury lineto
+ llx ury lineto llx lly lineto stroke
+} def
+/mtrx matrix def
+/e {
+ /yc exch def /xc exch def /yrad exch def /xrad exch def
+ xc xrad add yc moveto
+ /savematrix mtrx currentmatrix def
+ xc yc translate
+ xrad yrad scale
+ 0 0 1 0 360 arc
+ savematrix setmatrix stroke
+} def
+%% The next three take the text string, and moveto the right horiz. position
+%% leaving the string on the stack.
+/lj {} def
+/rj {dup stringwidth pop neg 0 rmoveto} def
+/ce {dup stringwidth pop 2 div neg 0 rmoveto} def
+%% And this is invoked after one of the three above, and
+%% computes the vert. pos, and then displays the string.
+/t {halign exch get 0 exch rmoveto show newpath} def
+%% Store an array of patterns in /styles - a pattern is an array consisting
+%% of an array and an offset. Corresp to xpic patterns
+%% solid, dotted, short-dashed, long-dashed, dot-dashed
+/styles [ [] 0 ] [ [1 3] 0 ] [ [4 4] 0 ] [ [8 4] 0 ] [ [1 4 4 4] 0 ]
+ 5 array astore def
+%% change style to arg.
+/D {stroke styles exch get aload pop setdash newpath} def
+/W {stroke 0.5 mul setlinewidth newpath} def
+%% fontbox takes a fontname off the stack, and returns an array
+%% containing the values of the bottom line of the bounding box, the
+%% mid line of the bounding box, and the top line of the bounding box
+%% of that font, taken from the baseline, scaled to a font of size 1
+/fontbox {
+ findfont dup /FontMatrix get /fm exch def /FontBBox get aload pop
+ /ytop exch def pop /ybot exch def pop
+ /ymid ytop ybot sub 2 div def
+ 0 ybot fm dtransform exch pop % botline
+ dup neg exch % midline - this works better than (ytop-ybot)/2!
+ 0 ytop fm dtransform exch pop exch %topline
+ % now in the order midline, topline, botline.
+ 3 array astore
+} def
+%% select font
+/F {
+ dup /fontname exch def fontbox
+ /thisfontbox exch def SF
+} def
+%% set point size
+/S {/ptsize exch def SF} def
+%% actually set font
+/SF {
+ fontname findfont ptsize curscale div scalefont setfont
+ thisfontbox aload pop
+ 1 1 3 {
+ pop ptsize mul curscale div neg 3 1 roll
+ } for
+ halign astore pop
+} def
+%% sets the scale to 72 / n, where n is on the stack, and stores the value
+%% in curscale for font scaling
+/curscale 1 def
+/getpagesize{newpath clippath pathbbox /pageheight exch def
+ /pagewidth exch def pop pop newpath} def
+/flip{pageheight exch sub translate} def
+/ss {/curscale exch 72 exch div dup dup scale def} def
+/land {90 rotate} def
+StartXpic
+%%%EndProlog
+80 ss
+0.5 W
+/Times-Roman F
+10 S
+92 27 m
+(for result matrix subblock computations) ce 0 t
+84 43 m
+(-Heavy boxes show actual allocation) ce 0 t
+76 59 m
+(- Dashed grid shows decomposition) ce 0 t
+324 43 m
+(-) ce 0 t
+420 43 m
+(Bands in A and B are similarly identified) ce 0 t
+388 59 m
+(-Each Cn is a 64x512 "band") ce 0 t
+2 D
+76 195 m
+396 195 l
+x
+76 235 m
+396 235 l
+x
+76 275 m
+396 275 l
+x
+76 355 m
+396 355 l
+x
+76 315 m
+396 315 l
+x
+84 155 m
+404 155 l
+x
+2 W
+0 D
+76 395 156 315 b
+156 315 316 155 b
+0.5 W
+76 395 396 75 b
+2 D
+116 395 m
+116 75 l
+x
+156 75 m
+156 395 l
+x
+196 395 m
+196 75 l
+x
+236 395 m
+236 75 l
+x
+276 387 m
+276 75 l
+x
+316 387 m
+316 75 l
+x
+76 115 m
+396 115 l
+x
+2 W
+0 D
+316 155 396 75 b
+156 355 316 315 b
+156 395 316 355 b
+76 155 316 75 b
+316 395 396 155 b
+0.5 W
+236 243 m
+(16-node hypercube) ce 0 t
+116 363 m
+(4 Sun 3/50) ce 0 t
+188 123 m
+(12-processor Sequent) ce 0 t
+356 259 m
+(Sequent) ce 0 t
+356 123 m
+(Sun 4/280) ce 0 t
+236 371 m
+(Sun 3/60 #1) ce 0 t
+236 331 m
+(Sun 3/60 #2) ce 0 t
+156 43 m
+(-) ce 0 t
+76 403 m
+(0) ce 0 t
+68 395 m
+(0) ce 0 t
+60 75 m
+(511) ce 0 t
+396 403 m
+(511) ce 0 t
+/Times-Italic F
+436 387 m
+(Shared data ) ce 0 t
+436 379 m
+(structure C1) ce 0 t
+420 331 m
+(C2) ce 0 t
+420 299 m
+(C3) ce 0 t
+420 251 m
+(C4) ce 0 t
+420 211 m
+(C5) ce 0 t
+420 179 m
+(C6) ce 0 t
+420 139 m
+(C7) ce 0 t
+100 403 m
+(Ca) ce 0 t
+140 403 m
+(Cb) ce 0 t
+180 403 m
+(Cc) ce 0 t
+220 403 m
+(Cd) ce 0 t
+260 403 m
+(Ce) ce 0 t
+292 403 m
+(Cf) ce 0 t
+332 403 m
+(Cg) ce 0 t
+372 403 m
+(Ch) ce 0 t
+420 99 m
+(C8) ce 0 t
+2 W
+76 315 156 155 b
+0.5 W
+/Times-Roman F
+116 243 m
+(Vax) ce 0 t
+12 S
+252 3 m
+(Figure 7: Asymteric decomposition for matrix multiplication) ce 0 t
+2 D
+356 387 m
+356 75 l
+x
+%%%Trailer
+showpage
+%% Trailer for xpic to PostScript converter
+%% $Header: x2ps.tra,v 1.1 88/08/31 23:48:01 moraes Exp $
+xpic end restore
+endFig
+
+21 p
+%%Page: 21 21
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(21)X
+2370(-)X
+776 688(Figure)N
+1029(7)X
+1096(shows)X
+1338(an)X
+1444(example)X
+1766(scenario,)X
+2104(where)X
+2341(task)X
+2506(partitioning)X
+2941(is)X
+3022(shown)X
+3273(in)X
+3364(terms)X
+3582(of)X
+3677(the)X
+3807(result-)X
+576 800(ing)N
+715(matrix.)X
+1017(It)X
+1098(should)X
+1360(be)X
+1470(noted)X
+1693(that)X
+1853(the)X
+1988(decomposition)X
+2535(shown)X
+2791(in)X
+2887(the)X
+3022(\256gure)X
+3254(is)X
+3340(not)X
+3480(statically)X
+3827(deter-)X
+576 912(mined;)N
+858(each)X
+1055(processor)X
+1427(computes)X
+1801(one)X
+1964(subblock)X
+2317(aggregate,)X
+2716(then)X
+2903(obtains)X
+3193(another,)X
+3514(and)X
+3676(so)X
+3789(on.)X
+3934(To)X
+576 1024(implement)N
+977(this)X
+1127(on)X
+3 f
+9 s
+1233(PVM)X
+1 f
+11 s
+1397(,)X
+1441(the)X
+1571(following)X
+1936(strategy)X
+2237(was)X
+2395(used:)X
+576 1164(-)N
+776(The)X
+939(matrices)X
+1264(to)X
+1359(be)X
+1468 0.3681(multiplied)AX
+1859(\()X
+2 f
+1888(A)X
+1 f
+1968(and)X
+2 f
+2121(B)X
+1 f
+2175(\))X
+2231(are)X
+2365(maintained)X
+2785(in)X
+2881(emulated)X
+3232(shared)X
+3488(memory)X
+3809(by)X
+3924(the)X
+776 1276("startup")N
+1145(process,)X
+1487(with)X
+1701(each)X
+1919(subblock)X
+2294(row)X
+2487(and)X
+2671(column)X
+2993(\(band\))X
+3279(being)X
+3532(independently)X
+776 1388(identi\256able)N
+1196(as)X
+1291(shown)X
+1542(in)X
+1633(Figure)X
+1885(7.)X
+1973(The)X
+2132(granularity)X
+2541(of)X
+2636(sharing)X
+2917(is)X
+2998(therefore)X
+3337(large.)X
+576 1528(-)N
+776(System)X
+1060(component)X
+1476(programs)X
+1832(are)X
+1963(written)X
+2237(to)X
+2330(use)X
+2471(the)X
+2604(algorithm)X
+2973(most)X
+3170(appropriate)X
+3596(for)X
+3723(their)X
+3910(tar-)X
+776 1640(geted)N
+1033(architecture,)X
+1537(i.e.)X
+1710(a)X
+1814(square)X
+2108(subblock)X
+2491(component)X
+2948(for)X
+3115(the)X
+3288(hypercube,)X
+3741(a)X
+3845(static)X
+776 1752(prescheduled)N
+1279(component)X
+1710(for)X
+1851(the)X
+1998(Sequent)X
+2321(shared)X
+2589(memory)X
+2922(multiprocessor,)X
+3507(and)X
+3674(sequential)X
+776 1864(code)N
+964(for)X
+1088(the)X
+1218(Sun)X
+1377(workstations.)X
+576 2004(-)N
+776(A)X
+861("working)X
+1212(list")X
+1379(shared)X
+1630(data)X
+1799(structure)X
+2129(is)X
+2210(set)X
+2330(up,)X
+2462(once)X
+2650(again)X
+2863(by)X
+2973(the)X
+3103("startup")X
+3437(process.)X
+3744(This)X
+3923(list)X
+776 2116(holds)N
+991(the)X
+1123(result)X
+1343(matrix)X
+1598(subblocks)X
+1974(that)X
+2130(have)X
+2319(been)X
+2508(computed)X
+2879(or)X
+2975(have)X
+3164(been)X
+3353(taken)X
+3567(up)X
+3678(by)X
+3789(a)X
+3851(com-)X
+776 2228(ponent.)N
+1065(For)X
+1214(example,)X
+1562(when)X
+1779(all)X
+1895(but)X
+2035(the)X
+2170(bottom)X
+2448(right)X
+2642(corner)X
+2893(subblock)X
+3238(of)X
+2 f
+3338(C)X
+1 f
+3424(\(Fig.)X
+3620(7\))X
+3721(has)X
+3866(been)X
+776 2340(computed)N
+1146(the)X
+1276(list)X
+1407(might)X
+1636(contain:)X
+776 2480(+)N
+976({0,127},{0,127})X
+1584(:)X
+1631(Indicating)X
+2011(that)X
+2167(the)X
+2298(4-member)X
+2683(group)X
+2911(of)X
+3007(Sun)X
+3167(3/50's)X
+3410(\(using)X
+3 f
+9 s
+3649(PVM)X
+1 f
+11 s
+3836(prim-)X
+976 2592(itives)N
+1205(to)X
+1311(cooperate)X
+1690(using)X
+1918(message-passing\))X
+2575(had)X
+2739(taken)X
+2966(responsibility)X
+3483(for)X
+3621(the)X
+3765(top)X
+3914(left)X
+976 2704(corner)N
+1222(subblock.)X
+776 2844(+)N
+976({128,383},{0,63})X
+1628(:)X
+1675(Taken)X
+1917(\(and)X
+2095(perhaps)X
+2390(completed\))X
+2809(by)X
+2919(Sun)X
+3078(3/60)X
+3257(#1.)X
+776 2984(+)N
+976({128,383},{65,127})X
+1716(:)X
+1763(Taken)X
+2005(by)X
+2115(Sun)X
+2274(3/60)X
+2453(#2.)X
+776 3124(+)N
+976({384,511},{0,383})X
+1672(:)X
+1719(Taken)X
+1961(by)X
+2071(and)X
+2220(completed)X
+2610(by)X
+2720(the)X
+2850(Sequent.)X
+776 3264(+)N
+976({0,127},{128,383})X
+1672(:)X
+1719(Taken)X
+1961(by)X
+2071(Vax.)X
+776 3404(+)N
+976({0,383},{384,511})X
+1672(:)X
+1719(Taken)X
+1961(by)X
+2071(Sequent)X
+2377(and)X
+2526(perhaps)X
+2821(being)X
+3039(currently)X
+3379(processed.)X
+776 3516(The)N
+942(last)X
+1094(processor,)X
+1481(upon)X
+1686(inspecting)X
+2078(this)X
+2235(list,)X
+2395(determines)X
+2811(that)X
+2973(it)X
+3052(can)X
+3203(compute)X
+3536(the)X
+3674(remaining)X
+776 3628(subblock)N
+1120(\({384,511},{384,511}\),)X
+1988(and)X
+2140(enters)X
+2375(this)X
+2528(pair)X
+2690(in)X
+2784(the)X
+2917(list)X
+3051(-)X
+3105(thereby)X
+3394(signaling)X
+3743(comple-)X
+776 3740(tion)N
+936(to)X
+1027(other)X
+1230(processors.)X
+576 3880(-)N
+776(Having)X
+1071(determined)X
+1504(which)X
+1755(subblock)X
+2110(a)X
+2186(component)X
+2615(was)X
+2788(going)X
+3026(to)X
+3132(compute,)X
+3495(the)X
+3640(component)X
+776 3992(then)N
+958(maps)X
+1174(the)X
+1312(appropriate)X
+1743(segments)X
+2101(of)X
+2204(the)X
+2 f
+2341(A)X
+1 f
+2424(and)X
+2 f
+2580(B)X
+1 f
+2663(matrices)X
+2991(into)X
+3158(its)X
+3271(local)X
+3472(memory.)X
+3817(Again)X
+776 4104(using)N
+998(\256gure)X
+1234(7)X
+1309(as)X
+1413(an)X
+1527(example,)X
+1879(the)X
+2019(component)X
+2443(executing)X
+2818(on)X
+2938("Sun)X
+3143(3/60)X
+3332(#2")X
+3488(would)X
+3740(map)X
+3924(the)X
+776 4216(bands)N
+1005(A2)X
+1136(and)X
+1287(Bb-Bf)X
+1531(into)X
+1693(its)X
+1801(local)X
+1997(memory,)X
+2337(and)X
+2488(using)X
+2702(these,)X
+2928(would)X
+3171(compute)X
+3498(the)X
+3629(shown)X
+3881(sub-)X
+776 4328(block)N
+998(of)X
+1097(the)X
+1232(matrix)X
+2 f
+1490(C)X
+1 f
+1549(.)X
+1598(The)X
+1762(Sequent)X
+2073(\(in)X
+2198(one)X
+2352(case\))X
+2559(would)X
+2806(map)X
+2985(bands)X
+3217(A7-A8)X
+3487(and)X
+3641(Ba-Bf,)X
+3905(and)X
+776 4440(use)N
+915(a)X
+976(locally)X
+1239(parallel)X
+1526(program)X
+1846(to)X
+1937(compute)X
+2263(the)X
+2393(resulting)X
+2724(matrix)X
+2977(subblock.)X
+776 4804(The)N
+941(results)X
+1199(of)X
+1300(executing)X
+1672(this)X
+1829(asymmetric)X
+2270(algorithm)X
+2643(using)X
+2863(multiple)X
+3188(architectures)X
+3667(are)X
+3803(shown)X
+576 4916(in)N
+680(Table)X
+916(5.)X
+1017(Also)X
+1218(shown)X
+1482(are)X
+1624(the)X
+1766(timing)X
+2032(\256gures)X
+2305(for)X
+2441 0.3375(multiplying)AX
+2889(the)X
+3031(same)X
+3246(matrices)X
+3579(using)X
+3804("pure")X
+576 5028(algorithms)N
+978(on)X
+1090(a)X
+1153(hypercube)X
+1543(and)X
+1694(a)X
+1757(shared)X
+2010(memory)X
+2328(machine.)X
+2695(It)X
+2773(can)X
+2919(be)X
+3026(seen)X
+3207(from)X
+3403(the)X
+3536(\256gure)X
+3766(that)X
+3924(the)X
+3 f
+9 s
+576 5140(PVM)N
+1 f
+11 s
+776 0.2885(implementation)AX
+1368(scales)X
+1614(well,)X
+1824(even)X
+2026(for)X
+2163(a)X
+2237(heterogeneous)X
+2780(collection)X
+3164(of)X
+3272(processors,)X
+3699(when)X
+3924(the)X
+576 5252(matrices)N
+899(are)X
+1030(large.)X
+1252(For)X
+1398(smaller)X
+1682(matrices)X
+2005(however,)X
+2353(the)X
+2485(locking)X
+2774(and)X
+2925(emulated)X
+3274(shared)X
+3528(memory)X
+3847(over-)X
+576 5364(heads)N
+803(actually)X
+1110(cause)X
+1332(an)X
+2 f
+1442(increase)X
+1 f
+1767(in)X
+1862(execution)X
+2231(times)X
+2449(when)X
+2665(more)X
+2872(processors)X
+3268(are)X
+3401(added.)X
+3681(Neverthe-)X
+576 5476(less,)N
+760(it)X
+841(is)X
+931(felt)X
+1080(that)X
+1244(such)X
+1436(algorithms)X
+1845(are)X
+1983(valuable)X
+2313(for)X
+2446(two)X
+2609(important)X
+2984(reasons.)X
+3300(First,)X
+3515(when)X
+3736(multiple)X
+576 5588(processors)N
+970(are)X
+1101(available,)X
+1466(the)X
+1598(total)X
+1780(computing)X
+2182(power)X
+2425(can)X
+2571(be)X
+2677(increased)X
+3032(\320)X
+3143(e.g.)X
+3293(a)X
+3355(16-node)X
+3666(hypercube)X
+576 5700(may)N
+773(be)X
+901(combined)X
+1294(with)X
+1496(other)X
+1722(processors)X
+2137(to)X
+2251(emulate)X
+2576(a)X
+2660(32)X
+2793(processor)X
+3174(virtual)X
+3450(machine)X
+3794(that)X
+3973(is)X
+576 5812(bene\256cial)N
+950(for)X
+1083(large)X
+1290(matrices.)X
+1642(Second,)X
+1954(the)X
+2093(the)X
+2232(support)X
+2526(services)X
+2839(that)X
+3002(are)X
+3139(available)X
+3488(on)X
+3606(the)X
+3744(network)X
+
+22 p
+%%Page: 22 22
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(22)X
+2370(-)X
+10 f
+1327 656(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1448 768(Machine)N
+1965(No.)X
+2116(of)X
+2322(Problem)X
+2643(Size)X
+2817(\(Order)X
+3072(of)X
+3167(Matrix\))X
+1526 880(type)N
+1971(procs.)X
+2334(64)X
+2580(128)X
+2892(256)X
+3248(512)X
+10 f
+1327 896(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1327 912(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1460 1016(Sequent)N
+2055(4)X
+2323(5.4)X
+2569(40.5)X
+2859(326.6)X
+3193(2581.9)X
+10 f
+1327 1040(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1460 1152(Sequent)N
+2055(8)X
+2323(2.9)X
+2569(20.9)X
+2859(163.8)X
+3193(1292.7)X
+10 f
+1327 1168(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1327 1184(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1476 1288(iPSC/2)N
+2055(4)X
+2323(1.5)X
+2613(9.3)X
+2903(81.5)X
+3237(693.5)X
+10 f
+1327 1312(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1476 1424(iPSC/2)N
+2033(16)X
+2323(1.2)X
+2613(3.1)X
+2903(18.2)X
+3237(191.7)X
+10 f
+1327 1440(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1327 1456(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1381 1560(PVM)N
+1593(\(Suns\))X
+2055(4)X
+2323(1.8)X
+2613(4.3)X
+2903(26.5)X
+3237(231.6)X
+10 f
+1327 1584(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1371 1696(PVM)N
+1583(\(Suns+)X
+1409 1808(Sequent-8\))N
+2033(16)X
+2323(2.8)X
+2613(5.1)X
+2903(20.3)X
+3237(212.5)X
+10 f
+1327 1832(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1 f
+1382 1944(PVM\(Suns+)N
+1398 2056(Sequent-8+)N
+2033(32)X
+2323(3.5)X
+2613(7.2)X
+2903(16.6)X
+3237(130.8)X
+1403 2168(iPSC/2-16\))N
+10 f
+1327 2192(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
+1327(c)X
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1888(c)Y
+1800(c)Y
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+1899 2192(c)N
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1888(c)Y
+1800(c)Y
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+2255 2192(c)N
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1888(c)Y
+1800(c)Y
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+2501 2192(c)N
+2144(c)Y
+2056(c)Y
+1968(c)Y
+1880(c)Y
+1792(c)Y
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+2791 2192(c)N
+2144(c)Y
+2056(c)Y
+1968(c)Y
+1880(c)Y
+1792(c)Y
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+3125 2192(c)N
+2144(c)Y
+2056(c)Y
+1968(c)Y
+1880(c)Y
+1792(c)Y
+1704(c)Y
+1616(c)Y
+1528(c)Y
+1440(c)Y
+1352(c)Y
+1264(c)Y
+1176(c)Y
+1088(c)Y
+1000(c)Y
+3481 2192(c)N
+2152(c)Y
+2064(c)Y
+1976(c)Y
+1888(c)Y
+1800(c)Y
+1712(c)Y
+1624(c)Y
+1536(c)Y
+1448(c)Y
+1360(c)Y
+1272(c)Y
+1184(c)Y
+1096(c)Y
+1008(c)Y
+920(c)Y
+832(c)Y
+744(c)Y
+1 f
+1463 2464(Table)N
+1686(5:)X
+1777(Times)X
+2020(\(in)X
+2140(seconds\))X
+2469(for)X
+2593(matrix)X
+2846 0.3365(multiplication)AX
+576 2688(\(such)N
+790(as)X
+887(\256lesystems)X
+1303(etc.\))X
+1481(may)X
+1657(be)X
+1764(exploited;)X
+2142(for)X
+2268(very)X
+2449(large)X
+2650(datasets,)X
+2976(asymmetric)X
+3413(partitioning)X
+3851(algo-)X
+576 2800(rithms)N
+824(can)X
+968(contribute)X
+1348(signi\256cantly)X
+1807(to)X
+1898(reduced)X
+2198(I/O)X
+2337(and)X
+2486(swapping)X
+2845(overheads.)X
+3 f
+576 3136(5.2.)N
+752(Contaminant)X
+1272(Transport)X
+1680(Simulation)X
+1 f
+776 3388(To)N
+896(further)X
+1157(exercise)X
+1468(the)X
+1599(heterogeneous)X
+2130(computing)X
+2531(facilities)X
+2859(in)X
+3 f
+9 s
+2947(PVM)X
+1 f
+11 s
+3111(,)X
+3156(an)X
+3262(interactive)X
+3658(simulation)X
+576 3500(program)N
+900(was)X
+1062(ported)X
+1313(to)X
+1408(the)X
+1541(system.)X
+1833(This)X
+2015(simulation)X
+2414(models)X
+2694(contaminant)X
+3156(transport)X
+3494(in)X
+3588(groundwater)X
+576 3612(\257ow,)N
+777(and)X
+927(is)X
+1010(part)X
+1171(of)X
+1268(a)X
+1331(larger)X
+1560(and)X
+1711(more)X
+1916(comprehensive)X
+2473(simulation)X
+2871(effort.)X
+3112(Preliminary)X
+3553(\256ndings)X
+3861(from)X
+576 3724(this)N
+727(work)X
+930(are)X
+1060(reported)X
+1376(in)X
+1468([2].)X
+1615(The)X
+1774(major)X
+2002(components)X
+2450(of)X
+2545(the)X
+2675(existing)X
+2977(software)X
+3301(are)X
+3430(a)X
+3491(graphical)X
+3841(inter-)X
+576 3836(face)N
+754(and)X
+913(the)X
+1053(solution)X
+1370(of)X
+1476(sets)X
+1641(of)X
+1747(differential)X
+2172(equations)X
+2543(involving)X
+2915(transport)X
+3261(calculations)X
+3716(and)X
+3876(\257ow)X
+576 3948(calculations.)N
+1043(The)X
+1203(transport)X
+1539(calculations)X
+1984(are)X
+2114(highly)X
+2363(parallelizable,)X
+2884(while)X
+3103(the)X
+3234(\257ow)X
+3413(equations)X
+3774(may)X
+3949(be)X
+576 4060(well)N
+786(solved)X
+1074(on)X
+1220(a)X
+1317(fast)X
+1502(scalar)X
+1765(machine.)X
+2144(The)X
+2340(existing)X
+2679 0.2885(implementation)AX
+3294(encountered)X
+3783(several)X
+576 4172(dif\256culties,)N
+1003(including)X
+1364(the)X
+1499(interfacing)X
+1908(of)X
+2007(the)X
+2141(two)X
+2299(computational)X
+2831(components,)X
+3305(the)X
+3439(transfer)X
+3733(of)X
+3832(struc-)X
+576 4284(tured)N
+786(data)X
+962(between)X
+1284(multiple)X
+1631(instances,)X
+2006(and)X
+2163(interactions)X
+2605(with)X
+2792(an)X
+2905(X-windows)X
+3344(graphical)X
+3702(interface.)X
+576 4396(The)N
+735(latter)X
+939(issue)X
+1137(was)X
+1295(particularly)X
+1724(cumbersome)X
+2196(when)X
+2408(the)X
+2538(system)X
+2805(was)X
+2963(run)X
+3102(over)X
+3280(a)X
+3341(wide)X
+3534(area)X
+3702(network.)X
+776 4648(The)N
+947(simulation)X
+1355(programs)X
+1721(were)X
+1925(ported)X
+2184(for)X
+3 f
+9 s
+2316(PVM)X
+1 f
+11 s
+2515(use,)X
+2689(by)X
+2812(partitioning)X
+3260(the)X
+3403(system)X
+3683(into)X
+3856(three)X
+576 4760(components)N
+1030(-)X
+1087(the)X
+1223(transport)X
+1564(calculations)X
+2014(\(executed)X
+2384(on)X
+2500(a)X
+2567(hypercube\),)X
+3012(the)X
+3147(\257ow)X
+3330(equations)X
+3695(\(on)X
+3839(a)X
+3905(fast)X
+576 4872(scalar)N
+807(machine\),)X
+1183(and)X
+1336(the)X
+1470(graphical)X
+1824(interface)X
+2158(on)X
+2272(a)X
+2337(Sun)X
+2500(workstation.)X
+2964(Very)X
+3165(few)X
+3322(modi\256cations)X
+3829(in)X
+3924(the)X
+576 4984(existing)N
+900(codes)X
+1144(were)X
+1358(required;)X
+1719(the)X
+1870(scalar)X
+2118(and)X
+2288(hypercube)X
+2697(components)X
+3166(interacted)X
+3557(via)X
+3708(emulated)X
+576 5096(shared)N
+828(memory)X
+1145(while)X
+1364(the)X
+1495(graphics)X
+1816(component)X
+2231(used)X
+2415(the)X
+2546(fast)X
+2696(message)X
+3017(passing)X
+3304(primitives)X
+3686(in)X
+3 f
+9 s
+3775(PVM)X
+1 f
+11 s
+3963(to)X
+576 5208(achieve)N
+868(better)X
+1092(response)X
+1422(and)X
+1571(lowered)X
+1876(latency.)X
+2175(An)X
+2304(additional)X
+2680(bene\256t)X
+2942(was)X
+3100(the)X
+3230(mobility)X
+3553(of)X
+3648(the)X
+3778(graphi-)X
+576 5320(cal)N
+705(interface)X
+1039(component;)X
+1482(due)X
+1635(to)X
+1731(the)X
+1866(connectionless)X
+2412(nature)X
+2659(of)X
+3 f
+9 s
+2755(PVM)X
+1 f
+11 s
+2946(interactions,)X
+3407(it)X
+3484(was)X
+3647(possible)X
+3963(to)X
+576 5432(execute)N
+877(the)X
+1017(graphical)X
+1377(interface)X
+1717(program)X
+2047(from)X
+2250(different)X
+2585(locations)X
+2936(in)X
+3037(a)X
+3107(manner)X
+3402(transparent)X
+3824(to)X
+3924(the)X
+576 5544(computational)N
+1108(components.)X
+1582(Further,)X
+1889(multiple)X
+2211(displays)X
+2527(were)X
+2724(possible)X
+3040(by)X
+3155(using)X
+3373(the)X
+3 f
+9 s
+3504(PVM)X
+1 f
+11 s
+3695(broadcast)X
+576 5656(facilities,)N
+930(a)X
+996(useful)X
+1238(feature)X
+1509(when)X
+1725(several)X
+2000(simultaneous)X
+2492(users)X
+2698(wish)X
+2890(to)X
+2985(interact)X
+3276(with)X
+3459(the)X
+3593(system.)X
+3886(Due)X
+576 5768(to)N
+668(the)X
+799(interactive)X
+1195(nature)X
+1438(of)X
+1534(the)X
+1665(application,)X
+2103(performance)X
+2570(timings)X
+2859(are)X
+2989(not)X
+3125(meaningful;)X
+3576(however,)X
+3924(the)X
+
+23 p
+%%Page: 23 23
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(23)X
+2370(-)X
+576 688(system)N
+843(performed)X
+1231(without)X
+1523(any)X
+1672(noticeable)X
+2057(degradation)X
+2495(when)X
+2707(executed)X
+3042(under)X
+3 f
+9 s
+3260(PVM)X
+1 f
+11 s
+3424(.)X
+3 f
+576 1024(6.)N
+686(Conclusions)X
+1163(and)X
+1327(Future)X
+1608(Work)X
+1 f
+776 1276(The)N
+947(primary)X
+1260(motivation)X
+1678(for)X
+1814(the)X
+3 f
+9 s
+1952(PVM)X
+1 f
+11 s
+2150(project)X
+2429(is)X
+2522(derived)X
+2820(from)X
+3025(the)X
+3167(existing)X
+3482(and)X
+3644(anticipated)X
+576 1388(need)N
+770(for)X
+900(a)X
+967(general,)X
+1276(\257exible,)X
+1591(and)X
+1746(inexpensive)X
+2195(concurrent)X
+2599(programming)X
+3107(environment.)X
+3602(Experiences)X
+576 1500(with)N
+763(the)X
+901(system)X
+1177(have)X
+1374(demonstrated)X
+1880(that)X
+2044(such)X
+2236(a)X
+2306(framework)X
+2722(can)X
+2875(be)X
+2989(provided)X
+3333(and)X
+3491(can)X
+3644(execute)X
+3944(on)X
+576 1612(existing)N
+881(hardware)X
+1232(bases,)X
+1469(with)X
+1651(the)X
+1784(bene\256ts)X
+2083(of)X
+2181(a)X
+2245(procedural)X
+2646(programming)X
+3151(interface)X
+3484(and)X
+3636(straightfor-)X
+576 1724(ward)N
+777(constructs)X
+1160(for)X
+1288(access)X
+1538(to)X
+1633(various)X
+1918(resources.)X
+2297(A)X
+2386(noteworthy)X
+2813(feature)X
+3083(of)X
+3 f
+9 s
+3178(PVM)X
+1 f
+11 s
+3368(is)X
+3453(its)X
+3564(generality)X
+3944(\320)X
+576 1836(supporting)N
+984(both)X
+1172(the)X
+1310(shared-memory)X
+1892(and)X
+2049(message-passing)X
+2670(paradigms)X
+3067(on)X
+3185(a)X
+3254(heterogeneous)X
+3792(collec-)X
+576 1948(tion)N
+736(of)X
+831(machines)X
+1186(is)X
+1267(useful.)X
+1548(The)X
+1707(framework)X
+2114(provided)X
+2450(by)X
+3 f
+9 s
+2557(PVM)X
+1 f
+11 s
+2744(enables)X
+3031(interaction)X
+3432(between)X
+3748(applica-)X
+576 2060(tion)N
+754(components)X
+1220(and)X
+1387(machine)X
+1726(architectures)X
+2216(that)X
+2389(are)X
+2536(normally)X
+2895(incompatible.)X
+3418(Anticipating)X
+3899(that)X
+576 2172(large)N
+776(and)X
+927(complex)X
+1255(parallel)X
+1544(systems)X
+1847(will)X
+2009(require)X
+2282(error)X
+2476(indication)X
+2854(and)X
+3005(failure)X
+3259(detection)X
+3607(capabilities,)X
+576 2284(such)N
+762(features)X
+1065(have)X
+1256(been)X
+1447(built)X
+1635(into)X
+1798(the)X
+3 f
+9 s
+1927(PVM)X
+1 f
+11 s
+2116(system)X
+2386(and)X
+2538(are)X
+2670(likely)X
+2897(to)X
+2990(be)X
+3097(valuable.)X
+3442(From)X
+3657(the)X
+3789(perfor-)X
+576 2396(mance)N
+837(point)X
+1050(of)X
+1154(view,)X
+3 f
+9 s
+1374(PVM)X
+1 f
+11 s
+1569(has)X
+1717(proven)X
+1992(to)X
+2092(be)X
+2207(acceptable)X
+2611(even)X
+2809(for)X
+2943(applications)X
+3402(with)X
+3591(a)X
+3662(high)X
+3851(com-)X
+576 2508(munication)N
+1009(to)X
+1113(computation)X
+1590(ratio)X
+1787(\320)X
+1910(although)X
+2253(its)X
+2371(primary)X
+2684(intent)X
+2920(is)X
+3013(to)X
+3116(support)X
+3414(applications)X
+3875(with)X
+576 2620(much)N
+795(larger)X
+1023(grainsize)X
+1365(and)X
+1516(less)X
+1672(interaction.)X
+2096(Perhaps)X
+2398(of)X
+2495(more)X
+2700(importance)X
+3121(in)X
+3214(certain)X
+3478(situations)X
+3841(is)X
+3924(the)X
+576 2732(ability)N
+829(of)X
+3 f
+9 s
+924(PVM)X
+1 f
+11 s
+1114(to)X
+1209(utilize)X
+1457(resources)X
+1814(that)X
+1973(already)X
+2258(exist)X
+2451(and)X
+2604(would)X
+2850(be)X
+2959(wasted)X
+3229(otherwise,)X
+3619(not)X
+3757(to)X
+3851(men-)X
+576 2844(tion)N
+740(its)X
+850(value)X
+1067(as)X
+1166(a)X
+1231(prototyping)X
+1669(tool)X
+1833(for)X
+1961(new)X
+2133(algorithms)X
+2537(or)X
+2636(applications.)X
+3133(The)X
+3296 0.3403(simplicity)AX
+3677(of)X
+3777(porting)X
+576 2956(the)N
+3 f
+9 s
+705(PVM)X
+1 f
+11 s
+894(system)X
+1164(as)X
+1262(well)X
+1439(as)X
+1537(application)X
+1955(software)X
+2282(also)X
+2449(enhances)X
+2796(its)X
+2905(appeal)X
+3160(and)X
+3311(will)X
+3473(contribute)X
+3855(to)X
+3948(its)X
+576 3068(increased)N
+930(use.)X
+776 3320(There)N
+1003(are,)X
+1154(however,)X
+1500(several)X
+1771(aspects)X
+2047(to)X
+3 f
+9 s
+2134(PVM)X
+1 f
+11 s
+2320(that)X
+2475(require)X
+2746(further)X
+3008(work;)X
+3236(some)X
+3445(efforts)X
+3697(are)X
+3827(ongo-)X
+576 3432(ing)N
+720(while)X
+947(others)X
+1193(are)X
+1331(planned)X
+1641(for)X
+1774(the)X
+1913(future.)X
+2198(A)X
+2292(very)X
+2479(valuable)X
+2809(addition)X
+3129(would)X
+3379(be)X
+3492(a)X
+3561(supplemental)X
+576 3544(toolkit)N
+832(that)X
+989(assisted)X
+1287(in)X
+1380(algorithm)X
+1748(partitioning)X
+2185(and)X
+2336(scheduling,)X
+2764(as)X
+2861(well)X
+3037(as)X
+3134(support)X
+3423(for)X
+3550(the)X
+3683(automatic)X
+576 3656(compilation)N
+1024(of)X
+1122(different)X
+1450(object)X
+1691(modules)X
+2015(for)X
+2142(different)X
+2470(architectures.)X
+2967(From)X
+3183(the)X
+3316(system)X
+3585(implementa-)X
+576 3768(tion)N
+742(point)X
+952(of)X
+1053(view,)X
+1274(it)X
+1352(is)X
+1439(evident)X
+1727(that)X
+1888(the)X
+2024(data)X
+2199(transfer,)X
+2518(broadcast,)X
+2906(and)X
+3062(mutual)X
+3337(exclusion)X
+3704(protocols)X
+576 3880(are)N
+712(the)X
+849(most)X
+1050(crucial)X
+1319(primitives,)X
+1729(and)X
+1885(work)X
+2094(is)X
+2181(in)X
+2278(progress)X
+2603(to)X
+2700(optimize)X
+3038(these.)X
+3269(Con\257ict)X
+3582(resolution)X
+3963(in)X
+576 3992(the)N
+716(locking)X
+1013(algorithm)X
+1389(presently)X
+1744(uses)X
+1927(a)X
+1999(heuristic)X
+2336(method)X
+2634(\320)X
+2755(a)X
+2827(provably)X
+3173(correct)X
+3450(formalization)X
+3959(of)X
+576 4104(this)N
+727(will)X
+887(be)X
+992(undertaken)X
+1405(soon.)X
+1615(From)X
+1828(the)X
+1958(application)X
+2373(point)X
+2577(of)X
+2672(view,)X
+2887(certain)X
+3149(additional)X
+3525(features)X
+3825(might)X
+576 4216(be)N
+695(desirable)X
+1050(such)X
+1248(as)X
+1358(\(1\))X
+1497(the)X
+1642(ability)X
+1906(to)X
+2012(coalesce)X
+2347(emulated)X
+2708(and)X
+2872(real)X
+3041(shared)X
+3307(memory,)X
+3660(and)X
+3824(\(2\))X
+3963(to)X
+576 4328(dynamically)N
+1046(optimize)X
+1389(message)X
+1720(passing,)X
+2039(locking)X
+2337(etc.,)X
+2517(depending)X
+2917(on)X
+3038(the)X
+3178(architecture)X
+3626(on)X
+3746(which)X
+3993(a)X
+576 4440(component)N
+1003(instance)X
+1327(is)X
+1421(executing.)X
+1821(Also)X
+2022(planned)X
+2336(for)X
+2473(the)X
+2616(future)X
+2861(are)X
+3003(a)X
+3078(graphical)X
+3442(interface)X
+3786(for)X
+3924(the)X
+576 4552(speci\256cation)N
+1049(of)X
+1149(component)X
+1568(execution)X
+1938(order)X
+2149(and)X
+2302(interactions,)X
+2762(as)X
+2861(well)X
+3039(as)X
+3138(debugging)X
+3536(and)X
+3689(execution)X
+576 4664(history)N
+843(trace)X
+1036(facilities.)X
+3 f
+576 5000(Acknowledgments)N
+1 f
+776 5252(The)N
+935(author)X
+1182(is)X
+1263(indebted)X
+1589(to)X
+1680(the)X
+1810(referees,)X
+2131(particularly)X
+2560(the)X
+2690(second)X
+2956(referee,)X
+3243(for)X
+3367(detailed)X
+3669(comments)X
+576 5364(that)N
+739(resulted)X
+1048(in)X
+1147(many)X
+1373(improvements)X
+1908(in)X
+2007(the)X
+2145(system)X
+2419(and)X
+2575(this)X
+2732(paper.)X
+2978(Thanks)X
+3266(are)X
+3402(also)X
+3573(due)X
+3729(to)X
+3827(M.)X
+3956(T.)X
+576 5476(Heath,)N
+831(G.)X
+939(A.)X
+1047(Geist,)X
+1278(T.)X
+1377(H.)X
+1485(Dunigan,)X
+1833(and)X
+1983(D.)X
+2092(A.)X
+2201(Poplawski)X
+2592(for)X
+2718(helpful)X
+2992(discussions)X
+3417(during)X
+3671(the)X
+3803(course)X
+576 5588(of)N
+671(this)X
+821(work)X
+1023(and)X
+1172(for)X
+1296(their)X
+1480(comments)X
+1865(on)X
+1975(earlier)X
+2222(versions)X
+2537(of)X
+2632(this)X
+2782(paper.)X
+
+24 p
+%%Page: 24 24
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(24)X
+2370(-)X
+3 f
+576 688(References)N
+1 f
+576 940([1])N
+776(K.)X
+896(Hwang,)X
+1206(F.)X
+1312(A.)X
+1432(Briggs,)X
+2 f
+1724(Computer)X
+2112(Architecture)X
+2589(and)X
+2757(Parallel)X
+3083(Processing)X
+1 f
+3474(,)X
+3532(McGraw-Hill,)X
+776 1052(New)N
+963(York,)X
+1187(1984.)X
+576 1192([2])N
+776(H.)X
+884(Narang,)X
+1188(R.)X
+1293(Flanery,)X
+1608(J.)X
+1688(Drake,)X
+2 f
+1948(Design)X
+2221(of)X
+2314(a)X
+2382(Simulation)X
+2789(Interface)X
+3131(for)X
+3258(a)X
+3326(Parallel)X
+3640(Computing)X
+776 1304(Environment)N
+1 f
+1231(,)X
+1275(Proc.)X
+1502(ACM)X
+1724(Southeastern)X
+2201(Regional)X
+2542(Conference,)X
+2991(April)X
+3199(1990,)X
+3419(to)X
+3510(appear.)X
+576 1444([3])N
+776(G.)X
+888(A.)X
+1000(Geist,)X
+1235(M.)X
+1362(T.)X
+1465(Heath,)X
+1724(B.)X
+1832(W.)X
+1964(Peyton,)X
+2258(P.)X
+2356(H.)X
+2468(Worley,)X
+2 f
+2781(A)X
+2862(Machine)X
+3198(Independent)X
+3661(Communi-)X
+776 1556(cation)N
+1023(Library)X
+1 f
+1292(,)X
+1339(Proc.)X
+1547(Hypercube)X
+1957(Concurrent)X
+2378(Computers)X
+2790(Conference)X
+3220(1989,)X
+3443(J.)X
+3524(Gustafson)X
+3905(ed.,)X
+776 1668(to)N
+867(appear.)X
+576 1808([4])N
+776(T.)X
+881(J.)X
+966(Gardner,)X
+2 f
+1304(et.)X
+1419(al.)X
+1 f
+1510(,)X
+2 f
+1561(DPUP)X
+1824(:)X
+1882(A)X
+1965(Distributed)X
+2418(Processing)X
+2838(Utilities)X
+3153(Package)X
+1 f
+3456(,)X
+3507(Computer)X
+3890(Sci-)X
+776 1920(ence)N
+959(Technical)X
+1329(Report,)X
+1613(University)X
+2007(of)X
+2102(Colorado,)X
+2474(Boulder,)X
+2802(1986.)X
+576 2060([5])N
+776(T.)X
+895(H.)X
+1023(Dunigan,)X
+2 f
+1391(Hypercube)X
+1819(Simulation)X
+2245(on)X
+2376(a)X
+2463(Local)X
+2707(Area)X
+2921(Network)X
+1 f
+3220(,)X
+3285(Oak)X
+3474(Ridge)X
+3728(National)X
+776 2172(Laboratory)N
+1189(Report)X
+1451(ORNL/TM-10685,)X
+2140(November)X
+2533(1988.)X
+576 2312([6])N
+776(C.)X
+884(Seitz,)X
+1110(J.)X
+1193(Seizovic,)X
+1546(W.)X
+1678(K.)X
+1790(Su,)X
+2 f
+1932(The)X
+2091(C)X
+2177(programmer's)X
+2710(Abbreviated)X
+3168(Guide)X
+3411(to)X
+3508(Multicomputer)X
+776 2424(Programming)N
+1 f
+1269(,)X
+1313(Caltech)X
+1605(Computer)X
+1980(Science)X
+2276(Report,)X
+2560(CS-TR-88-1,)X
+3044(January)X
+3339(1988.)X
+576 2564([7])N
+776(M.)X
+914(Sullivan,)X
+1269(D.)X
+1392(Anderson,)X
+2 f
+1793(Marionette:)X
+2252(A)X
+2344(System)X
+2627(for)X
+2769(Parallel)X
+3098(Distributed)X
+3539(Programming)X
+776 2676(Using)N
+1008(a)X
+1074(Master/Slave)X
+1561(Model)X
+1 f
+1786(,)X
+1830(Proc.)X
+2057(9th)X
+2192(ICDCS,)X
+2495(June)X
+2678(1989,)X
+2898(pp.)X
+3030(181-188.)X
+576 2816([8])N
+776(G.)X
+906(Riccardi,)X
+1272(B.)X
+1398(Traversat,)X
+1797(U.)X
+1927(Chandra,)X
+2 f
+2293(A)X
+2393(Master-Slaves)X
+2942(Parallel)X
+3278(Computation)X
+3785(Model)X
+1 f
+4010(,)X
+776 2928(Supercomputer)N
+1336(Research)X
+1680(Institute)X
+1992(Report,)X
+2276(Florida)X
+2553(State)X
+2752(University,)X
+3168(June)X
+3351(1989.)X
+576 3068([9])N
+776(Intel)X
+960(iPSC/2)X
+1233(Programmer's)X
+1758(Reference)X
+2136(Manual,)X
+2449(Intel)X
+2633(Corporation,)X
+3103(Beaverton,)X
+3509(March)X
+3760(1988.)X
+576 3208([10])N
+776(A.)X
+883(Karp,)X
+2 f
+1102(Programming)X
+1617(for)X
+1742(Parallelism)X
+1 f
+2154(,)X
+2198(IEEE)X
+2411(Computer,)X
+2808(May)X
+2991(1987,)X
+3211(pp.)X
+3343(43-57.)X
+576 3348([11])N
+776(J.)X
+865(B.)X
+979(Postel,)X
+2 f
+1251(User)X
+1455(Datagram)X
+1850(Protocol)X
+1 f
+2159(,)X
+2215(Internet)X
+2523(Request)X
+2841(for)X
+2977(Comments)X
+3394(RFC-768,)X
+3778(August)X
+776 3460(1980.)N
+576 3600([12])N
+776(N.)X
+888(Maekawa,)X
+2 f
+1279(A)X
+9 f
+1361 3583 MXY
+(sr)214 549 oc
+10 f
+1409(d)X
+1423(d)X
+2 f
+1409 3600(n)N
+1495(Algorithm)X
+1881(for)X
+2012(Mutual)X
+2295(Exclusion)X
+2671(in)X
+2768(Decentralized)X
+3290(Systems,)X
+3618(ACM)X
+3832(Tran-)X
+776 3712(sactions)N
+1087(on)X
+1197(Computer)X
+1571(Systems,)X
+1893(May)X
+2071(1985,)X
+2291(pp.)X
+2423(145-159.)X
+1 f
+576 3852([13])N
+776(K.)X
+895(Raymond,)X
+2 f
+1294(A)X
+1382(Tree)X
+1577(Based)X
+1827(Algorithm)X
+2220(for)X
+2358(Distributed)X
+2795(Mutual)X
+3085(Exclusion)X
+1 f
+3433(,)X
+3490(ACM)X
+3725(Transac-)X
+776 3964(tions)N
+970(on)X
+1080(Computer)X
+1455(Systems,)X
+1793(February)X
+2132(1989,)X
+2352(pp.)X
+2484(61-77.)X
+576 4104([14])N
+776(D.)X
+886(Agarwal,)X
+1235(A.)X
+1345(E.)X
+1446(Abbadi,)X
+2 f
+1752(An)X
+1875(Ef\256cient)X
+2195(Solution)X
+2515(to)X
+2610(the)X
+2744(Distributed)X
+3172(Mutual)X
+3453(Exclusion)X
+3827(Prob-)X
+776 4216(lem)N
+1 f
+903(,)X
+947(Proc.)X
+1152(Principles)X
+1527(of)X
+1622(Distributed)X
+2041(Computing)X
+2461(Conference,)X
+2910(Edmonton,)X
+3322(August)X
+3598(1989.)X
+576 4356([15])N
+776(J.)X
+856(S.)X
+951(Chase)X
+2 f
+1190(et.)X
+1300(al.)X
+1 f
+1391(,)X
+2 f
+1437(The)X
+1593(Amber)X
+1851(System:)X
+2148(Parallel)X
+2462(Programming)X
+2979(on)X
+3091(a)X
+3159(Network)X
+3483(of)X
+3577(Multiproces-)X
+776 4468(sors)N
+1 f
+922(,)X
+966(to)X
+1057(appear)X
+1313(in)X
+1404(12th)X
+1583(SOSP,)X
+1837(Litch\256eld)X
+2203(Park,)X
+2408(November)X
+2801(1989.)X
+576 4608([16])N
+776(G.)X
+891(A.)X
+1006(Geist,)X
+1244(M.)X
+1374(T.)X
+1480(Heath,)X
+2 f
+1742(Matrix)X
+2012(Factorization)X
+2524(on)X
+2643(Hypercube)X
+3059(Multiprocessors)X
+1 f
+(,)S
+3684(in)X
+3784(Hyper-)X
+776 4720(cube)N
+964(Multiprocessors)X
+1553(1986,)X
+1773(SIAM,)X
+2036(Philadelphia,)X
+2522(1986,)X
+2742(pp.)X
+2874(161-180.)X
+576 4860([17])N
+776(D.)X
+891(W.)X
+1026(Lozier,)X
+1308(R.)X
+1419(G.)X
+1535(Rehm,)X
+2 f
+1799(Some)X
+2020(Performance)X
+2510(Comparisons)X
+3010(for)X
+3144(a)X
+3219(Fluid)X
+3442(Dynamics)X
+3824(Code)X
+1 f
+4010(,)X
+776 4972(Parallel)N
+1068(Computing,)X
+1510(Vol.)X
+1686(11,)X
+1818(pp.)X
+1950(305-320,)X
+2287(1989.)X
+576 5112([18])N
+776(G.)X
+884(C.)X
+988(Fox,)X
+1170(S.)X
+1264(W.)X
+1392(Otto,)X
+2 f
+1594(Matrix)X
+1858(Algorithms)X
+2274(on)X
+2386(a)X
+2454(Hypercube)X
+2863(I:)X
+2945(Matrix)X
+3209 0.2740(Multiplication)AX
+1 f
+3716(,)X
+3762(Parallel)X
+776 5224(Computing,)N
+1218(Vol.)X
+1394(4,)X
+1482(pp.)X
+1614(17-31,)X
+1863(1987.)X
+576 5364([19])N
+776(A.)X
+902(Osterhaug,)X
+2 f
+1326(Guide)X
+1583(to)X
+1694(Parallel)X
+2026(Programming)X
+2561(on)X
+2691(Sequent)X
+3012(Computer)X
+3406(Systems)X
+1 f
+3684(,)X
+3748(Sequent)X
+776 5476(Computer)N
+1151(Systems,)X
+1489(Inc.,)X
+1667(Beaverton,)X
+2073(1986.)X
+576 5616([20])N
+776(R.)X
+886(Finkel,)X
+1163(E.)X
+1268(Styer,)X
+1505(U.)X
+1619(Manber,)X
+2 f
+1943(Designing)X
+2334(Ef\256cient)X
+2658(Barriers)X
+2985(in)X
+3084(Communication)X
+3677(Networks)X
+1 f
+4010(,)X
+776 5728(University)N
+1170(of)X
+1265(Kentucky)X
+1629(Technical)X
+1999(Report,)X
+2283(No.)X
+2434(165-90,)X
+2727(March)X
+2978(1990.)X
+
+25 p
+%%Page: 25 25
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(25)X
+2370(-)X
+3 f
+1459 688(Appendix)N
+1848(\320)X
+1958(PVM)X
+2180(User)X
+2377(Interface)X
+2740(Constructs)X
+576 940(enroll)N
+1 f
+797(\()X
+2 f
+826(<name>)X
+1 f
+1134(\))X
+776 1080(Enroll)N
+1019(calling)X
+1282(process)X
+1567(as)X
+2 f
+1662(<name>)X
+1 f
+1970(.)X
+2014(Returns)X
+2310(instance)X
+2621(number.)X
+3 f
+576 1248(initiate)N
+1 f
+841(\()X
+2 f
+870(<component)X
+1337(name>)X
+1 f
+1586(\))X
+776 1388(Start)N
+965(new)X
+1133(process)X
+1418(speci\256ed)X
+1753(by)X
+2 f
+1863(<component)X
+2330(name>)X
+1 f
+2579(.)X
+2623(Returns)X
+2919(instance)X
+3230(number.)X
+3 f
+576 1556(initiateP)N
+1 f
+895(\()X
+2 f
+924(<name1>)X
+1 f
+1276(,)X
+2 f
+(<name2>)S
+1 f
+1650(,)X
+2 f
+(<inum>)S
+1 f
+1966(\))X
+776 1696(Start)N
+965(new)X
+1133(instance)X
+1444(of)X
+2 f
+1539(<name1>)X
+1 f
+1913(when)X
+2 f
+2125(<name2>)X
+1 f
+2477(/)X
+2 f
+2502(<inum>)X
+1 f
+2818(terminates.)X
+3 f
+576 1864(initiateD)N
+1 f
+904(\()X
+2 f
+933(<name>)X
+1 f
+1241(,)X
+2 f
+(<event>)S
+1 f
+1567(\))X
+776 2004(Start)N
+965(new)X
+1133(instance)X
+1444(of)X
+2 f
+1539(<name>)X
+1 f
+1869(when)X
+2 f
+2081(<event>)X
+1 f
+2407(occurs.)X
+3 f
+576 2172(ready)N
+1 f
+791(\()X
+2 f
+820(<event>)X
+1 f
+1124(\))X
+776 2312(Inform)N
+3 f
+9 s
+1038(PVM)X
+1 f
+11 s
+1224(system)X
+1491(of)X
+1586(occurrence)X
+1993(of)X
+2 f
+2088(<event>)X
+1 f
+2392(.)X
+3 f
+576 2480(terminate)N
+1 f
+942(\()X
+2 f
+971(<name>)X
+1 f
+1279(,)X
+2 f
+(<inum>)S
+1 f
+1595(\))X
+776 2620(Terminate)N
+1161(instance)X
+2 f
+1472(<inum>)X
+1 f
+1788(of)X
+1883(component)X
+2 f
+2297(<name>)X
+1 f
+2605(.)X
+3 f
+576 2788(waitprocess)N
+1 f
+1015(\()X
+2 f
+1044(<name>)X
+1 f
+1352(,)X
+2 f
+(<inum>)S
+1 f
+1668(\))X
+776 2928(Block)N
+1009(caller)X
+1227(until)X
+1412(instance)X
+2 f
+1723(<inum>)X
+1 f
+2039(of)X
+2 f
+2134(<name>)X
+1 f
+2464(terminates.)X
+3 f
+576 3096(send)N
+1 f
+747(\()X
+2 f
+776(<name>)X
+1 f
+1084(,)X
+2 f
+(<inum>)S
+1 f
+1400(,)X
+2 f
+(<type>)S
+1 f
+1687(\))X
+776 3236(Send)N
+983(message)X
+1312(of)X
+1417(speci\256ed)X
+1762(type)X
+1946(to)X
+2047(speci\256ed)X
+2392(destination)X
+2812(process.)X
+3129(Negative)X
+3479(return)X
+3721(value)X
+3944(on)X
+776 3348(failure.)N
+3 f
+576 3516(recv)N
+1 f
+737(\()X
+2 f
+766(<type>)X
+1 f
+1031(\))X
+776 3656(Receive)N
+1082(message)X
+1402(of)X
+1497(speci\256ed)X
+1832(type.)X
+3 f
+576 3824(recv1)N
+1 f
+781(\()X
+2 f
+810(<type>)X
+1 f
+1075(,)X
+2 f
+(<other_limit>)S
+1 f
+1608(\))X
+776 3964(Receive)N
+1092(message)X
+1422(of)X
+1527(speci\256ed)X
+1873(type;)X
+2 f
+2083(<other_limit>)X
+1 f
+2627(msgs)X
+2841(of)X
+2947(other)X
+3161(types)X
+3380(allowed.)X
+3714(Negative)X
+776 4076(return)N
+1008(value)X
+1221(on)X
+1331(failure.)X
+3 f
+576 4244(recv2)N
+1 f
+781(\()X
+2 f
+810(<type1>)X
+1 f
+1119(,)X
+2 f
+(<timeout>)S
+1 f
+1524(\))X
+776 4384(Receive)N
+1118(message)X
+1452(of)X
+1561(speci\256ed)X
+1910(type)X
+2098(within)X
+2 f
+2360(<timeout>)X
+1 f
+2779(seconds.)X
+3115(Negative)X
+3469(return)X
+3716(value)X
+3944(on)X
+776 4496(failure.)N
+3 f
+576 4664(putstring)N
+1 f
+923(\()X
+2 f
+952(<string>)X
+1 f
+1276(\))X
+776 4804(Store)N
+2 f
+984(<string>)X
+1 f
+1330(in)X
+1421(send)X
+1604(buffer)X
+1840(in)X
+1931(machine)X
+2252(independent)X
+2705(form.)X
+3 f
+576 4972(putint)N
+1 f
+806(\()X
+2 f
+835(<num>)X
+1 f
+1104(\))X
+776 5112(Store)N
+984(integer)X
+1251(in)X
+1342(send)X
+1525(buffer)X
+1761(in)X
+1852(machine)X
+2173(independent)X
+2626(form.)X
+3 f
+576 5280(put\257oat)N
+1 f
+869(\()X
+2 f
+898(<fnum>)X
+1 f
+1192(\))X
+776 5420(Store)N
+984(real)X
+1138(number)X
+1429(in)X
+1520(send)X
+1703(buffer)X
+1939(in)X
+2030(machine)X
+2351(independent)X
+2804(form.)X
+3 f
+576 5588(getstring)N
+1 f
+908(\()X
+2 f
+937(<string_ptr>)X
+1 f
+1408(\))X
+776 5728(Retrieve)N
+1097(string)X
+1320(from)X
+1513(receive)X
+1789(buffer)X
+2025(in)X
+2116(machine)X
+2437(dependent)X
+2821(form.)X
+
+26 p
+%%Page: 26 26
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(26)X
+2370(-)X
+3 f
+576 688(getint)N
+1 f
+791(\()X
+2 f
+820(<integer_ptr>)X
+1 f
+1335(\))X
+776 828(Retrieve)N
+1097(integer)X
+1364(from)X
+1557(receive)X
+1833(buffer)X
+2069(in)X
+2160(machine)X
+2481(dependent)X
+2865(form.)X
+3 f
+576 996(get\257oat)N
+1 f
+854(\()X
+2 f
+883(<\257oat_ptr>)X
+1 f
+1305(\))X
+776 1136(Retrieve)N
+1097(real)X
+1251(number)X
+1542(from)X
+1735(receive)X
+2011(buffer)X
+2247(in)X
+2338(machine)X
+2659(dependent)X
+3043(form.)X
+3 f
+576 1304(recvinfo)N
+1 f
+884(\()X
+2 f
+913(<string_ptr>)X
+1 f
+1384(,)X
+2 f
+(<inum_ptr>)S
+1 f
+1847(,)X
+2 f
+(<len_ptr>)S
+1 f
+2242(\))X
+776 1444(Return)N
+1038(source)X
+1289(name,)X
+1524(instance)X
+1835(number,)X
+2148(and)X
+2297(length)X
+2540(of)X
+2635(last)X
+2780(received)X
+3100(message.)X
+3 f
+576 1612(broadcast)N
+1 f
+947(\()X
+2 f
+976(<name>)X
+1 f
+1284(\))X
+776 1752(Broadcast)N
+1150(send)X
+1333(buffer)X
+1569(to)X
+1660(all)X
+1771(instances)X
+2116(of)X
+2 f
+2211(<name>)X
+1 f
+2519(.)X
+2563(Returns)X
+2859(actual)X
+3092(number)X
+3383(of)X
+3478(recipients.)X
+3 f
+576 1920(barrier)N
+1 f
+850(\()X
+2 f
+879(<number>)X
+1 f
+1265(\))X
+776 2060(Blocks)N
+1049(caller)X
+1274(until)X
+1466(speci\256ed)X
+1808(number)X
+2106(of)X
+2208(instances)X
+2560(arrive)X
+2794(at)X
+2887(barrier.)X
+3172(Negative)X
+3519(return)X
+3758(value)X
+3978(if)X
+776 2172(some)N
+984(instances)X
+1329(have)X
+1517(terminated.)X
+3 f
+576 2340(waituntil)N
+1 f
+914(\()X
+2 f
+943(<event>)X
+1 f
+1247(\))X
+776 2480(Blocks)N
+1043(caller)X
+1261(until)X
+1446(speci\256ed)X
+1781(event)X
+1994(occurs.)X
+3 f
+576 2648(shmget)N
+1 f
+844(\()X
+2 f
+873(<key>)X
+1 f
+1108(,)X
+2 f
+(<size>)S
+1 f
+1380(\))X
+776 2788(Allocates)N
+1134(shared)X
+1388(memory)X
+1708(segment)X
+2028(of)X
+2127(speci\256ed)X
+2466(size)X
+2629(identi\256ed)X
+2989(by)X
+2 f
+3103(<key>)X
+1 f
+3338(.)X
+3408(A)X
+3497(negative)X
+3822(return)X
+776 2900(value)N
+989(indicates)X
+1325(that)X
+1480(the)X
+1610(key)X
+1759(value)X
+1972(is)X
+2053(already)X
+2334(in)X
+2425(use.)X
+3 f
+576 3068(shmat)N
+1 f
+805(\()X
+2 f
+834(<key>)X
+1 f
+1069(,)X
+2 f
+(<ptr>)S
+1 f
+1312(,)X
+2 f
+(<\257ag>)S
+1 f
+1584(,)X
+2 f
+(<timeout>)S
+1 f
+1989(\))X
+776 3208(Locks)N
+1022(shared)X
+1282(memory)X
+1607(segment)X
+1932(identi\256ed)X
+2297(by)X
+2 f
+2416(<key>)X
+1 f
+2682(and)X
+2840(maps)X
+3057(segment)X
+3382(at)X
+3478(caller's)X
+3769(address)X
+776 3320(space)N
+998(starting)X
+1289(at)X
+2 f
+1379(ptr>)X
+1 f
+1541(.)X
+1589("R")X
+1746(or)X
+1845("RW")X
+2085(are)X
+2218(possible)X
+2533(\257ag)X
+2691(values;)X
+2967(a)X
+3032(negative)X
+3357(value)X
+3574(is)X
+3659(returned)X
+3978(if)X
+776 3432(the)N
+910(attach)X
+1147(does)X
+1334(not)X
+1473(succeed)X
+1778(within)X
+2 f
+2031(<timeout>)X
+1 f
+2441(seconds.)X
+2768(A)X
+2858(0)X
+2929(timeout)X
+3227(value)X
+3445(causes)X
+3701(the)X
+3836(caller)X
+776 3544(to)N
+867(block)X
+1085(until)X
+1270(successful.)X
+3 f
+576 3712(shmatint)N
+1 f
+908(\()X
+2 f
+937(<key>)X
+1 f
+1172(,)X
+2 f
+(<integer_ptr>)S
+1 f
+1709(,)X
+2 f
+(<\257ag>)S
+1 f
+1981(,)X
+2 f
+(<timeout>)S
+1 f
+2386(\))X
+776 3852(Variant)N
+1062(of)X
+3 f
+1157(shmat)X
+1 f
+1408(that)X
+1563(maps)X
+1771(segment)X
+2087(in)X
+2178(typed)X
+2396(form)X
+2589(as)X
+2684(integer)X
+2951(array.)X
+3 f
+576 4020(shmat\257oat)N
+1 f
+971(\()X
+2 f
+1000(<key>)X
+1 f
+1235(,)X
+2 f
+(<\257oat_ptr>)S
+1 f
+1679(,)X
+2 f
+(<\257ag>)S
+1 f
+1951(,)X
+2 f
+(<timeout>)S
+1 f
+2356(\))X
+776 4160(Variant)N
+1062(of)X
+3 f
+1157(shmat)X
+1 f
+1408(that)X
+1563(maps)X
+1771(segment)X
+2087(in)X
+2178(typed)X
+2396(form)X
+2589(as)X
+2684(\257oat)X
+2863(array.)X
+3 f
+576 4328(shmdt)N
+1 f
+810(\()X
+2 f
+839(<key>)X
+1 f
+1074(,)X
+2 f
+(<ptr>)S
+1 f
+1317(\))X
+776 4468(Unlocks)N
+1100(and)X
+1258(unmaps)X
+1563(speci\256ed)X
+1907(shared)X
+2167(memory)X
+2492(segment)X
+2817(from)X
+3019(process')X
+3343(address)X
+3638(space)X
+3865(indi-)X
+776 4580(cated)N
+984(by)X
+2 f
+1094(<ptr>)X
+1 f
+1315(.)X
+3 f
+576 4748(shmdtint)N
+1 f
+913(\()X
+2 f
+942(<key>)X
+1 f
+1177(,)X
+2 f
+(<integer_ptr>)S
+1 f
+1714(\))X
+776 4888(Unlocks)N
+1110(and)X
+1278(unmaps)X
+1593(speci\256ed)X
+1947(shared)X
+2217(memory)X
+2552(segment)X
+2887(in)X
+2997(a)X
+3077(typed)X
+3314(form)X
+3527(from)X
+3740(process')X
+776 5000(address)N
+1061(space)X
+1278(indicated)X
+1624(by)X
+2 f
+1734(<integer_ptr>)X
+1 f
+2249(.)X
+3 f
+576 5168(shmdt\257oat)N
+1 f
+976(\()X
+2 f
+1005(<key>)X
+1 f
+1240(,)X
+2 f
+(<\257oat_ptr>)S
+1 f
+1684(\))X
+776 5308(Unlocks)N
+1110(and)X
+1278(unmaps)X
+1593(speci\256ed)X
+1947(shared)X
+2217(memory)X
+2552(segment)X
+2887(in)X
+2997(a)X
+3077(typed)X
+3314(form)X
+3527(from)X
+3740(process')X
+776 5420(address)N
+1061(space)X
+1278(indicated)X
+1624(by)X
+2 f
+1734(<\257oat_ptr>)X
+1 f
+2156(.)X
+3 f
+576 5588(shmfree)N
+1 f
+878(\()X
+2 f
+907(<key>)X
+1 f
+1142(\))X
+776 5728(Deallocates)N
+1209(speci\256ed)X
+1544(shared)X
+1795(memory)X
+2111(segment.)X
+
+27 p
+%%Page: 27 27
+11 s 11 xH 0 xS 1 f
+2209 400(-)N
+2260(27)X
+2370(-)X
+3 f
+576 688(lock)N
+1 f
+733(\()X
+2 f
+762(<resource_name>)X
+1 f
+1421(,)X
+2 f
+(<timeout>)S
+1 f
+1826(\))X
+776 828(Permits)N
+1070(exclusive)X
+1427(access)X
+1675(to)X
+1768(abstract)X
+2067(resource)X
+2389(identi\256ed)X
+2748(by)X
+2861(string-valued)X
+2 f
+3351(<resource_name>)X
+1 f
+4010(.)X
+776 940(Negative)N
+1133(return)X
+1382(value)X
+1612(indicates)X
+1964(resource)X
+2299(could)X
+2533(not)X
+2684(be)X
+2805(acquired)X
+3146(within)X
+3410(speci\256ed)X
+3761(timeout)X
+776 1052(period.)N
+3 f
+576 1220(unlock)N
+1 f
+831(\()X
+2 f
+860(<resource_name>)X
+1 f
+1519(\))X
+776 1360(Releases)N
+1106(lock)X
+1280(on)X
+1390(previously)X
+1784(acquired)X
+2109(resource.)X
+3 f
+576 1528(status)N
+1 f
+795(\()X
+2 f
+824(<component_name>)X
+1 f
+1562(,)X
+2 f
+(<inum>)S
+1 f
+1878(,)X
+2 f
+1922(<stat_ptr>)X
+1 f
+2315(,)X
+2 f
+(<loc_ptr>)S
+1 f
+2710(\))X
+776 1668(Takes)N
+1034(string)X
+1283(valued)X
+1566(component)X
+2006(name)X
+2245(and)X
+2420(an)X
+2551(instance)X
+2888(number)X
+3205(and)X
+3381(returns)X
+3674(the)X
+3831(status)X
+776 1780(\(0=nonexistent,)N
+1354(1=active\))X
+1714(and)X
+1867(location)X
+2178(\(processor)X
+2569(number)X
+2864(in)X
+2959(the)X
+3093(range)X
+3314(0)X
+3384(\320)X
+3497(p\))X
+3595(of)X
+3693(that)X
+3851(com-)X
+776 1892(ponent)N
+1038(instance.)X
+3 f
+576 2060(entercomp)N
+1 f
+976(\()X
+2 f
+1005(<name>)X
+1 f
+1313(,)X
+2 f
+(<loc_machine>)S
+1 f
+1903(,)X
+2 f
+(<obj_\256le>)S
+1 f
+2308(,)X
+2 f
+(<arch>)S
+1 f
+2609(\))X
+776 2200(Permits)N
+1077(a)X
+1147(component)X
+1570(description)X
+1993(to)X
+2093(be)X
+2207(added;)X
+2473(specifying)X
+2871(the)X
+3010(component)X
+3433(name,)X
+3677(the)X
+3816(object)X
+776 2312(\256le)N
+913(name)X
+1128(and)X
+1279(the)X
+1411(machine)X
+1734(on)X
+1845(which)X
+2083(it)X
+2156(is)X
+2238(located,)X
+2538(and)X
+2688(the)X
+2819(type)X
+2994(of)X
+3090(architecture)X
+3529(that)X
+3685(the)X
+3816(object)X
+776 2424(will)N
+936(execute)X
+1227(on.)X
+3 f
+576 2592(shmstat)N
+1 f
+868(\()X
+2 f
+897(<key_ptr_ptr>)X
+1 f
+1426(,)X
+2 f
+(<stat_ptr>)S
+1 f
+1841(\))X
+776 2732(Obtains)N
+1081(information)X
+1529(about)X
+1756(shared)X
+2016(memory)X
+2341(regions.)X
+2653(Array)X
+2888(of)X
+2993(strings)X
+3260(holds)X
+3483(the)X
+3623(key)X
+3782(values;)X
+776 2844(array)N
+987(of)X
+1091(integers)X
+1401(holds)X
+1623(status)X
+1855(\(0=free,)X
+2167(1=locked\))X
+2556(information.)X
+3048(Return)X
+3319(value)X
+3541(speci\256es)X
+3874(total)X
+776 2956(number)N
+1067(of)X
+1162(active)X
+1395(regions.)X
+3 f
+576 3124(lockstat)N
+1 f
+869(\()X
+2 f
+898(<key_ptr_ptr>)X
+1 f
+1427(\))X
+776 3264(Returns)N
+1072(total)X
+1252(number)X
+1543(of)X
+1638(active)X
+1871(locks)X
+2079(with)X
+2258(array)X
+2460(of)X
+2555(strings)X
+2812(holding)X
+3104(the)X
+3234(key)X
+3383(values.)X
+3 f
+576 3432(Notes:)N
+1 f
+776 3572(Among)N
+1066(the)X
+3 f
+9 s
+1196(PVM)X
+1 f
+11 s
+1386(constructs)X
+1769(described)X
+2132(above,)X
+2390(those)X
+2602(concerned)X
+2989(with)X
+3172(machine)X
+3497(dependent)X
+3885(data)X
+776 3684(representation)N
+1304(are)X
+1440(to)X
+1538(be)X
+1650(implemented)X
+2141(as)X
+2243(part)X
+2409(of)X
+2511(the)X
+2648(installation)X
+3071(procedure)X
+3451(for)X
+3582(architectures)X
+776 3796(not)N
+922(represented)X
+1360(in)X
+1462(the)X
+1603(generic)X
+1895(distribution)X
+2336(of)X
+2442(the)X
+2583(software.)X
+2940(Also)X
+3139(deemed)X
+3446(part)X
+3617(of)X
+3724(this)X
+3886(pro-)X
+776 3908(cedure)N
+1062(are)X
+1221(constructs)X
+1630(to)X
+1751(handle)X
+2038(other)X
+2271(data)X
+2470(types)X
+2708(such)X
+2920(as)X
+3044(double)X
+3335(precision,)X
+3731(boolean,)X
+776 4020(enumerated)N
+1209(types,)X
+1439(etc.)X
+
+27 p
+%%Trailer
+xt
+
+xs
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/USG-2007.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/USG-2007.pdf
new file mode 100644
index 0000000..5f3cb9c
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/USG-2007.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZAB-2004.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZAB-2004.pdf
new file mode 100644
index 0000000..9737d12
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZAB-2004.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZHA-1999.ps b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZHA-1999.ps
new file mode 100644
index 0000000..54f25b1
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Quellen/ZHA-1999.ps
@@ -0,0 +1,37443 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.10
+%%CreationDate: Fri Mar 5 21:13:00 1999
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Courier
+%%+ font Symbol
+%%DocumentSuppliedResources: file figure4.ps
+%%+ file figure3.ps
+%%+ file figure2.ps
+%%+ file figure1.ps
+%%+ procset grops 1.10 0
+%%Pages: 11
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.10 0
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Courier
+%%IncludeResource: font Symbol
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/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/circumflex
+/underscore/quoteleft/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/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 18/Times-Bold@0 SF(Cr)167.931 92 Q(eating Linux V)-.324 E
+(irtual Ser)-.666 E -.18(ve)-.18 G(rs).18 E/F1 10/Times-Italic@0 SF -.92
+(We)201.71 116 S(nsong Zhang).92 E 2.5(,S)-.1 G(hiyao Jin, Quanyuan W)
+-2.5 E(u)-.55 E/F2 10/Times-Roman@0 SF(National Laboratory for P)172.08
+134 Q(arallel & Distrib)-.15 E(uted Processing)-.2 E
+(Changsha, Hunan 410073, China)221.755 146 Q/F3 10/Courier@0 SF
+(wensong@iinchina.net)228 158 Q/F4 10/Times-Bold@0 SF(http://pr)214.82
+170 Q(oxy)-.18 E(.iinchina.net/~wensong)-.7 E F1(ABSTRA)264.535 206 Q
+(CT)-.3 E F2 .327(Clusters of serv)133 237.2 R .326
+(ers, connected by a f)-.15 F .326(ast netw)-.1 F .326(ork, are emer)-.1
+F .326(ging as a viable architec-)-.18 F 1.414(ture for b)108 249.2 R
+1.414(uilding a high-performance and highly a)-.2 F -.25(va)-.2 G 1.414
+(ilable serv).25 F(er)-.15 E 6.414(.T)-.55 G 1.415(his type of loosely)
+-6.414 F .364(coupled architecture is more scalable, more cost-ef)108
+261.2 R(fecti)-.25 E .663 -.15(ve a)-.25 H .363
+(nd more reliable than a single).15 F
+(processor system or a tightly coupled multiprocessor system.)108 273.2
+Q .024(This paper presents ho)133 288.8 R 2.524(wt)-.25 G 2.524(oc)
+-2.524 G .025(reate Linux virtual serv)-2.524 F .025(ers. V)-.15 F .025
+(irtual serv)-.6 F .025(er is a high-per)-.15 F(-)-.2 E 1.031
+(formance and highly a)108 300.8 R -.25(va)-.2 G 1.031(ilable serv).25 F
+1.031(er b)-.15 F 1.031(uilt on a cluster of real serv)-.2 F 1.03
+(ers. T)-.15 F 1.23 -.1(wo m)-.8 H 1.03(ethods of).1 F(IP-le)108 312.8 Q
+-.15(ve)-.25 G 3.025(ll).15 G .525(oad balancing were de)-3.025 F -.15
+(ve)-.25 G .525(loped to mak).15 F 3.025(ep)-.1 G .526
+(arallel services of the cluster to appear)-3.025 F 1.614
+(as a virtual service on a single IP address, one is virtual serv)108
+324.8 R 1.614(er via Netw)-.15 F 1.614(ork Address)-.1 F -.35(Tr)108
+336.8 S 1.017(anslation, the other is virtual serv).35 F 1.018
+(er via IP tunneling. Currently four scheduling algo-)-.15 F 3.27
+(rithms ha)108 348.8 R 3.57 -.15(ve b)-.2 H 3.27(een de).15 F -.15(ve)
+-.25 G 3.27(loped to meet dif).15 F 3.27(ferent application situations.)
+-.25 F 3.27(Scalability is)8.27 F(achie)108 360.8 Q -.15(ve)-.25 G 3.477
+(db).15 G 3.477(yt)-3.477 G .977(ransparently adding or remo)-3.477 F
+.978(ving a node in the cluster)-.15 F 3.478(.H)-.55 G .978(igh a)-3.478
+F -.25(va)-.2 G .978(ilability is).25 F(pro)108 372.8 Q 1.418
+(vided by detecting node or daemon f)-.15 F 1.417
+(ailures and recon\214guring the system appropri-)-.1 F(ately)108 384.8
+Q(.)-.65 E 1.44 LW 90 408.8 72 408.8 DL 108 408.8 90 408.8 DL 126 408.8
+108 408.8 DL 144 408.8 126 408.8 DL 162 408.8 144 408.8 DL 180 408.8 162
+408.8 DL 198 408.8 180 408.8 DL 216 408.8 198 408.8 DL 234 408.8 216
+408.8 DL 252 408.8 234 408.8 DL 270 408.8 252 408.8 DL 288 408.8 270
+408.8 DL 306 408.8 288 408.8 DL 324 408.8 306 408.8 DL 342 408.8 324
+408.8 DL 360 408.8 342 408.8 DL 378 408.8 360 408.8 DL 396 408.8 378
+408.8 DL 414 408.8 396 408.8 DL 432 408.8 414 408.8 DL 450 408.8 432
+408.8 DL 468 408.8 450 408.8 DL 486 408.8 468 408.8 DL 504 408.8 486
+408.8 DL/F5 16/Times-Bold@0 SF 4(1. Intr)72 453.8 R(oduction)-.288 E F2
+-.4(Wi)72 483.8 S .572(th the e).4 F(xplosi)-.15 E .872 -.15(ve g)-.25 H
+(ro).15 E .572
+(wth of the Internet and its increasingly important role in our li)-.25
+F -.15(ve)-.25 G .571(s, the traf).15 F .571(\214c on the)-.25 F .379
+(Internet is increasing dramatically)72 495.8 R 2.879(,w)-.65 G .379
+(hich has been gro)-2.879 F .379(wing at o)-.25 F -.15(ve)-.15 G 2.879
+(r1).15 G .38(00% annual rate. The load on popular)-2.879 F .035
+(Internet sites is gro)72 507.8 R .035(wing rapidly)-.25 F 2.535(,s)-.65
+G .035(ome ha)-2.535 F .335 -.15(ve a)-.2 H .034
+(lready got tens of millions hits per day).15 F 2.534(.M)-.65 G .034
+(ore and more admin-)-2.534 F 1.792(istrators ha)72 519.8 R 2.092 -.15
+(ve m)-.2 H 1.793(et the performance bottleneck problem of their serv)
+.15 F 1.793(ers, and with the increasing access)-.15 F .945
+(requests the serv)72 531.8 R .945(ers will be easily o)-.15 F -.15(ve)
+-.15 G .945(rloaded for a short time. No).15 F -.1(wa)-.25 G .945
+(days, more and more companies are).1 F(mo)72 543.8 Q .73(ving their b)
+-.15 F .73(usinesses on the Internet, an)-.2 F 3.231(yi)-.15 G .731
+(nterrupt/stop of services on the serv)-3.231 F .731(ers means b)-.15 F
+.731(usiness lose,)-.2 F .827(and high a)72 555.8 R -.25(va)-.2 G .827
+(ilability of these serv).25 F .827
+(ers becomes increasingly important. Therefore, the demand for scalable)
+-.15 F .316(and highly a)72 567.8 R -.25(va)-.2 G .316(ilable serv).25 F
+.316(ers is gro)-.15 F .317(wing ur)-.25 F(gently)-.18 E 5.317(.T)-.65 G
+.317(he requirements for this type of serv)-5.317 F .317
+(ers are summarized)-.15 F(as follo)72 579.8 Q(ws:)-.25 E 2.5(*I)97
+595.4 S(ncremental scalability)-2.5 E 2.5(*2)97 611 S(4x7 a)-2.5 E -.25
+(va)-.2 G(ilability).25 E 2.5(*C)97 626.6 S(ost-ef)-2.5 E(fecti)-.25 E
+-.15(ve)-.25 G(ness).15 E .32(The single serv)72 642.2 R .32
+(er solution, which is to upgrade the serv)-.15 F .32
+(er to a higher performance serv)-.15 F(er)-.15 E 2.82(,h)-.4 G .32
+(as its shortcom-)-2.82 F .197
+(ings to meet the requirements. The upgrading process is comple)72 654.2
+R .197(x, and the original machine may be w)-.15 F(asted.)-.1 E .316
+(When requests increase, it will be o)72 666.2 R -.15(ve)-.15 G .316
+(rloaded soon so that we ha).15 F .616 -.15(ve t)-.2 H 2.816(ou).15 G
+.316(pgrade ag)-2.816 F .316(ain. The serv)-.05 F .315(er is a single)
+-.15 F(point of f)72 678.2 Q(ailure. The higher end the serv)-.1 E
+(er is upgraded to, the higher cost we ha)-.15 E .3 -.15(ve t)-.2 H 2.5
+(op).15 G(ay)-2.5 E(.)-.65 E .51(Clusters of serv)72 693.8 R .51
+(ers, connected by a f)-.15 F .51(ast netw)-.1 F .51(ork, are emer)-.1 F
+.51(ging as a viable architecture for b)-.18 F .51(uilding a high-)-.2 F
+1.191(performance and highly a)72 705.8 R -.25(va)-.2 G 1.191
+(ilable serv).25 F(er)-.15 E 6.191(.T)-.55 G 1.191
+(his type of loose-coupled architecture is more scalable, more)-6.191 F
+(cost-ef)72 717.8 Q(fecti)-.25 E .752 -.15(ve a)-.25 H .452(nd more rel\
+iable than a single processor system or a tightly coupled multiprocesso\
+r system.).15 F(Ho)72 729.8 Q(we)-.25 E -.15(ve)-.25 G 1.386 -.4(r, t)
+.15 H .586(here are challenges to pro).4 F .585(vide transparenc)-.15 F
+1.885 -.65(y, s)-.15 H .585(calability and high a).65 F -.25(va)-.2 G
+.585(ilability of parallel services).25 F EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q(in the cluster)72 84 Q(.)-.55 E
+1.185(This paper presents ho)72 99.6 R 3.685(wt)-.25 G 3.685(oc)-3.685 G
+1.186(reate Linux virtual serv)-3.685 F 1.186(ers. V)-.15 F 1.186
+(irtual serv)-.6 F 1.186(er is a scalable and highly a)-.15 F -.25(va)
+-.2 G(ilable).25 E(serv)72 111.6 Q .505(er b)-.15 F .505
+(uilt on a cluster of loosely coupled independent serv)-.2 F .505
+(ers. The architecture of the cluster is transpar)-.15 F(-)-.2 E .387
+(ent to clients outside the cluster)72 123.6 R 2.887(.C)-.55 G .387(lie\
+nt applications interact with the cluster as if it were a single high-p\
+er)-2.887 F(-)-.2 E .272(formance and highly a)72 135.6 R -.25(va)-.2 G
+.271(ilable serv).25 F(er)-.15 E 2.771(.T)-.55 G .271
+(he clients are not af)-2.771 F .271
+(fected by interaction with the cluster and do not)-.25 F
+(need modi\214cation. The architecture of a generic virtual serv)72
+147.6 Q(er is illustrated in Figure 1.)-.15 E 14 14 360 638 -320.502 568
+108 480.101 PBEGIN
+%%BeginDocument: figure1.ps
+%%Creator: GIMP PostScript file plugin V 1.04 by Peter Kirchgessner
+%%Title: /home/wensong/linuxexpo/figure1.ps
+%%CreationDate: Thu Mar 4 20:31:00 1999
+%%DocumentData: Clean7Bit
+%%Pages: 1
+%%BoundingBox: 14 14 652 582
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+5 dict begin
+% Translate for offset
+14.173228 14.173228 translate
+% Translate to begin of first scanline
+0.000000 566.929134 translate
+637.675771 -566.929134 scale
+% Variable to keep one line of raster data
+/scanline 667 1 mul string def
+% Image geometry
+667 593 8
+% Transformation matrix
+[ 667 0 0 593 0 0 ]
+{ currentfile scanline readhexstring pop }
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171000000000000000000000000000000000000
+0000000000000000000000000000000000000071717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171717171717171717171717171717171
+7171717171717171717171717171717171000071717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171000000000000000000000000000000
+0000000000000000000000000000000000007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171007171717171717171717171717171
+7171717171717171717171717171717100007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171000000000000000000000000000000
+0000000000000000000000000000000000007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007171717171717171717171717171717171
+7171717171717171717171717171717171007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171007100000000000000000000000000000000
+0000000000000000000000000000000000007171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171000000717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171717171717171717171717171
+7171717171717171717171717171717171717100000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171717171717171717171717171
+7171717171717171717171717171717171717100000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171710071717171717171717171
+0071717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00717171717171717171710071717171717171717171
+0071717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171717171717171
+717171717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000717171717171717171717171717171717171717171
+71000000000000000000000000000000000000000000000000000000007100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000717171717100717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100007171000000007100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000717171717171717171717171717171717171717171
+71007171710000000000000000000000000071717100007171000000007100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171710000000000000000000000000071717100000000000000007100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71000000000000000000000000000000000000000000717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717100000000000000717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71000000000000000000000000000000000000007100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717100717171717100717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717100000000000000717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71000000000000000000000000000000000000000000717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71007171717171717171717171717171717171717100717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71000000000000000000000000000000000000000000717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0071717171717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717100ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffff000000
+ffffff000000ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ff00ffffff
+00ff00ffffff00ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffff0000ff
+ffff0000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffffff00
+ffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ff00ffffff
+00ff00ffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00000000ffffff000000
+ffffff000000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000ffffffff00000000ffffffff00000000ffffffff00
+000000ffffffff00000000ffffffff000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6000000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffff000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffff
+ffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ff
+ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+00ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c60000ffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c60000ffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c60000ff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000ffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600ffffff0000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c60000
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6000000c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000
+0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171717171717171
+7171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171717171717171
+7171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000000000000000
+0000000000000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000071000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000717171717171717171
+7171710071000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000717171717171717171
+7171717100000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717100000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171000000
+0000007171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6
+c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6
+c6c6c600c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171007171
+7171007171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6
+c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6
+c6c600c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000007171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6000000c6c6
+00000000c6c6c6000000c6c6c6c600c60000c600c6000000c6c6c6c6c6000000c6c6c600000000
+c6c600c6c600c6c600c6000000c6c600000000c600c60000c6c6c600000000c6c6c600c6000000
+c6c6c6c6c6000000c6c6c600000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171000000
+0000007171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c60000c6c6c600c6
+c600c6c6c6c600c6c6c600c6c6c60000c6c6c60000c6c6c600c6c6c600c6c6c600c6c6c600c6c6
+c6c600c6c600c6c60000c6c6c600c6c600c6c6c60000c6c6c6c600c6c6c6c600c6c60000c6c6c6
+00c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6
+c6c600c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6
+c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c6c6c6c6000000c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c600000000000000c6c600c6c6c6c600c6c6c6c600c6c600000000000000c6c600c6c6
+c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c6000000c6c600c6c600c6c6c6c6
+00c6c600000000000000c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c600c6c6c6c6c6c6c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c6c6c6c600c6c6
+c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c6
+00c6c600c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6
+c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171000000000000
+7171717171000071717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c600c6c6c6c600c6c6c600c6c6c600c6c6c6c600c6c6c6c600c6c6c600c6c6c600c6c6c600c6c6
+00c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c60000c6c600c6c6c6c6
+00c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071710000007171717100
+0000717171000071717100ffff0071717171000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000007171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6
+c6000000c6c6c6000000c6c6c6c600c6c6c6c600c6c6c6c600c6c6c6c6000000c6c6c6c6000000
+00c6c6c6c600c6c600c6c6c6c600c6c6000000c600c6c6c6c6c600000000c600c6c600c6c6c6c6
+00c6c6c6c6000000c6c6c6c6000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171000000000000
+7100000071000071717100ffff0071717171007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171007171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7100000071000071717100ffff0071717171007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171710000007171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0071717171007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171710071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffff00000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000710000000000000000000000
+0000000000000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+7100000071000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+7100000071000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+7100000071000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c600ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710071717171717171717171
+7171717171000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100710000000000000000000000
+0000000000000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6000000
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c600000000c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000ffffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600ffffffff0000000000000000000000ffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171717171717171
+7171717171710071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000000000000000
+0000000000000071717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171717171717171
+7171717171717171717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171717171717171
+7171717171717171717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710000000000007100007100007100
+0000000000000000717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007171710071717171717171717171717171717171
+7171717171717171717171717171717171717171717171000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007171710000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171710071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007100000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000071717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171007100717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171000000717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0071717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c60000ff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0000000000000000000000000000000000000000000000000000
+0000000071717171717171717171717171717171717171717171710000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c60000ffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710000000000007100007100007100
+0000000000000000717100ffff0071717171717171717171717171007171717171717171717171
+7171710071717171717171717171717171717171717171717171710000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c60000ffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710000000000007100007100007100
+0000000000000000717100ffff0071717171717171717171717171007171717171717171717171
+7171710071717171717171717171717171717171717171717171717171717100ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffff0000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffffffffffffffffffffffffff000000007171717171717171717171
+71717171717171717171717171717171717100000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffffffffffffffffffffffffffffffffff0000007171717171717171
+717171717171717171717171717171000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00710071000071007100007100007100
+7100007100007100717100ffffffffffffffffffffffffffffffffffffffff0000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000710071000071007100007100007100
+710000710000710071710000ffffffffffffffffffffffffffffffffffffffff00717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00007100710071000071007100007100007100
+7100007100007100717100710000ffffffffffffffffffffffffffffffffffff00717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6000000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000071717100710000000000007100007100007100
+00000000000000007171007171710000ffffffffffffffffffffffffffffffff00717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000717171717100717171717171717171717171717171
+717171717171717171710071717171710000ffffffffffffffffffffffffffff00717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00007171717171717100717171717171717171717171717171
+7171717171717171717100717171717171710000ffff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0071717171717171717100717171717171717171717171717171
+717171717171717171710071717171717171717100ff0071717171717171717171717171717171
+717171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0071717171717171717100717171717171717171717171717171
+717171717171717171710071717171717171717100ff0071717171717171717171717171717171
+717171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffff0000000000ffffffffffffffffffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffff00ffffffff00ffffffffffffffffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff000000ffffffff00
+0000ffffffff0000ff00ffffffffff00ffffffff00ffffff000000ffffff00ffffff000000ffff
+ff00ff0000ffffffff0000ffffffff000000ffffff00ff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffff00ff
+ffff00ffff00ffff0000ffffffffff00ffffffff00ffff00ffffff00ffff00ffff0000ffff00ff
+ff0000ffff00ffff00ffff00ffff00ffffff00ffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffffffff
+ffff00ffff00ffffff00ffffffffff000000000000ffffffffffff00ffff00ffffff00ffff00ff
+ff00ffffff00ffff00ffffffffff00ffffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffffff00
+000000ffff00ffffff00ffffffffff00ffffffff00ffffff00000000ffff00ffffff00000000ff
+ff00ffffff00ffff00ffffffffff0000000000ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffff00ff
+ffff00ffff00ffffff00ffffffffff00ffffffff00ffff00ffffff00ffff00ffff0000ffff00ff
+ff00ffffff00ffff00ffffffffff00ffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffff00ff
+ff0000ffff00ffffff00ffffffffff00ffffffff00ffff00ffff0000ffff00ffff0000ff0000ff
+ff00ffffff00ffff00ffff00ffff00ffffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff000000ffffffff00
+00ff00ffffff00000000ffffffffff0000000000ffffffff0000ff00ffff00ffffff0000ff00ff
+ff00ffffff00ffffff0000ffffffff000000ffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff00ff0000ffffff00ffffff00ff00ffffff00ffffffff00ffffffff00ffffff00
+0000ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff0000ffff00ffff00ffffff00ffff00ff00ffffffffff00ffffffff00ffff00ff
+ffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00ffffffffff000000000000ffff00ff
+ffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff00ffffff00ffff00ffffff00ffffff00ffffffffffff00ffffffff00ffff00ff
+ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00ffffffffff00ffffffff00ffff00ff
+ffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00ffffffffff00ffffffff00ffff00ff
+ffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+000000ff00ffff00ffffff00ffffff00000000ff00ffffff00ffffffff000000000000ffffff00
+0000ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171
+71717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171
+71717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000000000717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000071717171
+71717171717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007100000000
+00000000000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007100717171
+71717171717171717100007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000071717171
+71717171717171717100007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000071717171
+71717171717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71710000000000007171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007100000000
+00000000000000000071007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6
+c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71710071717171007171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71710000000000007171007100717100ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171710000
+00000000000000717171007100717100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+00000000000071000000007100717100ffff007171717171000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000007171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171000000007100717100ffff007171717171007171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171007171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171007171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171710000007171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000071000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000071000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000071000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000071000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+717171717171717171717171717171717171717171717171717171710071007171717171710000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffff00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffff00000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100007171717171
+71717171717171717171007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6000000000000000000000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000007100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+0000000000ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00000000000000000000ffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100717171717171
+71717171717171717171717100717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717100000000000000
+00000000000000000000000000717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171
+71717171717171717171717171717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171
+71717171717171717171717171717100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710000000000
+00000000710000710000710000007100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171007171007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171007171000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000710071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000071717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171000071717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171000071717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6
+00c6c6c6c6c6c600c6c6c6c6c6c6c600c6c6c6c60000c6c6c6c6c6c600c6c6c6c6c6c600c6c6c6
+c6c600c6c6c6c6c6c600c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c600
+c600c6c6c6c6c60000c6c6c6c6c6c600c6c6c6c60000c6c6c6c6c600c600c6c6c6c6c600c6c6c6
+c600c600c6c6c6c6c60000c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffff007171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717171717171717171717171717171717100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c600
+c600c6c6c6c6c600c600c6c6c6c6c600c6c6c600c6c600c6c6c6c600c600c6c6c6c600c6c6c6c6
+c600c600c6c6c6c6c600c600c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710000000000
+00000000710000710000710000007100ffff000000000000000000000000000000000000000000
+0000000000000000007171717171717171717171717171717171717171717171710000007100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c600
+c600c6c6c6c6c600c600c6c6c6c6c600c6c6c600c6c600c6c6c6c600c600c6c6c6c600c6c6c6c6
+c600c600c6c6c6c6c600c600c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00717171717171717171
+71717171717171717171717171717100ffff007171717171717171717171717171007171717171
+7171717171717171007171717171717171717171717171717171717171717171710000007100ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6
+c6c600c6c6c6c600c6c600c6c6c6c600c6c6c600c6c600c6c6c600c6c6c600c6c6c600c6c6c6c6
+00c6c6c600c6c6c6c600c6c600c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710000000000
+00000000710000710000710000007100ffff000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6
+c6c600c6c6c6c600c6c6c600c6c6c600c6c6c600c6c600c6c6c600c6c6c600c6c6c600c6c6c6c6
+00c6c6c600c6c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffffffffffffffffffffffffff00000000717171717171
+717171717171717171717171717171717171717171717100000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6
+c6c600c6c6c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c600c6c6c6c6c6
+00c6c6c600c6c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffffffffffffffffffffffffffffffffff000000717171
+7171717171717171717171717171717171717171000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6000000
+00000000c6c6c600c6c6c6c600c6c600c6c600c6c6c6c600c600c6c6c6c6c600c600c6c6c6c600
+000000000000c6c6c600c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffffffffffffffffffffffffffffffffffffffff000000
+0000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c600c6c6
+c6c6c600c6c6c600c6c6c6c6c600c600c6c600c6c6c6c600c600c6c6c6c6c600c600c6c6c6c600
+c6c6c6c6c600c6c6c600c6c6c6c6c600c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00710000710071000071
+00007100710000710000710071007100ffffffffffffffffffffffffffffffffffffffffff0071
+71717171717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c600c6c6
+c6c6c600c6c6c600c6c6c6c6c600c600c6c600c6c6c6c600c600c6c6c6c6c600c600c6c6c6c600
+c6c6c6c6c600c6c6c600c6c6c6c6c600c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000710000710071000071
+0000710071000071000071007100710000ffffffffffffffffffffffffffffffffffffffff0071
+71717171717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c600c6c6c6
+c6c6c6c600c6c600c6c6c6c6c6c60000c600c6c6c6c6c6c600c6c6c6c6c6c6c600c6c6c6c600c6
+c6c6c6c6c6c600c6c600c6c6c6c6c6c60000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00007100710000710000000000
+00000000710000710000710000007100710000ffffffffffffffffffffffffffffffffffff0071
+71717171717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000000000c6c600c6c6c6
+c6c6c6c600c6c600c6c6c6c6c6c6c600c600c6c6c6c6c6c600c6c6c6c6c6c6c600c6c6c6c600c6
+c6c6c6c6c6c600c6c600c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000071717100717171717171717171
+71717171717171717171717171717100717171000000ffffffffffffffffffffffffffffff0071
+71717171717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000071717171717100717171717171717171
+717171717171717171717171717171007171717171710000ffffff000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000717171717171717100717171717171717171
+7171717171717171717171717171710071717171717171710000ff007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0071717171717171717100717171717171717171
+7171717171717171717171717171710071717171717171717100ff007171717171717171717171
+7171717171717171717171717171717171717171717171717171717100ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000ff000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0000ffffffffffffffffffffffffffff00ffffffffff00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffff00ffffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffff00ffff000000ffffff000000ffff00ffffffff00ffffffffffffff000000ffff00ff00ff00
+ffffff00ffff000000ffff00ff00ffffffff00ff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0000ffff00ffffff00ff00ffffff00ff00ffffffffff0000ffffffff00ffffff00ff0000ffff00
+ffffff00ff00ffffff00ff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+00ffffff0000000000ffff00000000ff00ffffffffffffff0000ffff0000000000ff00ffffffff
+00ff00ffff0000000000ff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ff00ffff00ffffffffff00ffffff00ff00ffffffffffffffffff00ff00ffffffffff00ffffffff
+00ff00ffff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffffffff00ff00ffffff00ff00ffffffff
+ff00ffffff00ffffff00ff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffff00ffff000000ffffff0000ff00ff00ffffffffff00000000ffffff000000ffff00ffffffff
+ff00ffffffff000000ffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6000000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6000000c6c6c6c600000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffff00c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600ffff00000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717171717171717171717171717171717171717171717171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717171717171717171717171717171717171717171717171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000000007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c60000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000000000c6c6c6c6c600000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000000000c6c6c6c6c60000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007100000000000000000000000000000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007100717171717171717171717171000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000071717171717171717171717171000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000071717171717171717171717171710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717100000000000071710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717100717171710071710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007100000000000000000000000000710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717100717171710071710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717100000000000071710071007171
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171000000000000717171710071007171
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171710000007171717100007171710071007171
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171000000000000710000000071007171
+00ffff007171717171000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000007171717100ffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171710000000071007171
+00ffff007171717171007171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171710000007171717100ffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171007171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171710071717171717100ffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000710071717171717100ffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171710000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000710000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000710000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+717171717171717171717171710071007171717171710000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100007171717171717171717171717171710071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000071007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100717171717171717171717171717171717171007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717100000000000000000000000000000000000000007171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717171717171717171717171717171717171717171717171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717171717171717171717171717171717171717171717171
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710000000000000000007100007100007100000071
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171007171007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171007171000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171007171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171710071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000071717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171000071717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171000071717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff007171717171717171717171717171717171717171717171717171717171717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffff000000000000000000000000000000000000000000000000000000000000717171717171
+7171717171717171717171717171717171710000007100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710000000000000000007100007100007100000071
+00ffff007171717171717171717171717171007171717171717171717171717100717171717171
+7171717171717171717171717171717171710000007100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00717171717171717171717171717171717171717171717171
+00ffff007171717171717171717171717171007171717171717171717171717100717171717171
+7171717171717171717171717171717171717171717100ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710000000000000000007100007100007100000071
+00ffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffffffffffffffffffffffffff00000000717171717171717171717171717171717171717171
+717171717171717100000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffffffffffffffffffffffffffffffffff000000717171717171717171717171717171717171
+7171717171000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00710000710071000071000071007100007100007100710071
+00ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000710000710071000071000071007100007100007100710071
+0000ffffffffffffffffffffffffffffffffffffffff0071717171717171717171717171717171
+71717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00007100710000710071000071000071007100007100007100710071
+00710000ffffffffffffffffffffffffffffffffffff0071717171717171717171717171717171
+71717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000071717100710000710000000000000000007100007100007100000071
+007171710000ffffffffffffffffffffffffffffffff0071717171717171717171717171717171
+71717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000717171717100717171717171717171717171717171717171717171717171
+0071717171710000ffffffffffffffffffffffffffff0071717171717171717171717171717171
+71717100ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffff00007171717171717100717171717171717171717171717171717171717171717171
+00717171717171710000ffff000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffff0071717171717171717100717171717171717171717171717171717171717171717171
+0071717171717171717100ff007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffff0071717171717171717100717171717171717171717171717171717171717171717171
+0071717171717171717100ff007171717171717171717171717171717171717171717171717171
+7171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffff0000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000ff000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000000000717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000007171717171717171
+717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffffffffff
+ff00ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000710000000000000000
+000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffff
+ff00ffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000710071717171717171
+717171717100007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffff000000ffffff000000ff
+ff00ffffffff00ffffffffffffff000000ffff00ff00ff00ffffff00ffff000000ffff00ff00ff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000007171717171717171
+717171717100007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000000000ffff00ffffff00ff00ffffff00
+ff00ffffffffff0000ffffffff00ffffff00ff0000ffff00ffffff00ff00ffffff00ff0000ffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000007171717171717171
+717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff0000000000ffff00000000
+ff00ffffffffffffff0000ffff0000000000ff00ffffffff00ff00ffff0000000000ff00ffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffff00
+ff00ffffffffffffffffff00ff00ffffffffff00ffffffff00ff00ffff00ffffffffff00ffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ffffff00ff00ffff0000
+ff00ffffffff00ffffffff00ff00ffffff00ff00ffffffffff00ffffff00ffffff00ff00ffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffff000000ffffff0000ff00
+ff00ffffffffff00000000ffffff000000ffff00ffffffffff00ffffffff000000ffff00ffffff
+ffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171710000
+000000007171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000710000000000000000
+000000000071007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171710071
+717171007171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171710000
+000000007171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717100000000
+000071717171007100717100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717100000000717171
+710000717171007100717100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717100000000
+000071000000007100717100ffff00717171717100000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171000000007100717100ffff00717171717100717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717100717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171710000717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717100717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717100717100000000000000000000000000000000
+00000000000000000000000000000000000000000000000000710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+007171000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+007171000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+007171000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+007171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+007171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff
+00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff
+ff00000000ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000717171717171717171
+717171717171007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000007100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710071717171717171717171
+717171717171717100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710071717171717171717171
+717171717171717100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710071717171717171717171
+717171717171717100717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171710000000000000000000000
+000000000000000000717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071000000000000000000
+710000710000000000007100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100717100717171717171717171717171717171
+71717171717171717171717171717171717171717171717100710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100717100000000000000000000000000000000
+00000000000000000000000000000000000000000000000000710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171710071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100710000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000071717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff00000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100710071717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000000000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717100000071717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffff0000ffff0000ff0000
+0000000000ff0000ffffffff0000ffffff0000000000ffffff0000ffffffffffff0000ffffffff
+ff0000ffffffff000000ffffffff0000ff0000ff0000ffffff0000ffffffff000000ffffffff00
+00ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff0000000000
+0000000000ff0000ffffffff0000ffff00000000000000ffff0000ffffffffffff00000000ffff
+ffffffffffff0000000000ffffff0000000000ff0000ffffff0000ffffff0000000000ffffff00
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff000000ffff
+ff0000ffffff0000ffffffff0000ffff0000ffffff0000ffff0000ffffffffffffff0000000000
+00ffffffff0000ffffff0000ffff000000ffffff0000ffffff0000ffff0000ffffff0000ffff00
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffff00717171717171717171717171717171717171717171717171
+71717171717171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff0000ffffff
+ff0000ffffff0000ffffffff0000ffffffffff00000000ffff0000ffffffffffffffffff000000
+0000ffffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000000000ffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071000000000000000000
+710000710000000000007100ffff00000000000000000000000000000000000000000000000000
+00000000007171717171717171717171717171717171717171717171000000007100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ffff0000ffffff
+ff0000ffffff0000ffffffff0000ffffff000000000000ffff0000ffffffffffffffffffffffff
+000000ffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000000000ffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171717171717171717171717171
+717171717171717171717100ffff00717171717171717171717171717100717171717171717171
+71717171007171717171717171717171717171717171717171717171717171717100ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ffff0000ffffff
+ff0000ffffff0000ffffffff0000ffff000000ffff0000ffff0000ffffffffffff0000ffffffff
+ff0000ffff0000ffffffffffffff0000ffffffffff0000ff0000ffffff0000ffffffffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071000000000000000000
+710000710000000000007100ffff00000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffff
+ff0000ffffff0000ffffff000000ffff0000ffffff0000ffff0000ffffffffffff000000ffffff
+000000ffff000000ffff0000ffff0000ffffffffffff000000ffffffff000000ffff0000ffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffffffffffffffffffffffffff0000000071717171717171717171
+7171717171717171717171717171717171717100000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffff
+ff00000000ff0000000000000000ffff00000000000000ffff0000ffffffffffffff0000000000
+0000ffffffff0000000000ffffff0000ffffffffffff000000ffffffffff0000000000ffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffffffffffffffffffffffffffffffffff00000071717171717171
+71717171717171717171717171717171000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffff
+ffff000000ffff00000000ff0000ffffff00000000ff0000ff0000ffffffffffffffff00000000
+00ffffffffffff000000ffffffff0000ffffffffffff000000ffffffffffff000000ffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffffffffffffffffffffffffffffffffffffffff00000000000000
+00000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+710000710071000071007100ffffffffffffffffffffffffffffffffffffffffff007171717171
+717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff007171000071007100007100007100
+71000071007100007100710000ffffffffffffffffffffffffffffffffffffffff007171717171
+717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000007171000071000000000000000000
+710000710000000000007100710000ffffffffffffffffffffffffffffffffffff007171717171
+717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00007171007171717171717171717171717171
+7171717171717171717171007171710000ffffffffffffffffffffffffffffffff007171717171
+717171717171717171717171717100ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000071717171007171717171717171717171717171
+71717171717171717171710071717171710000ffffffff00000000000000000000000000000000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000717171717171007171717171717171717171717171
+717171717171717171717100717171717171710000ffff00717171717171717171717171717171
+71717171717171717171717171717171717171717171717100ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff007171717171717171007171717171717171717171717171
+717171717171717171717100717171717171717171000000717171717171717171717171717171
+71717171717171717171717171717171717171717171717100ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffff
+ffffffffffffffffffffffff00ffffffffff00000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff
+ffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff
+ff000000ffffff000000ffff00ffffffff00ffffffffffffff000000ffff00ff00ff00ffffff00
+ffff000000ffff00ff00ffffffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffff
+00ffffff00ff00ffffff00ff00ffffffffff0000ffffffff00ffffff00ff0000ffff00ffffff00
+ff00ffffff00ff0000ffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff
+0000000000ffff00000000ff00ffffffffffffff0000ffff0000000000ff00ffffffff00ff00ff
+ff0000000000ff00ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff
+00ffffffffff00ffffff00ff00ffffffffffffffffff00ff00ffffffffff00ffffffff00ff00ff
+ff00ffffffffff00ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff
+00ffffff00ff00ffff0000ff00ffffffff00ffffffff00ff00ffffff00ff00ffffffffff00ffff
+ff00ffffff00ff00ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff
+ff000000ffffff0000ff00ff00ffffffffff00000000ffffff000000ffff00ffffffffff00ffff
+ffff000000ffff00ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000ffffffff00000000ffffffffffffffffffffffffffffff
+ffffffffff00000000ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff
+showpage
+end
+%%EOF
+%%EndDocument
+end PEND(Figure 1. generic architecture of a virtual serv)192.55 498.101
+Q(er)-.15 E 1.397(The real serv)72 519.701 R 1.398(ers may be interconn\
+ected by high-speed LAN or by geographically dispersed W)-.15 F 3.898
+(AN. The)-1.2 F .579(front-end of the real serv)72 531.701 R .579
+(ers is a load balancer)-.15 F 3.079(,w)-.4 G .579
+(hich schedules requests to the dif)-3.079 F .578(ferent serv)-.25 F
+.578(ers and mak)-.15 F(e)-.1 E .509(parallel services of the cluster t\
+o appear as a virtual service on a single IP address.)72 543.701 R .509
+(Scalability is achie)5.509 F -.15(ve)-.25 G(d).15 E .002
+(by transparently adding or remo)72 555.701 R .001
+(ving a node in the cluster)-.15 F 2.501(.H)-.55 G .001(igh a)-2.501 F
+-.25(va)-.2 G .001(ilability is pro).25 F .001
+(vided by detecting node or)-.15 F(daemon f)72 567.701 Q
+(ailures and recon\214guring the system appropriately)-.1 E(.)-.65 E
+.023(The remainder of the paper is or)72 583.301 R -.05(ga)-.18 G .023
+(nized as follo).05 F .023(ws: In Section 2, we discuss the related w)
+-.25 F .024(orks. In Section 3,)-.1 F .24
+(we describe the architectures and w)72 595.301 R .24
+(orking principles of virtual serv)-.1 F .24(er via Netw)-.15 F .24
+(ork Address T)-.1 F .24(ranslation and)-.35 F 2.032(virtual serv)72
+607.301 R 2.032(er via IP tunneling, and also discuss their adv)-.15 F
+2.033(antages and disadv)-.25 F 2.033(antages. In Section 4, we)-.25 F
+.325(describe the four scheduling algorithms that ha)72 619.301 R .625
+-.15(ve b)-.2 H .325(een de).15 F -.15(ve)-.25 G .325
+(loped for Linux virtual serv).15 F(er)-.15 E 2.825(.I)-.55 G 2.825(nS)
+-2.825 G .325(ection 5, we)-2.825 F .375(describe the high a)72 631.301
+R -.25(va)-.2 G .375(ilability issues for Linux virtual serv).25 F(er)
+-.15 E 5.375(.F)-.55 G(inally)-5.375 E 2.875(,c)-.65 G .376
+(onclusion and future w)-2.875 F .376(ork appear in)-.1 F(Section 6.)72
+643.301 Q EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q/F1 16/Times-Bold@0 SF 4
+(2. Related)72 84 R -1.2(Wo)4 G(rks)1.2 E F0 .376(In the client/serv)72
+114 R .376
+(er applications, one end is the client, the other end is the serv)-.15
+F(er)-.15 E 2.875(,a)-.4 G .375(nd there may be a proxy)-2.875 F .988
+(in the middle, such as a proxy serv)72 126 R .988
+(er for web services. Based on this scenario, we can see that there are)
+-.15 F(man)72 138 Q 2.812(yw)-.15 G .311
+(ays to dispatch requests to a cluster of serv)-2.912 F .311
+(ers in the dif)-.15 F .311(ferent le)-.25 F -.15(ve)-.25 G 2.811
+(ls. In).15 F .311(general, these serv)2.811 F .311(ers ha)-.15 F -.15
+(ve)-.2 G .125(the same service and the same set of contents. The conte\
+nts are either replicated on each serv)72 150 R(er')-.15 E 2.626(sl)-.55
+G .126(ocal disk,)-2.626 F .87(shared on a netw)72 162 R .87
+(ork \214lesystem, or serv)-.1 F .87(ed by a distrib)-.15 F .87
+(uted \214le system.)-.2 F .87(Existing request dispatching tech-)5.87 F
+(niques can be classi\214ed into the follo)72 174 Q(wing cate)-.25 E
+(gories:)-.15 E<83>72 189.6 Q/F2 10/Times-Bold@0 SF
+(The client-side appr)6.5 E(oach)-.18 E F0(Berk)82 205.2 Q(ele)-.1 E(y')
+-.15 E 2.66(sS)-.55 G .16(mart Client)-2.66 F/F3 7/Times-Roman@0 SF(1)
+-4.1 I F0 .16(suggests that the service pro)2.66 4.1 N .16
+(vide an applet running at the client side. The applet)-.15 F(mak)82
+217.2 Q 1.453(es requests to the cluster of serv)-.1 F 1.453
+(ers to collect load information of all the serv)-.15 F 1.453
+(ers, then chooses a)-.15 F(serv)82 229.2 Q .061
+(er based on that information and forw)-.15 F .061
+(ards requests to that serv)-.1 F(er)-.15 E 5.061(.T)-.55 G .062
+(he applet tries other serv)-5.061 F .062(ers when)-.15 F 1.168
+(it \214nds the chosen serv)82 241.2 R 1.168(er is do)-.15 F 3.668
+(wn. Boston)-.25 F(Uni)3.668 E -.15(ve)-.25 G 1.168(rsity de).15 F -.15
+(ve)-.25 G 1.167(loped dynamic serv).15 F 1.167(er selection techniques)
+-.15 F F3(2)-4.1 I F0 1.198(using bandwidth probing on the client side,\
+ in which the maximum possible bandwidth along a gi)82 253.2 R -.15(ve)
+-.25 G(n).15 E .859(path and the current congestion along a path are es\
+timated through probing. Ho)82 265.2 R(we)-.25 E -.15(ve)-.25 G 1.658
+-.4(r, t).15 H .858(hese client-side).4 F .29
+(approaches are not client-transparent, the)82 277.2 R 2.79(yr)-.15 G
+.29(equires modi\214cation of client applications, so the)-2.79 F 2.79
+(yc)-.15 G .29(annot be)-2.79 F .284
+(applied to all TCP/IP services. Moreo)82 289.2 R -.15(ve)-.15 G 1.084
+-.4(r, t).15 H(he).4 E 2.784(yw)-.15 G .283
+(ill potentially increase netw)-2.784 F .283(ork traf)-.1 F .283
+(\214c by e)-.25 F .283(xtra querying)-.15 F(or probing.)82 301.2 Q<83>
+72 316.8 Q F2(The ser)6.5 E -.1(ve)-.1 G -.37(r-).1 G
+(side Round-Robin DNS appr).37 E(oach)-.18 E F0 1.15
+(The NCSA scalable web serv)82 332.4 R 1.151
+(er is the \214rst prototype of a scalable web serv)-.15 F 1.151
+(er by using of the Round-)-.15 F 1.279(Robin DNS approach.)82 344.4 R
+F3 1.279(3, 4, 5)-4.1 J F0 1.279(The RRDNS serv)3.779 4.1 N 1.279
+(er maps a single name to the dif)-.15 F 1.279(ferent IP addresses in a)
+-.25 F 1.352(round-robin manner so that the dif)82 356.4 R 1.352
+(ferent clients will access the dif)-.25 F 1.352(ferent serv)-.25 F
+1.352(ers in the cluster for the)-.15 F .265(ideal situation. In this w)
+82 368.4 R(ay)-.1 E 2.764(,t)-.65 G .264(he load is distrib)-2.764 F
+.264(uted among the serv)-.2 F .264(ers. Ho)-.15 F(we)-.25 E -.15(ve)
+-.25 G 1.064 -.4(r, d).15 H .264(ue to the caching nature).4 F 1.203(of\
+ clients and hierarchical DNS system, it easily leads to dynamic load i\
+mbalance among the serv)82 380.4 R(ers,)-.15 E .324
+(thus it is not easy for a serv)82 392.4 R .324
+(er to handle its peak load. The TTL\(T)-.15 F .324(ime T)-.35 F 2.824
+(oL)-.8 G -2.15 -.25(iv e)-2.824 H 2.824(\)v).25 G .323
+(alue of a name mapping)-3.074 F .869
+(cannot be well chosen at RR-DNS, with small v)82 404.4 R .87
+(alues the RR-DNS will be a bottleneck, and with high)-.25 F -.25(va)82
+416.4 S .025(lues the dynamic load imbalance will get e).25 F -.15(ve)
+-.25 G 2.525(nw).15 G .025(orse. Ev)-2.625 F .025(en the TTL v)-.15 F
+.025(alue is set with zero, the schedul-)-.25 F 2.508
+(ing granularity is host-based, dif)82 428.4 R 2.509
+(ferent users' access pattern may lead to dynamic load imbalance,)-.25 F
+.686(because some people may pull lots of pages from the site, and othe\
+rs may just surf a fe)82 440.4 R 3.185(wp)-.25 G .685(ages and go)-3.185
+F -2.3 -.15(aw a)82 452.4 T 1.94 -.65(y. M).15 H(oreo).65 E -.15(ve)-.15
+G 1.44 -.4(r, i).15 H 3.14(ti).4 G 3.14(sn)-3.14 G .64
+(ot so reliable, when a serv)-3.14 F .64(er node f)-.15 F .641
+(ails, the clients who maps the name to the IP)-.1 F .612
+(address will \214nd the serv)82 464.4 R .612(er is do)-.15 F .612
+(wn, and the problem still e)-.25 F .612(xists e)-.15 F -.15(ve)-.25 G
+3.111(ni).15 G 3.111(ft)-3.111 G(he)-3.111 E 3.111(yp)-.15 G .611
+(ress "reload" or "refresh")-3.111 F -.2(bu)82 476.4 S
+(tton in their bro).2 E(wsers.)-.25 E<83>72 492 Q F2(The ser)6.5 E -.1
+(ve)-.1 G -.37(r-).1 G(side application-le).37 E -.1(ve)-.15 G 2.5(ls).1
+G(cheduling appr)-2.5 E(oach)-.18 E F0(EDDIE)82 507.6 Q F3(6)-4.1 I F0
+2.87(,R)2.87 4.1 O -2.15 -.25(ev e)-2.87 H(rse-proxy).25 E F3(7)-4.1 I
+F0 2.87(,p)2.87 4.1 O(WEB)-2.87 E F3(8)-4.1 I F0 .37(and SWEB)2.87 4.1 N
+F3(9)-4.1 I F0 .37(use the application-le)2.87 4.1 N -.15(ve)-.25 G 2.87
+(ls).15 G .37(cheduling approach to b)-2.87 F .37(uild a)-.2 F .44
+(scalable web serv)82 519.6 R(er)-.15 E 2.94(.T)-.55 G(he)-2.94 E 2.94
+(ya)-.15 G .44(ll forw)-2.94 F .439(ard the HTTP requests to the dif)-.1
+F .439(ferent web serv)-.25 F .439(ers in the cluster)-.15 F 2.939(,t)
+-.4 G(hen)-2.939 E .929
+(get the results, and \214nally return them to the clients.)82 531.6 R
+(Ho)5.929 E(we)-.25 E -.15(ve)-.25 G 1.73 -.4(r, t).15 H .93
+(his approach requires to establish tw).4 F(o)-.1 E .621(TCP connection\
+s for each request, one is between the client and the load balancer)82
+543.6 R 3.12(,t)-.4 G .62(he other is between)-3.12 F .518
+(the load balancer and the serv)82 555.6 R(er)-.15 E 3.018(,t)-.4 G .518
+(he delay is high. And, the o)-3.018 F -.15(ve)-.15 G .519
+(rhead of dealing the HTTP requests and).15 F .143
+(replies in the application-le)82 567.6 R -.15(ve)-.25 G 2.643(li).15 G
+2.643(sh)-2.643 G .143(igh too, so the application-le)-2.643 F -.15(ve)
+-.25 G 2.642(ll).15 G .142(oad balancer will be a ne)-2.642 F 2.642(wb)
+-.25 G(ottleneck)-2.642 E(soon when the number of serv)82 579.6 Q
+(er nodes increases.)-.15 E<83>72 595.2 Q F2(The ser)6.5 E -.1(ve)-.1 G
+-.37(r-).1 G(side IP-le).37 E -.1(ve)-.15 G 2.5(ls).1 G(cheduling appr)
+-2.5 E(oaches)-.18 E F0(Berk)82 610.8 Q(ele)-.1 E(y')-.15 E 2.717(sM)
+-.55 G(agicRouter)-2.717 E F3(10)-4.1 I F0 .217(and Cisco')2.717 4.1 N
+2.717(sL)-.55 G(ocalDirector)-2.717 E F3(11)-4.1 I F0 .217(use the Netw)
+2.717 4.1 N .217(ork Address T)-.1 F .218(ranslation approach to)-.35 F
+(mak)82 622.8 Q 3.309(ep)-.1 G .809(arallel service on dif)-3.309 F .809
+(ferent serv)-.25 F .809
+(er to appear as a virtual service on a single IP address. The load)-.15
+F 1.573(balancer changes the destination address of the request pack)82
+634.8 R 1.574(ets and forw)-.1 F 1.574(ards the chosen serv)-.1 F(er)
+-.15 E 4.074(,t)-.4 G(hen)-4.074 E 1.346
+(change the source address of the reply pack)82 646.8 R 1.346
+(ets back to the original destination address. Ho)-.1 F(we)-.25 E -.15
+(ve)-.25 G 2.146 -.4(r, t).15 H(he).4 E .972(MagicRouter doesn')82 658.8
+R 3.472(ts)-.18 G(urvi)-3.472 E 1.272 -.15(ve t)-.25 H 3.472(ob).15 G
+-5.971 3.472(ea u)-3.472 H .973
+(seful system for other users, the LocalDirector is too e)-3.472 F
+(xpensi)-.15 E -.15(ve)-.25 G(,).15 E .959(and the)82 670.8 R 3.459(yo)
+-.15 G .959(nly support part of TCP protocol. This approach w)-3.459 F
+.958(as well implemented in the Linux virtual)-.1 F(serv)82 682.8 Q(er)
+-.15 E 2.5(,a)-.4 G(nd it will be discussed in detail in the follo)-2.5
+E(wing sections.)-.25 E(IBM')82 698.4 Q 4.284(sT)-.55 G 1.784(CP router)
+-4.284 F F3(12)-4.1 I F0 1.784(uses the modi\214ed Netw)4.284 4.1 N
+1.785(ork Address T)-.1 F 1.785(ranslation approach to b)-.35 F 1.785
+(uild scalable web)-.2 F(serv)82 710.4 Q 1.324(er on IBM scalable P)-.15
+F 1.324(arallel SP-2 system.)-.15 F 1.324
+(The TCP router changes the destination address of the)6.324 F 1.28
+(request pack)82 722.4 R 1.28(ets and forw)-.1 F 1.28
+(ards the chosen serv)-.1 F(er)-.15 E 3.78(,t)-.4 G 1.28(hat serv)-3.78
+F 1.28(er is modi\214ed to put the TCP router address)-.15 F EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q 1.465(instead of its o)82 84 R
+1.465(wn address as the source address in the reply pack)-.25 F 1.464
+(ets. The adv)-.1 F 1.464(antage of the modi\214ed)-.25 F .441
+(approach is that the TCP router a)82 96 R -.2(vo)-.2 G .442(ids re).2 F
+.442(writing of the reply pack)-.25 F .442(ets, the disadv)-.1 F .442
+(antage is that it requires)-.25 F(modi\214cation of the k)82 108 Q
+(ernel code of e)-.1 E -.15(ve)-.25 G(ry serv).15 E(er in the cluster)
+-.15 E(.)-.55 E(ONE-IP)82 123.6 Q/F1 7/Times-Roman@0 SF(13)-4.1 I F0 .12
+(is another IP-le)2.62 4.1 N -.15(ve)-.25 G 2.62(ls).15 G .12
+(cheduling approach. It requires that all serv)-2.62 F .12(ers ha)-.15 F
+.42 -.15(ve t)-.2 H .12(heir o).15 F .12(wn IP addresses)-.25 F 1.081
+(in a netw)82 135.6 R 1.081(ork and the)-.1 F 3.581(ya)-.15 G 1.082
+(re all con\214gured with the same IP address on the IP alias interf)
+-3.581 F 1.082(aces. T)-.1 F 1.282 -.1(wo d)-.8 H(is-).1 E .301(patchin\
+g techniques are used, one is based on a central dispatcher routing IP \
+pack)82 147.6 R .301(ets to dif)-.1 F .301(ferent serv)-.25 F(ers,)-.15
+E .908(the other is based on pack)82 159.6 R .909
+(et broadcasting and local \214ltering. The adv)-.1 F .909
+(antage is that the re)-.25 F .909(writing of the)-.25 F 1.445
+(reply pack)82 171.6 R 1.445(ets can be a)-.1 F -.2(vo)-.2 G 1.445
+(ided. The disadv).2 F 1.444
+(antage is it can be applied to all operating systems because)-.25 F
+1.431(some operating systems will shutdo)82 183.6 R 1.431(wn the netw)
+-.25 F 1.432(ork interf)-.1 F 1.432
+(ace when detecting IP address collision, the)-.1 F
+(local \214ltering also requires the modi\214cation of the k)82 195.6 Q
+(ernel code of e)-.1 E -.15(ve)-.25 G(ry serv).15 E(er)-.15 E(.)-.55 E
+/F2 16/Times-Bold@0 SF 4(3. V)72 228.6 R(irtual Ser)-.592 E -.16(ve)-.16
+G 4(rA).16 G -.288(rc)-4 G(hitectur).288 E(es)-.288 E F0 .167
+(Linux virtual serv)72 258.6 R(er)-.15 E F1(14)-4.1 I F0 .167(is no)
+2.667 4.1 N 2.666(wi)-.25 G .166(mplemented in tw)-2.666 F 2.666(ow)-.1
+G .166(ays. One is virtual serv)-2.766 F .166(er via Netw)-.15 F .166
+(ork Address T)-.1 F(ransla-)-.35 E .132
+(tion; the other is virtual serv)72 270.6 R .132
+(er via IP tunneling. The follo)-.15 F .133(wing tw)-.25 F 2.633(os)-.1
+G .133(ubsections e)-2.633 F .133(xplain their dif)-.15 F .133
+(ferent archi-)-.25 F .38(tectures and w)72 282.6 R .38
+(orking principles respecti)-.1 F -.15(ve)-.25 G(ly).15 E 2.88(.T)-.65 G
+.38(he third subsection discusses their adv)-2.88 F .38
+(antages and disadv)-.25 F(an-)-.25 E .404(tages. The virtual serv)72
+294.6 R .404(er code is no)-.15 F 2.904(wd)-.25 G -2.15 -.25(ev e)-2.904
+H .404(loped based on Linux IP Masquerading code in the Linux k).25 F
+(ernel)-.1 E .63(2.0, and some of Ste)72 306.6 R -.15(ve)-.25 G 3.13(nC)
+.15 G(lark)-3.13 E(e')-.1 E 3.13(sp)-.55 G .63(ort forw)-3.13 F .63
+(arding code is reused. It supports both TCP and UDP services,)-.1 F
+1.441(such as HTTP)72 318.6 R 3.941(,P)-1.11 G(roxy)-3.941 E 3.941(,D)
+-.65 G 1.441(NS and so on. F)-3.941 F 1.441
+(or protocols that transmit IP addresses and/or port numbers as)-.15 F
+.736(application data, additional code is need to handle it. Currently \
+FTP w)72 330.6 R .736(as supported, others require adding)-.1 F(ne)72
+342.6 Q 2.5(wh)-.25 G(andling code.)-2.5 E/F3 15/Times-Bold@0 SF 3.75
+(3.1. V)72 372.6 R(irtual Ser)-.555 E -.15(ve)-.15 G 3.75(rv).15 G(ia N)
+-3.75 E -1.425(AT)-.3 G F0 .565(Due to the shortage of IP address in IP\
+v4 and some security reasons, more and more netw)72 395.4 R .566
+(orks use pri)-.1 F -.25(va)-.25 G(te).25 E .724
+(IP addresses which cannot be used outside the netw)72 407.4 R .723
+(ork \(or in the Internet\). The need for netw)-.1 F .723(ork address)
+-.1 F .354(translation arises when hosts in internal netw)72 419.4 R
+.354(orks w)-.1 F .355
+(ant to access the Internet or to be accessed in the Inter)-.1 F(-)-.2 E
+1.064(net. Netw)72 431.4 R 1.064
+(ork address translation relies on the f)-.1 F 1.064
+(act that the headers for Internet protocols can be adjusted)-.1 F .255
+(appropriately so that clients belie)72 443.4 R .555 -.15(ve t)-.25 H
+(he).15 E 2.755(ya)-.15 G .255(re contacting one IP address, b)-2.755 F
+.255(ut serv)-.2 F .255(ers at dif)-.15 F .255(ferent IP addresses)-.25
+F(belie)72 455.4 Q .519 -.15(ve t)-.25 H(he).15 E 2.719(ya)-.15 G .219
+(re contacted directly by the clients.)-2.719 F .219
+(This feature can be used to b)5.219 F .219(uild a virtual serv)-.2 F
+(er)-.15 E 2.719(,i)-.4 G .218(.e. par)-2.719 F(-)-.2 E
+(allel services at the dif)72 467.4 Q(ferent IP addresses can appear as\
+ a virtual service on a single IP address via N)-.25 E -1.02 -1.11(AT .)
+-.35 H .539(The architecture of virtual serv)72 495 R .539(er via N)-.15
+F 2.759 -1.11(AT i)-.35 H 3.039(si)1.11 G .54
+(llustrated in Figure 2. The load balancer and real serv)-3.039 F .54
+(ers are)-.15 F .547(interconnected by a switch or a hub)72 507 R 3.046
+(.T)-.4 G .546(he real serv)-3.046 F .546
+(ers usually run the same service and the)-.15 F 3.046(yh)-.15 G -2.25
+-.2(av e)-3.046 H .546(the same)3.246 F .644
+(set of contents. The contents are either replicated on each serv)72 519
+R(er')-.15 E 3.145(sl)-.55 G .645(ocal disk, shared on a netw)-3.145 F
+.645(ork \214lesys-)-.1 F .444(tem, or serv)72 531 R .444
+(ed by a distrib)-.15 F .444(uted \214le system \(such as AFS or COD)-.2
+F .443(A\). The load balancer dispatched requests)-.4 F(to dif)72 543 Q
+(ferent real serv)-.25 E(ers via N)-.15 E -1.02 -1.11(AT .)-.35 H EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q 14 14 360 609 -335.764 568 108
+419.764 PBEGIN
+%%BeginDocument: figure2.ps
+%%Creator: GIMP PostScript file plugin V 1.04 by Peter Kirchgessner
+%%Title: /home/wensong/linuxexpo/figure2.ps
+%%CreationDate: Thu Mar 4 20:30:26 1999
+%%DocumentData: Clean7Bit
+%%Pages: 1
+%%BoundingBox: 14 14 623 582
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+5 dict begin
+% Translate for offset
+14.173228 14.173228 translate
+% Translate to begin of first scanline
+0.000000 566.929134 translate
+608.160344 -566.929134 scale
+% Variable to keep one line of raster data
+/scanline 649 1 mul string def
+% Image geometry
+649 605 8
+% Transformation matrix
+[ 649 0 0 605 0 0 ]
+{ currentfile scanline readhexstring pop }
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ff00000000000000000000000000000000000000000000000000000000ff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff0000ffff00000000ff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00000000000000000000000000ffffff0000ffff00000000ff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00000000000000000000000000ffffff0000000000000000ff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000000000000000000000000000000000000000ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffff00000000000000ffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00000000000000000000000000000000000000ff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffff00ffffffffff00ffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffff00000000000000ffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000000000000000000000000000000000000000ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000000000000000000000000000000000000000ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffff000000
+ffffff000000ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ff00ffffff
+00ff00ffffff00ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffff0000ff
+ffff0000000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffffff00
+ffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ff00ffffff
+00ff00ffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00000000ffffff000000
+ffffff000000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c60000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+0000ffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6
+c6c6000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+000000c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c600c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6000000c6c600000000c6c6c6000000c6c6c6c600c60000c600c6000000
+c6c6c6c6c6000000c6c6c600000000c6c600c6c600c6c600c6000000c6c600000000c600c60000
+c6c6c600000000c6c6c600c6000000c6c6c6c6c6000000c6c6c600000000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c60000c6c6c600c6c600c6c6c6c600c6c6c600c6c6c60000c6c6c60000c6c6c6
+00c6c6c600c6c6c600c6c6c600c6c6c6c600c6c600c6c60000c6c6c600c6c600c6c6c60000c6c6
+c6c600c6c6c6c600c6c60000c6c6c600c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c6c6c6c6c6000000c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600000000000000c6c600c6c6c6c600c6c6c6c6
+00c6c600000000000000c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c6c6000000c6c600c6c600c6c6c6c600c6c600000000000000c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c6c6c6c600c6c6c6c600c6c6c6c6
+00c6c600c6c6c6c6c6c6c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c6c6c6
+00c6c600c6c6c6c6c600c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c6c600c6c6c600c6c6c600c6c6c6c600c6c6c6c6
+00c6c6c600c6c6c600c6c6c600c6c600c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600c6c6c6
+c600c6c6c6c60000c6c600c6c6c6c600c6c6c600c6c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600c6c600c6c6c6c600c6c6000000c6c6c6000000c6c6c6c600c6c6c6c600c6c6c6c6
+00c6c6c6c6000000c6c6c6c600000000c6c6c6c600c6c600c6c6c6c600c6c6000000c600c6c6c6
+c6c600000000c600c6c600c6c6c6c600c6c6c6c6000000c6c6c6c6000000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000ffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000ffffffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000
+0000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+000000000000000000000000000000ffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffff000000ffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffff00ffffff00ffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffffff00ffff0000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffffffffffffff00ffff00ff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffff00ffff00ff
+ffff00ff00ff00ffff000000ffffff000000ffffff000000ffffff000000ffffff000000ffff00
+ff00000000ffffff0000ff00ffffff000000ff00ff0000ffffff000000ffffffffff00ff00ffff
+000000ffffff0000ff00ff00ffffff00ffff000000ffffff000000ff000000ffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffff00ffff00ff
+ffff00ff0000ffff00ffffff00ff00ffffff00ff00ffffff00ff00ffffff00ff00ffffff00ff00
+ff00ffffff00ff00ffff0000ffffffff00ffff0000ffff00ff00ffffff00ffffffff0000ffff00
+ffffff00ff00ffff0000ff00ffffff00ff00ffffff00ff00ffffff00ff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffff00ffffff00ffffffffffff00ffff0000
+0000ffff00ffffff00ffffff00ff00ffffffffff0000000000ffff0000ffffffff0000ffffff00
+ff00ffffff00ff00ffffff00ffffffff00ffff00ffffff00ff0000000000ffffffff00ffffff00
+00000000ff00ffffff00ff00ffffff00ff0000000000ffff0000ffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffff000000ffffffffffffff00ffff00ff
+ffffffff00ffffff00ffffff00ff00ffffffffff00ffffffffffffffff00ffffffffff00ffff00
+ff00ffffff00ff00ffffff00ffffffff00ffff00ffffff00ff00ffffffffffffffff00ffffff00
+ffffffffff00ffffff00ff00ffffff00ff00ffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff00ffff00ff
+ffffffff00ffffff00ffffff00ff00ffffff00ff00ffffff00ff00ffffff00ff00ffffff00ff00
+ff00ffffff00ff00ffff0000ffffffff00ffff00ffffff00ff00ffffff00ffffffff00ffffff00
+ffffff00ff00ffff0000ff00ffff0000ff00ffffff00ff00ffffff00ff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ffffff00ff
+ffffffff00ffffffff000000ffffff000000ffffff000000ffffff000000ffffff000000ffff00
+ff00ffffff00ffff0000ff00ffffffff0000ff00ffffff00ffff000000ffffffffff00ffffffff
+000000ffffff0000ff00ffff0000ff00ffff000000ffffff000000ffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffff000000c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffff
+ffffffffff0000000000000000000000000000000000000000000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000000000000000000000000000000000000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00000000000000000000000000000000000000000000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00000000000000000000000000000000000000000000000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffff000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000ff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffff00ff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffffff000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffff000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff0000000000ffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000ffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff00ffffff00ffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff0000000000ffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffff000000000000000000ffffffff0000ffff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffff000000000000ffffffffff0000ffff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffff000000ff0000ffff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff000000ff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff000000ff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff000000ff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff0000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000000000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000000000000000000000000000000000000000ffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ff00ffffff0000000000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ff00ffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffffffffffffff
+ffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffffffffffffff
+ffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffffffffffffff
+ffffffffffffffffffffffffff0000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ff00ff000000ff0000ff0000ff000000000000000000ff0000ff00ff0000ffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff0000ffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000ff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00
+00ffffff0000000000000000000000000000000000000000000000000000000000000000000000
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ff0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ff0000000000000000000000000000000000000000000000000000000000000000000000
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff000000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffff0000ffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffff00ffffffffffffff00ffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffff0000ffffffffffffffff00ffff
+00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffff00ff00ffffffffffffffff00ffff
+00ffffffff00ffff000000ffffff0000ff00ff00ffffff00ffff000000ffffff000000ff000000
+ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000000000ffffffffffffffffffffffffffff00ffffffffff0000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffff00ffffffffffffffff00ffff
+0000000000ffff00ffffff00ff00ffff0000ff00ffffff00ff00ffffff00ff00ffffff00ff00ff
+ff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ffffffff00ffffffffffffffffffffffffff00ffffffff00ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffff00ffffffffffffffffff00ff
+00ffff00ffffff0000000000ff00ffffff00ff00ffffff00ff0000000000ffff0000ffffff00ff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ffffffff00ffff000000ffffff000000ffff00ffffffff00ffff
+ffffffffff000000ffff00ff00ff00ffffff00ffff000000ffff00ff00ffffffff00ff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffff00ffffffffffffffffff00ff
+00ffffff00ffff00ffffffffff00ffffff00ff00ffffff00ff00ffffffffffffffff00ffff00ff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffff0000000000ffff00ffffff00ff00ffffff00ff00ffffffffff0000
+ffffffff00ffffff00ff0000ffff00ffffff00ff00ffffff00ff0000ffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffff00ffffffffffffffffff00ff
+00ffffff00ffff00ffffff00ff00ffff0000ff00ffff0000ff00ffffff00ff00ffffff00ff00ff
+ff00ffffff00ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffff00ffff00ffffff0000000000ffff00000000ff00ffffffffffffff
+0000ffff0000000000ff00ffffffff00ff00ffff0000000000ff00ffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffff00ffffffffffffffff00ffff
+00ffffffff00ffff000000ffffff0000ff00ffff0000ff00ffff000000ffffff000000ffff0000
+ffff000000ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffff00ffffff00ffff00ffffffffff00ffffff00ff00ffffffffffffff
+ffff00ff00ffffffffff00ffffffff00ff00ffff00ffffffffff00ffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffff00ffffff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffff
+ffff00ff00ffffff00ff00ffffffffff00ffffff00ffffff00ff00ffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffff00ffffffff00ffff000000ffffff0000ff00ff00ffffffffff0000
+0000ffffff000000ffff00ffffffffff00ffffffff000000ffff00ffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffff0000ffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000000000000000000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff000000000000000000000000000000000000000000ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000ff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffff00ff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffffff0000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffff0000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00000000ffffffffffffffff00ffffffffffffffffffff
+ffffffffff00ffffffffffffff00ff00ffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000ff
+ffffffffffffffffffffffffffffff00ffffffff00ffffffffffffff00ffffffffffffffffffff
+ffffffffff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff00
+ffffffffffffffffffffffffffffff00ffffffffffffff000000ffff00ff0000ffffff000000ff
+ffff0000ff00ff00ffffff00ff00ff00ff00000000ffffff0000ff00ffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+0000ffffffffffffffffffffffffffff0000ffffffff00ffffff00ff0000ffff00ff00ffffff00
+ff00ffff0000ff00ffffff00ff00ff00ff00ffffff00ff00ffff0000ffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffff0000ffff00ffffffffff00ffffff00ff0000000000
+ff00ffffff00ff00ffffff00ff00ff00ff00ffffff00ff00ffffff00ffffffffff00ff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffff00ff00ffffffffff00ffffff00ff00ffffffff
+ff00ffffff00ff00ffffff00ff00ff00ff00ffffff00ff00ffffff00ffffffff00ffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff00ffffffff00ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffff00ffffff
+ffffff00ffffffffffffffffffffff00ffffffff00ff00ffffff00ff00ffffff00ff00ffffff00
+ff00ffff0000ff00ffff0000ff00ff00ff00ffffff00ff00ffff0000ffffffff00ffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffff
+ffffff00ffffffffffffffffffffffff00000000ffffff000000ffff00ffffff00ffff000000ff
+ffff0000ff00ffff0000ff00ff00ff00ff00ffffff00ffff0000ff00ffffffffff000000ff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff00ffffffff00ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffff00000000ffffffffff00ffffff0000000000ffffffffffffffffffffffffffff00ff00ffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffff00ffffffffffffffff00ffffff00ffffffff00ffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000000000ffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffffffffffffffff00ffff00ffffffff00ffff000000ffff00ff0000ffff00ff00ffff
+000000ffffff000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffff000000000000ffffffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00000000ffffffffffffff00ffff0000000000ffff00ffffff00ff0000ffff00ff00ff00ff00
+ffffff00ff00ffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffff00000000000000000000ffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffff00ffffffffffffff00ff00ffff00ffffff0000000000ff00ffffff00ff00ff00ff00
+00000000ffff0000ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffff00ffffffff00ff00ffff000000ffff00ffffff00ffffff00ff00ff00ff00000000ff00ff00
+000000ffffff0000ff00ffffffff00ff0000ffffff000000ffffff000000ffff00ffff00ffff00
+0000ff000000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffff000000000000ff0000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffff00ffffffffffffff00ff00ffffff00ffff00ffffffffff00ffffff00ff00ff00ff00
+ffffffffffffffff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffff00ffffffff0000ffff00ffffff00ff00ffff00ff00ffff00ff0000ffff00ff00ffff00ff00
+ffffff00ff00ffff0000ffffffff0000ffff00ff00ffffff00ff00ffffff00ff00ff00ffff00ff
+ffff00ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffff0000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ff00ffffff00ffffffffffffff00ff00ffffff00ffff00ffffff00ff0000ffff00ff00ff00ff00
+ffffff00ff00ffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+0000ffffffffff00ffffff0000000000ffff00ff00ff00ff00ffff00ffffff00ff00ffff00ff00
+ffffff00ff00ffffff00ffffffff00ffffff00ffff00000000ff00ffffffffff0000ffffff0000
+000000ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffff000000ffffffffffffff00ffff00ffffffff00ffff000000ffff00ff0000ffff00ff00ffff
+000000ffffff000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000
+ffffffffffffff00ffffff00ffffffffffff00ff00ff00ff00ffff00ffffff00ff00ffff00ff00
+ffffff00ff00ffffff00ffffffff00ffffff00ff00ffffff00ff00ffffffffff00ff00ffff00ff
+ffffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff
+ffffffffffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ffffff00ff00ffff00ff00
+ffffff00ff00ffff0000ffffffff0000ffff00ff00ffff0000ff00ffffff00ff00ff00ffff00ff
+ffff00ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffff000000ffffffff00ffffff00ffffff00ffffff00ff0000ff00ff00
+ffffff00ffff0000ff00ffffffff00ff0000ffffff0000ff00ffff000000ffff00ffff00ffff00
+0000ffff0000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00000000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000000000000000000000000000000000000000ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000ff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ff000000000000000000000000000000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ff00ffffffffffffffffffffffff0000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000ffffffffffffffffffffffffff0000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000ffffffffffffffffffffffffffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+0000000000000000ff000000000000ff00000000000000000000000000000000ff000000000000
+ff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00000000ffffff
+00000000ffffff0000000000ffff0000000000ffffff00000000ffffff0000000000ffff000000
+0000ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff000000000000000000000000000000000000000000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffff00ffffffff00ffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ff00000000000000000000000000ff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffff000000000000ffffffff00ff00ffff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffff00000000000000000000ffffff00ff00ffff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffff000000000000ff00000000ff00ffff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffff00000000ff00ffff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffff0000000000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffff00000000ff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ffff00ffff00ffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffff00000000ff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000000000ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000ffff00000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000000000000000000000ffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff000000ff0000ff0000ff000000000000000000ff0000ffff00ffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000ffff00000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000000000000000ffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffffffffffffff
+ffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000ffff00000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffffffffffffff
+ffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000ffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000000000000000000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ffffffffffffff
+ffffffffffffffffffffffffff0000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000ffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff0000ffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ff00ff00ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ffff00ff0000ffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffff00000000000000000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffff00ff000000ff0000ff0000ff000000000000000000ff0000ffff00ffffff0000ffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffff0000000000000000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ffffff
+00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffffff00ffffff00ffff00ffff
+ff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000ffff00000000
+00ffff0000000000ffffff00000000ffffff0000000000ffff0000000000ffffff00000000ffff
+ff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+0000ffff0000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ff0000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff000000000000000000000000000000000000ff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffff00ff00ffffffffff00ffffffffffff
+ffffffffffffffff00ffffffff00ff00000000ffffffffffffffff00ffffffffffffffff00ffff
+ffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffff00ffffffffffff
+ffffffffffffffff00ffffffff00ff00ffffff00ffffffffffff00ff00ffffffffffffff00ffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff00000000000000ffff
+ffff00000000000000ffffffff00000000000000ffffffff00000000000000ffffffff00000000
+000000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ff00ff00000000ff00ffffff
+00ffff000000ffff00ffffffff00ff00ffffff00ffffffffffff00ff00ffffffff0000ff00ffff
+0000ff00ff00ff00ffff000000ffffff000000ffffff000000ffffffffffffffffffffffff00ff
+ffff00ffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ff0000ffff00ffff00ffffff
+00ff00ffffff00ff00ffffffff00ff00ffffff00ffffffffffff00ff00ffffff00ffff0000ff00
+ffff0000ff0000ffff00ffffff00ff00ffffff00ff00ffffff00ffffffffffffffffffffff00ff
+ffff0000000000000000000000000000000000000000ffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000000000ffffffffffffffffffffffffffff00ffffffffff0000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ff00ffffff00ffff00ffffff
+00ffff00000000ff00ffffffff00ff00000000ffffffffffff00ffffff00ffff00ffffff00ff00
+ffffff00ff00ffffff0000000000ffff0000ffffffff0000ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffff00ffffffff00ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ff00ffffff00ff00ffffff00ffff00ffffff
+00ff00ffffff00ff00ffffffff00ff00ffffffffffffffffff0000000000ffff00ffffff00ff00
+ffffff00ff00ffffff0000ffffffffffffff00ffffffffff00ffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffff00ffff000000ffffff000000ffff00ffffffff00ffff
+ffffffffff000000ffff00ff00ff00ffffff00ffff000000ffff00ff00ffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff00ffffff00ffff00ffff00
+00ff00ffff0000ff00ffffffff00ff00ffffffffffffffff00ffffffffff00ff00ffff0000ff00
+ffff0000ff00ffffff00ff00ff00ff00ffffff00ff00ffffff00ffffffffffffffffffffff00ff
+ff000000000000000000ff0000ff0000ff000000000000ff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000000000ffff00ffffff00ff00ffffff00ff00ffffffffff0000
+ffffffff00ffffff00ff0000ffff00ffffff00ff00ffffff00ff0000ffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff00ffffff0000ffff0000ff
+00ffff0000ff00ff00ffffffff00ff00ffffffffffffffff00ffffffffff00ffff0000ff00ffff
+0000ff00ff00ffffffff000000ffffff000000ffffff000000ffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffff00ffffff0000000000ffff00000000ff00ffffffffffffff
+0000ffff0000000000ff00ffffffff00ff00ffff0000000000ff00ffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffff00ffff00ffffffffff00ffffff00ff00ffffffffffffff
+ffff00ff00ffffffffff00ffffffff00ff00ffff00ffffffffff00ffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffff
+ffff00ff00ffffff00ff00ffffffffff00ffffff00ffffff00ff00ffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffff00ffff000000ffffff0000ff00ff00ffffffffff0000
+0000ffffff000000ffff00ffffffffff00ffffffff000000ffff00ffffffffffff0000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff
+ffff00ffffffffffffffffffffffffff00ffffffff00ffffff00ff00ffffffffff00ffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffff
+ffffffffff00ffffffffffffffffffff00ffffffff00ffffff00ff00ffffffffff00ffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffffffffffffff
+ffffffffff00ffffffffffffffffffff00ffffffffff00ff00ffff00ffffffffff00ffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffff00ffffff
+00ff00ff000000ffffff000000ffffff00ff0000ffff00ff00ffff00ffffffffff00ffff00ffff
+ff00ffff00ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff00ffffff00ffffff
+00ff00ffff00ffffff00ffffff00ffff0000ffff00ffff0000ffff00000000000000ffff00ffff
+ff00ffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffff00000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ff00ff00ff00
+ffff00ffff00ffffff00ffffffffffff00ffffff00ffff00ffffff00ffffffffff00ffff00ffff
+ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff000000000000000000ff0000ff0000ff000000000000ff00ffff00ffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffff00000000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ff00ff00
+ffff00ffff00ffffff00ffffffffffff00ffffff00ffff0000ffff00ffffffffff00ffff00ffff
+ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff000000000000000000ff0000ff0000ff000000000000ff00ffff00ffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffff00ff00ff00ff00
+ffff00ffff00ffffff00ffffffffffff00ffffff00ffff00ff00ff00ffffffffff00ffff00ffff
+ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffff000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffff00ffffff00ff
+ffff00ffff00ffffff00ffffff00ffff00ffffff00ff00ffff00ff00ffffffffff00ffff00ffff
+ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffffffffffffffffffffffffff00
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffff00ffffff00ff
+ffff00ffff0000ffffff000000ffffff00ffffff00ff00ffffff0000ffffffffff00ffffff0000
+0000ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffffffffffffffffffffffffffff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ffffffffffffffffffffffffffff
+ffffffffffff0000000000000000000000000000000000000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff0000ffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff
+ff00ff0000ff0000ff00ff0000ff0000ff00ff0000ff00ff00ff0000ffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00ff
+ff000000000000000000ff0000ff0000ff000000000000ff00ffffff0000ffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000ffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff0000ffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffff000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffff0000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000000000ffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffff000000ffffffff000000ffffffff0000ff00ffffffffff00ffffffff00ffffff
+000000ffffff00ffffff000000ffffff00ff0000ffffffff0000ffffffff000000ffffff00ff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffff00ffff00ffffff00ffff00ffff0000ffffffffff00ffffffff00ffff00
+ffffff00ffff00ffff00ffffff00ffff0000ffff00ffff00ffff00ffff00ffffff00ffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffff00ffffffffffff00ffff00ffffff00ffffffffff000000000000ffffff
+ffffff00ffff00ffffffffffff00ffff00ffffff00ffff00ffffffffff00ffffff00ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffff00ffffff00000000ffff00ffffff00ffffffffff00ffffffff00ffffff
+00000000ffff00ffffff00000000ffff00ffffff00ffff00ffffffffff0000000000ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffff00ffff00ffffff00ffff00ffffff00ffffffffff00ffffffff00ffff00
+ffffff00ffff00ffff00ffffff00ffff00ffffff00ffff00ffffffffff00ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffff00ffff00ffff0000ffff00ffffff00ffffffffff00ffffffff00ffff00
+ffff0000ffff00ffff00ffff0000ffff00ffffff00ffff00ffff00ffff00ffffff00ffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00
+0000000000ffff000000ffffffff0000ff00ffffff00000000ffffffffff0000000000ffffffff
+0000ff00ffff00ffffff0000ff00ffff00ffffff00ffffff0000ffffffff000000ffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff00ff0000ffffff00ffffff00ff00ffffff
+00ffffffff00ffffffff00ffffff000000ffff00ffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000
+0000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff0000ffff00ffff00ffffff00ffff00ff00
+ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00
+ffffffffff000000000000ffff00ffffff00ffff00ff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff00ffffff00ff
+ffffffffff00ffffffff00ffff00ffffff00ffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00
+ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff00ffff00ff00
+ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff000000000000ff00ffff00ffffff00ffffff00000000ff00ffffff
+00ffffffff0000000000ffffffff000000ffff00ffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffff00ffffffffffffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffff00ff00ffffffffffffff00ffffffff0000000000ffffffffffffffffffffff
+ffffffffffffffffffffff00ff00ffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffff00ff00ffffffffffffff00ffffffff00ffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffff00ffff00ffffffffffffffff00ffffff00ffffffff00ffff000000ffff00ffff
+ff00ffffff00ff00ff00ff00000000ff00ff00000000ffffff0000ff00ffffffff00ff00ffff00
+0000ffff00ff0000ffff00ff00ffff000000ffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ff00ffffffffff0000000000ffffffffffffff00ffffff0000000000ffff00ffffff00ff00ffff
+00ff00ffff00ff0000ffff00ff00ffff00ff00ffffff00ff00ffff0000ffffffff0000ffff00ff
+ffff00ff0000ffff00ff00ff00ff00ffffff00ff00ffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ff00ffffffffffffffff00ffffffffffffffff00ffffff00ffff00ffffff0000000000ffff00ff
+00ff00ff00ffff00ffffff00ff00ffff00ff00ffffff00ff00ffffff00ffffffff00ffffff0000
+000000ff00ffffff00ff00ff00ff0000000000ffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ff00ffffffffffffffff00ffffffffffffff00ffffffff00ffffff00ffff00ffffffffffff00ff
+00ff00ff00ffff00ffffff00ff00ffff00ff00ffffff00ff00ffffff00ffffffff00ffffff00ff
+ffffffff00ffffff00ff00ff00ff00ffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ff00ffffffffffffffffffffffffffffffff00ffffffff00ffffff00ffff00ffffff00ffffff00
+ffffff00ffffff00ffffff00ff00ffff00ff00ffffff00ff00ffff0000ffffffff00ffffff00ff
+ffff00ff0000ffff00ff00ff00ff00ffffff00ff00ffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffff00ffffffff00ffffffff00ffff000000ffffffff00
+ffffff00ffffff00ffffff00ff0000ff00ff00ffffff00ffff0000ff00ffffffff00ffffffff00
+0000ffff00ff0000ffff00ff00ffff000000ffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffff0000ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00000000000000000000000000000000000000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff000000000000000000000000000000ff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000ffffffffffffffffffffffff00ff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000ffffffffffffffffffffffffff0000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffff0000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff000000000000ffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff00ffffffff00ffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000ffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff000000000000ffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffff000000000000ffffffffff00
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffff00000000000000000000ffffff00
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffff000000000000ff0000000000
+00ffffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffff0000000000
+00ffffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000ffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffff0000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000ff0000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000ff0000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000ffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000ffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000000000000000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffff
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffff00000000000000000000000000000000000000
+00ffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff000000000000ff0000ff0000ff000000000000ff
+0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000ffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff000000000000000000000000000000000000000000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff000000000000ff0000ff0000ff000000000000ff
+0000ffff00ffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff000000000000ff0000ff0000ff000000000000ff
+0000ffff00ffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffff0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffff
+ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff0000ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ff00ff00ff0000ff00ff0000ff0000ff00ff0000ff00ff
+0000ffff00ff0000ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffff00ff000000000000ff0000ff0000ff000000000000ff
+0000ffff00ffffff0000ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffff0000ffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffff0000ffff0000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+0000ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffff0000ff
+ff0000ff00000000000000ff0000ffffffff0000ffffff0000000000ffffff0000ffffffffffff
+0000ffffffffff0000ffffffff000000ffffffff0000ff0000ff0000ffffff0000ffffffff0000
+00ffffffff0000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffff00ff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ff
+ff00000000000000000000ff0000ffffffff0000ffff00000000000000ffff0000ffffffffffff
+00000000ffffffffffffffff0000000000ffffff0000000000ff0000ffffff0000ffffff000000
+0000ffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ff0000000000000000000000000000000000000000000000
+000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ff
+ff000000ffffff0000ffffff0000ffffffff0000ffff0000ffffff0000ffff0000ffffffffffff
+ff000000000000ffffffff0000ffffff0000ffff000000ffffff0000ffffff0000ffff0000ffff
+ff0000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ff
+ff0000ffffffff0000ffffff0000ffffffff0000ffffffffff00000000ffff0000ffffffffffff
+ffffff0000000000ffffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000
+000000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ff
+ff0000ffffffff0000ffffff0000ffffffff0000ffffff000000000000ffff0000ffffffffffff
+ffffffffffff000000ffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000
+000000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ff
+ff0000ffffffff0000ffffff0000ffffffff0000ffff000000ffff0000ffff0000ffffffffffff
+0000ffffffffff0000ffff0000ffffffffffffff0000ffffffffff0000ff0000ffffff0000ffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ff
+ff0000ffffffff0000ffffff0000ffffff000000ffff0000ffffff0000ffff0000ffffffffffff
+000000ffffff000000ffff000000ffff0000ffff0000ffffffffffff000000ffffffff000000ff
+ff0000ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ff
+ff0000ffffffff00000000ff0000000000000000ffff00000000000000ffff0000ffffffffffff
+ff00000000000000ffffffff0000000000ffffff0000ffffffffffff000000ffffffffff000000
+0000ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ff
+ff0000ffffffffff000000ffff00000000ff0000ffffff00000000ff0000ff0000ffffffffffff
+ffff0000000000ffffffffffff000000ffffffff0000ffffffffffff000000ffffffffffff0000
+00ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffffffff
+ffffffff00ffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffffffffffffffff
+ffffffff00ffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffff000000ffffff00
+0000ffff00ffffffff00ffffffffffffff000000ffff00ff00ff00ffffff00ffff000000ffff00
+ff00ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffff00ffffff00ff00ff
+ffff00ff00ffffffffff0000ffffffff00ffffff00ff0000ffff00ffffff00ff00ffffff00ff00
+00ffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff0000000000ffff00
+000000ff00ffffffffffffff0000ffff0000000000ff00ffffffff00ff00ffff0000000000ff00
+ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffffff00ff
+ffff00ff00ffffffffffffffffff00ff00ffffffffff00ffffffff00ff00ffff00ffffffffff00
+ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffff00ffffff00ff00ff
+ff0000ff00ffffffff00ffffffff00ff00ffffff00ff00ffffffffff00ffffff00ffffff00ff00
+ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffff000000ffffff00
+00ff00ff00ffffffffff00000000ffffff000000ffff00ffffffffff00ffffffff000000ffff00
+ffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff0000ffffff
+ffffff0000ffffffffff000000ffffffff00000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff000000ffff
+ffffff0000ffffffffff000000ffffffff00000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ff
+ffffff0000ffffffff0000ff0000ffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffff0000ffff0000ffffff0000000000ffffffffffffff00000000ff
+ffffff0000ffffffff0000ff0000ffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffff0000ffff0000ffff00000000000000ffffffffffff0000ff0000
+ffffff0000ffffffff0000ff0000ffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffff0000ffff0000ffff0000ffffff0000ffffffffffff0000ffff00
+00ffff0000ffffff0000ffffff0000ffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ff0000ffffff0000ffffffffff00000000ffffffffffff0000ffff00
+00ffff0000ffffff0000ffffff0000ffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ff0000ffffff0000ffffff000000000000ffffffffffff0000ffffff
+0000ff0000ffffff00000000000000ffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ff0000ffffff0000ffff000000ffff0000ffffffffffff0000ffffff
+ff00000000ffff000000000000000000ffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000ffffffff0000ffff0000ffffff0000ffffffffffff0000ffffff
+ff00000000ffff0000ffffffffff0000ffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000ffffffff0000ffff00000000000000ffffffffffff0000ffffff
+ffff000000ffff0000ffffffffff0000ffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000ffffffff0000ffffff00000000ff0000ffffffffff0000ffffff
+ffffff0000ff0000ffffffffffffff0000ffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffff00000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffff
+ff00000000ffffffffffffffffffffffffffffffffffffffff00000000ffffffff00000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00000000ffffffff00000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff
+showpage
+end
+%%EOF
+%%EndDocument
+end PEND(Figure 2: Architecture of a virtual serv)188.83 437.764 Q
+(er via N)-.15 E -1.11(AT)-.35 G 1.05(The w)72 459.364 R(ork\215o)-.1 E
+3.55(wo)-.25 G 3.55(fv)-3.55 G 1.05(irtual serv)-3.55 F 1.05(er via N)
+-.15 F 3.27 -1.11(AT i)-.35 H 3.55(sa)1.11 G 3.55(sf)-3.55 G(ollo)-3.55
+E 1.05(ws: When a user accesses the service pro)-.25 F 1.05
+(vided by the)-.15 F(serv)72 471.364 Q .956(er cluster)-.15 F 3.456(,t)
+-.4 G .956(he request pack)-3.456 F .955
+(et destined for virtual IP address \(the e)-.1 F .955
+(xternal IP address for the load bal-)-.15 F 1.11(ancer\) arri)72
+483.364 R -.15(ve)-.25 G 3.61(sa).15 G 3.61(tt)-3.61 G 1.11
+(he load balancer)-3.61 F 3.61(.T)-.55 G 1.11(he load balancer e)-3.61 F
+1.11(xamines the pack)-.15 F(et')-.1 E 3.61(sd)-.55 G 1.11
+(estination address and port)-3.61 F(number)72 495.364 Q 3.785(.I)-.55 G
+3.785(ft)-3.785 G(he)-3.785 E 3.785(ya)-.15 G 1.285
+(re matched for a virtual serv)-3.785 F 1.285
+(er service according to the virtual serv)-.15 F 1.285
+(er rule table, a real)-.15 F(serv)72 507.364 Q .231(er is chosen from \
+the cluster by a scheduling algorithm, and the connection is added into\
+ the hash table)-.15 F 1.683(which records all established connections.\
+ Then, the destination address and the port of the pack)72 519.364 R
+1.682(et are)-.1 F(re)72 531.364 Q .062
+(written to those of the chosen serv)-.25 F(er)-.15 E 2.563(,a)-.4 G
+.063(nd the pack)-2.563 F .063(et is forw)-.1 F .063(arded to the serv)
+-.1 F(er)-.15 E 2.563(.W)-.55 G .063(hen the incoming pack)-2.563 F(et)
+-.1 E .259(belongs to this connection and the established connection ca\
+n be found in the hash table, the pack)72 543.364 R .258(et will be)-.1
+F(re)72 555.364 Q .116(written and forw)-.25 F .117
+(arded to the chosen serv)-.1 F(er)-.15 E 2.617(.W)-.55 G .117
+(hen the reply pack)-2.617 F .117(ets come back, the load balancer re)
+-.1 F(writes)-.25 E .076(the source address and port of the pack)72
+567.364 R .075
+(ets to those of the virtual service. When the connection terminates or)
+-.1 F(timeouts, the connection record will be remo)72 579.364 Q -.15(ve)
+-.15 G 2.5(di).15 G 2.5(nt)-2.5 G(he hash table.)-2.5 E(An e)72 594.964
+Q(xample of V)-.15 E(irtual Serv)-.6 E(er via N)-.15 E 2.22 -1.11(AT i)
+-.35 H 2.5(si)1.11 G(llustrated in Figure 3.)-2.5 E EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q 14 14 244.8 665 -209.092 568
+165.6 293.092 PBEGIN
+%%BeginDocument: figure3.ps
+%%Creator: GIMP PostScript file plugin V 1.04 by Peter Kirchgessner
+%%Title: /home/wensong/linuxexpo/figure3.ps
+%%CreationDate: Thu Mar 4 20:28:54 1999
+%%DocumentData: Clean7Bit
+%%Pages: 1
+%%BoundingBox: 14 14 679 582
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+5 dict begin
+% Translate for offset
+14.173228 14.173228 translate
+% Translate to begin of first scanline
+0.000000 566.929134 translate
+664.263353 -566.929134 scale
+% Variable to keep one line of raster data
+/scanline 389 1 mul string def
+% Image geometry
+389 332 8
+% Transformation matrix
+[ 389 0 0 332 0 0 ]
+{ currentfile scanline readhexstring pop }
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff
+ffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff00
+00000000ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff00000000ff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffff00ff0000ffff00000000ffff000000ffffff00ff0000ff00ff0000ffffff
+ff000000ffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff000000ffff00ffff00ffffff00ffffff00ff000000ffff000000ffff00ffff
+00ffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffff00ffffff00ffff00ffffff0000000000ffff00ffffffff00ffffff00ffff
+0000000000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffff00ffffff00ffff00ffffff00ffffffffffff00ffffffff00ffffff00ffff
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffff00ffffff00ffff00ffffff00ffffffffffff00ffffffff00ffffff00ffff
+00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffff00ffffff00ffff00ff00ff00ffffff00ffff00ffffffff00ffffff00ffff
+00ffffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000000000000000ff000000ff0000ffffff000000ffff000000ffff000000ff000000ff
+ff000000ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff00000000ff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff
+ffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffff00
+00000000ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff0000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000ff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff00000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff0000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff00000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00000000000000000000000000000000000000000000000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffff000000ffffff000000ffffff000000ffffffffffffff00ffffffff000000ffff
+ff000000ffffffffffffff00ffffffff000000ffffffffff0000ffffffffffff000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffff00ffffff00ff00ffffff00ff00ffffff00ffffffffff0000ffffff00ffffff00ff
+00ffffff00ffffffffff0000ffffff00ffffff00ffffff00ffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00000000000000000000000000000000000000ffff00ffffffff
+ffffffffffffffffffff00ff00ffffff00ffffffffff00ffffffffffff00ffffff00ffffff00ff
+ffffffff00ffffffffffff00ffffff00ffffff00ffff00ffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffffffff
+ffffffffffffffffffff00ff00ffffff00ffffffffff00ffffffffffff00ffffff00ffffff00ff
+ffffff00ffffffffffffff00ffffff00ffffff00ff00ff0000ffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffffffff
+ffffffffffffffffffff00ff00ffffff00ffffffffff00ffffffffffff00ffffff00ffffff00ff
+ffff0000ffffffffffffff00ffffff00ffffff00ff0000ffff00ffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ff0000000000000000000000000000ff00ffff00ffffffff
+ffffffffffffffffff00ffff00ffffff00ffffffff00ffffffffffffff00ffffff00ffffff00ff
+ffffffff00ffffffffffff00ffffff00ffffff00ff00ffffff00ffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ff00ffffffffffffffffffffff0000ff00ffff00ffffffff
+ffffffffffffffff00ffffff00ffffff00ffffff00ffffffffffffffff00ffffff00ffffff00ff
+ffffffff00ffffffffffff00ffffff00ffffff00ff00ffffff00ffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000ffffffffffffffffffffffff0000ff00ffff00ffffffff
+ffffffffffffff00ffff00ff00ffffff00ffff00ffff00ffffffffffff00ffffff00ffffff00ff
+ffffffff00ffffffffffff00ffffff00ffffff00ff00ffffff00ffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000ffffffffffffffffffffffffff00ff00ffff00ffffffff
+ffffffffffff0000000000ffff000000ffff0000000000ffff00ffff000000ffffff000000ffff
+00000000ffffff00ffff000000ffffff000000ffffff000000ffffff00ff000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffff0000000000ffff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ff000000000000000000000000ff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffff00ffffff00ffff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffff0000000000ffff00ff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff0000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffff0000000000ffffffff00ff00ffff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffff000000000000000000ffffff00ff00ffff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffff00000000ff00ffff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffff000000000000ffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffff00ffffffff00ffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000000000000000000000ff00000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffff00ffffffff00ffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000000000000000000000ff00000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffffff000000ffffff
+ff0000ffffffff0000ff00ffffffffff00ffffffff00ffffff0000ffffff00ffffff0000ffffff
+00ff0000ffffffff000000ffffff0000ffffff00ff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000000000000000000000ff00000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffff00ffffff00ffff
+00ffff00ffff00ffff0000ffffffffff0000000000ffffff00ffff00ffff00ffff00ffff00ff00
+0000ffff00ffff00ffff00ffff00ffff00ff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000000000000000000000ffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffff00ffffff00ffff
+ff000000ffff00ffffff00ffffffffff00ffffffff00ffffff000000ffff00ffffff000000ffff
+00ffffff00ffff00ffffffffff00000000ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff000000000000000000000000ffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffffffff00ffffff00ffff
+00ffff00ffff00ffffff00ffffffffff00ffffffff00ffff00ffff00ffff00ffff00ffff00ffff
+00ffffff00ffff00ffffffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffff00ffffffff00ff00ffffff00ffff
+00ffff00ffff00ffff000000ffffffff00ffffffff00ffff00ffff00ffff00ffff00ffff00ffff
+00ffffff00ffff00ffff00ffff00ffff00ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffff000000000000ffffff000000ffffff
+ff00000000ffff0000ff00ffffffff000000000000ffffffff00000000000000ffff0000000000
+0000ff000000ffff0000ffffffff0000ffff000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000ffffffffffffffffffffffffffff00ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff0000000000000000000000000000000000ff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffff000000
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffff00000000000000000000000000000000000000ffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00ffff00ff0000ffff0000ffff0000ff0000ff0000ffffffff00ffffffff00ffffff
+000000ffff0000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff0000ff000000ffff00ffff00ffffff00ffff00ff00ffffffffff0000000000ffffff00
+ffffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00ffff00ffffff00ffff00ffffff00ffffff00ffffffffffff00ffffffff00ffff00
+ffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff000000000000000000000000000000000000000000ff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00ffff00ffffff00ffff00ffffff00ffffff00ffffffffffff00ffffffff00ffff00
+ffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffff00ff00ffff00ffffff00ffff00ffff000000ff00ff00ffffffffff00ffffffff00ffff00
+ffffff00ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffff000000
+000000ff000000000000ff000000ffff0000ff00ff0000ff0000ffffff000000000000ffffffff
+000000ffff0000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffff0000
+0000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffff000000ff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff000000000000000000000000000000000000000000ff00ffff00ff
+ffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffff000000ff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff
+ffffffffffffffffffffff00ffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff000000000000000000000000000000000000000000ff00ffff0000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffff
+ffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffff
+ffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffff000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffff
+ffffffffffffffffffffffffffffff000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff0000ffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ff00ff0000ff0000ff0000ff0000ff0000ff0000ff00ff00ff0000ff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffff00ff000000000000000000000000000000000000000000ff00ffffff00
+00ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff0000ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff0000ff000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffff00000000ffff000000ffffff
+ffffffff00ffffffffffff0000ffffffffff000000ffffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffff00ffffff00ff00ffffff00ffff
+ffffff0000ffffffffff00ffffffffffff00ffffff00ffffff00ff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffffffff00ffff
+ffffffff00ffffffff00ffffffffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffff00ffff
+ffffffff00ffffff00ff0000ffffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffff00ffff
+ffffffff00ffffff0000ffff00ffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffff00ffffff
+ffffffff00ffffff00ffffff00ffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff00ffffffff
+ffffffff00ffffff00ffffff00ffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00ffff00ffff
+ffffffff00ffffff00ffffff00ffffffff00ffffff00ffffff00ffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff00000000ffff00
+0000ffffffffffff0000ffffffffffff0000ffffffffff000000ffffffffffff000000ffffffff
+00ff000000ffffffff000000ffffff000000ffffffffff000000ffffffff000000ffffff000000
+ffffffffff000000ffffffff000000ffffff000000ffffffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffff00ffffff0000000000ffff
+00ffff000000ffffff000000ffffff00ffff000000ffffff0000ff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffff00ff00ff
+ffff00ffffffffffff00ffffffff0000ffffffffffff00ffffff00ffffffff00ffffff00ffffff
+0000ffffff00ffff00ffffffffff00ffffffffffffff00ffffff00ffff00ffffffffff00ffffff
+ffffffff00ffffff00ffff00ffffffffff00ffffffffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff00ffffff
+ffff00ffffffffffff00ffffffff00ffffffffffffff00ffffff00ffffffff00ffffff00ffff00
+ffffffffff00ffff0000ffffffff0000ffffffffffffffffffff00ffff0000ffffffff0000ffff
+ffffffffffffffff00ffff0000ffffffff0000ffffffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff
+ffff00ffffffffffff00ffffff00ff0000ffffffffff00ffffff00ffffffff00ffffff00ffff00
+ffffffffff00ffffffff00ffffffffff00ffffffffffffffffff00ffffffff00ffffffffff00ff
+ffffffffffffffff00ffffffff00ffffffffff00ffffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff
+ff00ffffffffffffff00ffffff0000ffff00ffffffff00ffffff00ffffffff00ffffff00ffff00
+ffffffff00ffffffffffff00ffffffffff00ffffffffffffff00ffffffffffff00ffffffffff00
+ffffffffffffff00ffffffffffff00ffffffffff00ffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffff
+00ffffffffffffffff00ffffff00ffffff00ffffffff00ffffff00ffffffff00ffffff00ffff00
+ffffff00ffffffffffffff00ffffffffff00ffffffffffff00ffffffffffffff00ffffffffff00
+ffffffffffff00ffffffffffffff00ffffffffff00ffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffffffff00
+ffff00ffffffffffff00ffffff00ffffff00ffffffff00ffffff00ffffffff00ffffff00ff00ff
+ffff00ffff00ffffffffff00ffffffffff00ffffffffff00ffff00ffffffffff00ffffffffff00
+ffffffffff00ffff00ffffffffff00ffffffffff00ffffffff00ffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff00ffffff0000
+000000ffff00ffff000000ffffff000000ffffff00ffff000000ffffff00ffff000000ffff00ff
+ff0000000000ff00000000ffff00000000ffffff00ff0000000000ff00000000ffff00000000ff
+ffff00ff0000000000ff00000000ffff00000000ffffff00ffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000
+000000000000000000000000ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+00000000000000000000000000000000000000ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00000000000000000000
+000000000000000000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+00000000000000000000000000000000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000ff0000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000ff0000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000ffffffffffff
+ffffffffff00ff0000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffff00ff0000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000ffffffffffff
+ffffffffffff000000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffff000000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffff000000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffff000000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffff00
+0000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffff000000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+0000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+000000000000000000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffff00
+ffffffff00ffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffff00ffffffff00ffff0000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffff00
+0000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffff000000000000ffff0000ffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffff000000
+0000ffffffffff0000ffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff0000000000ffffffffff0000ffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffff0000000000
+00000000ffffff0000ffff00ffff00ffffffff0000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000ffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffff000000000000000000ffffff0000ffff00ffff00ffffffff00000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffff000000
+0000ff000000000000ffff00ffff00ffffffff0000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000ffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff0000000000ff000000000000ffff00ffff00ffffffff00000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffff000000000000ffff00ffff00ffffffff0000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000ffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffff000000000000ffff00ffff00ffffffff00000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000ffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+0000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+000000000000000000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+0000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+000000000000000000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+0000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+000000000000000000ff000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+0000ffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+000000000000000000ffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00ffffffffffffff
+ffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff0000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff0000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffff
+ffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffff00ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00000000000000000000
+000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+00000000000000000000000000000000ffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+00000000000000000000ff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000000000000000000000000000000000ff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff0000000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff0000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000ffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff00000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffff000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+00000000000000000000ff00ffff00000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffff000000ff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000000000000000000000000000000000ff00ffff000000000000000000000000000000000000
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffff000000ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffff00ffffffffffffffffffffffffff00ffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffff000000ff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffff00ffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff000000ff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000000000000000000000
+00000000000000000000ff00ffff00000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000000000000000000000000000000000ff00ffff000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffffffffffffffffffffffffff000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffffffffffffffffffffff000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffffffffffffffffffffffffffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffffffffffffffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ffffffffffffffffffffffffffffffffffffff0000000000000000
+00000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ffffffffffffffffffffffffffffffffffffff00
+0000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff0000ffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff0000ffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ff00ff0000ff0000ff0000ff
+0000ff0000ff0000ff00ff00ff0000ffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff00ff0000
+ff0000ff0000ff0000ff0000ff0000ff00ff00ff0000ffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffff00ff0000000000000000000000
+00000000000000000000ff00ffffff0000ffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00ff00000000
+0000000000000000000000000000000000ff00ffffff0000ffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffff0000ffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffff0000ffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffff0000ffff00000000000000000000000000000000
+00000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffff000000000000000000
+0000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000ff00000000000000000000000000000000
+00000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000ff000000000000000000
+0000000000000000000000000000000000000000000000000000000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff00000000ffff000000ffffffffffffff00ffffffffffff0000ffffffffff000000ffff
+ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffff00000000ffff000000ffffffffffffff00ffffffffffff0000ffffff
+ffff000000ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffff00ffffff00ff00ffffff00ffffffffff0000ffffffffff00ffffffffffff00ffffff00ff
+ffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffff00ffffff00ff00ffffff00ffffffffff0000ffffffffff00ffffffffff
+ff00ffffff00ffffffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffff00ffffffffff00ffffffffffff00ffffffff00ffffffffffffff00ffffff00ff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffff00ffffffffff00ffffffffffff00ffffffff00ffffffffffff
+ff00ffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffffffffff00ffffffffffff00ffffff00ff0000ffffffffff00ffffff00ff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffff00ffffffffffff00ffffffffffff00ffffff00ff0000ffffffff
+ff00ffffff00ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffffffffff00ffffffffffff00ffffff0000ffff00ffffffff00ffffff00ff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffff00ffffffffffff00ffffffffffff00ffffff0000ffff00ffffff
+ff00ffffff00ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffffffff00ffffffffffffff00ffffff00ffffff00ffffffff00ffffff00ff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffff00ffffffffff00ffffffffffffff00ffffff00ffffff00ffffff
+ff00ffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffff00ffffffff00ffffffffffffffff00ffffff00ffffff00ffffffff00ffffff00ff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffff00ffffffff00ffffffffffffffff00ffffff00ffffff00ffffff
+ff00ffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffff00ffffffff00ffff00ffffffffffff00ffffff00ffffff00ffffffff00ffffff00ff
+ffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffff00ffffffff00ffff00ffffffffffff00ffffff00ffffff00ffffff
+ff00ffffff00ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffff00ffffff0000000000ffff00ffff000000ffffff000000ffffff00ffff000000ffff
+ff00ff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffff00ffffff0000000000ffff00ffff000000ffffff000000ffffff00
+ffff000000ffffff00ff00000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+showpage
+end
+%%EOF
+%%EndDocument
+end PEND(Figure 3: an e)192.81 311.092 Q(xample of V)-.15 E(irtual Serv)
+-.6 E(er via N)-.15 E -1.11(AT)-.35 G -.8(Ta)72 332.692 S(ble 1 illustr\
+ates the rules speci\214ed in the Linux box with virtual serv).8 E
+(er support.)-.15 E .4 LW 503.989 343.192 72 343.192 DL/F1 10
+/Times-Bold@0 SF -.92(Ta)197.869 352.692 S
+(ble 1: an example of virtual ser).92 E -.1(ve)-.1 G 2.5(rr).1 G(ules)
+-2.5 E 503.989 357.192 72 357.192 DL F0 31.631(Protocol V)83.377 366.692
+R(irtual IP Address)-.6 E 31.631(Port Real)34.131 F(IP Address)2.5 E
+34.961(Port W)34.131 F(eight)-.8 E 503.989 371.192 72 371.192 DL 54.121
+(172.16.0.2 80)310.72 380.692 R(1)44.131 E 503.989 385.192 293.654
+385.192 DL 54.121(172.16.0.3 8000)310.72 394.692 R(2)34.131 E 47.181
+(TCP 202.103.106.5)83.377 387.692 R(80)51.021 E 503.989 399.192 72
+399.192 DL 47.181(TCP 202.103.106.5)83.377 408.692 R 38.301
+(21 172.16.0.3)51.021 F 41.631(21 1)56.621 F 503.989 413.192 72 413.192
+DL 503.989 343.192 503.989 413.192 DL 72 343.192 72 413.192 DL 446.906
+357.192 446.906 413.192 DL 392.775 357.192 392.775 413.192 DL 293.654
+357.192 293.654 413.192 DL 242.853 357.192 242.853 413.192 DL 134.332
+357.192 134.332 413.192 DL .896(All traf)72 430.292 R .897
+(\214c destined for IP address 202.103.106.5 Port 80 is load-balanced o)
+-.25 F -.15(ve)-.15 G 3.397(rr).15 G .897(eal IP address 172.16.0.2)
+-3.397 F .665(Port 80 and 172.16.0.3 Port 8000. T)72 442.292 R(raf)-.35
+E .664(\214c destined for IP address 202.103.106.5 Port 21 is port-forw)
+-.25 F(arded)-.1 E .923
+(to real IP address 172.16.0.3 Port 21. Note real serv)72 454.292 R .923
+(ers can run an)-.15 F 3.424(yO)-.15 G 3.424(St)-3.424 G .924
+(hat supports TCP/IP)-3.424 F 3.424(,t)-1.11 G .924(he def)-3.424 F
+(ault)-.1 E(route of real serv)72 466.292 Q
+(ers must be the virtual serv)-.15 E(er\(172.16.0.1 in this e)-.15 E
+(xample\).)-.15 E -.15(Pa)72 481.892 S(ck).15 E(et re)-.1 E(writing w)
+-.25 E(orks as follo)-.1 E(ws.)-.25 E(The incoming pack)97 497.492 Q
+(et for web service w)-.1 E
+(ould has source and destination addresses as:)-.1 E 503.992 507.992 97
+507.992 DL 52.586(SOURCE 202.100.1.2:3456 DEST 202.103.106.5:80)115.362
+517.492 R 503.992 521.992 97 521.992 DL 503.992 507.992 503.992 521.992
+DL 97 507.992 97 521.992 DL 387.807 507.992 387.807 521.992 DL 307.721
+507.992 307.721 521.992 DL 182.355 507.992 182.355 521.992 DL .355
+(The load balancer will choose a real serv)97 535.492 R(er)-.15 E 2.855
+(,e)-.4 G .355(.g. 172.16.0.3:8000. The pack)-2.855 F .354(et w)-.1 F
+.354(ould be re)-.1 F .354(written and)-.25 F(forw)97 547.492 Q
+(arded to the serv)-.1 E(er as:)-.15 E 503.997 557.992 97 557.992 DL
+53.951(SOURCE 202.100.1.2:3456 DEST 172.16.0.3:8000)115.817 567.492 R
+503.997 571.992 97 571.992 DL 503.997 557.992 503.997 571.992 DL 97
+557.992 97 571.992 DL 391.674 557.992 391.674 571.992 DL 310.223 557.992
+310.223 571.992 DL 183.492 557.992 183.492 571.992 DL
+(Replies get back to the load balancer as:)97 585.492 Q 503.997 595.992
+97 595.992 DL 53.951(SOURCE 172.16.0.3:8000 DEST 202.100.1.2:3456)
+115.817 605.492 R 503.997 609.992 97 609.992 DL 503.997 595.992 503.997
+609.992 DL 97 595.992 97 609.992 DL 386.674 595.992 386.674 609.992 DL
+305.223 595.992 305.223 609.992 DL 183.492 595.992 183.492 609.992 DL
+(The pack)97 623.492 Q(ets w)-.1 E
+(ould be written back to the virtual serv)-.1 E
+(er address and returned to the client as:)-.15 E 503.992 633.992 97
+633.992 DL 52.586(SOURCE 202.103.106.5:80 DEST 202.100.1.2:3456)115.362
+643.492 R 503.992 647.992 97 647.992 DL 503.992 633.992 503.992 647.992
+DL 97 633.992 97 647.992 DL 387.807 633.992 387.807 647.992 DL 307.721
+633.992 307.721 647.992 DL 182.355 633.992 182.355 647.992 DL EP
+%%Page: 7 7
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-7-)282.17 48 Q/F1 15/Times-Bold@0 SF 3.75
+(3.2. V)72 84 R(irtual Ser)-.555 E -.15(ve)-.15 G 3.75(rv).15 G(ia IP T)
+-3.75 E(unneling)-1.38 E F0 1.913(IP tunneling \(IP encapsulation\) is \
+a technique to encapsulate IP datagram within IP datagrams, which)72
+106.8 R(allo)72 118.8 Q .073(ws datagrams destined for one IP address t\
+o be wrapped and redirected to another IP address. This tech-)-.25 F
+.155(nique can be used to implement virtual serv)72 130.8 R .155
+(er that the load balancer tunnel the request pack)-.15 F .155
+(ets to the dif)-.1 F(fer)-.25 E(-)-.2 E .915(ent serv)72 142.8 R .915
+(ers, the serv)-.15 F .915
+(ers process the requests and return the results to clients directly)
+-.15 F 3.414(,a)-.65 G .914(nd the services can)-3.414 F
+(still appear as a virtual service on a single IP address.)72 154.8 Q
+.348(The architecture of virtual serv)72 170.4 R .348
+(er via IP tunneling is illustrated in Figure 4. The most dif)-.15 F
+.349(ferent thing of vir)-.25 F(-)-.2 E .414(tual serv)72 182.4 R .414
+(er via IP tunneling to that of virtual serv)-.15 F .414(er via N)-.15 F
+2.634 -1.11(AT i)-.35 H 2.914(st)1.11 G .414
+(hat the load balancer sends requests to real)-2.914 F(serv)72 194.4 Q
+1.314(ers through IP tunnel in the former)-.15 F 3.814(,a)-.4 G 1.314
+(nd the load balancer sends request to real serv)-3.814 F 1.315
+(ers via netw)-.15 F(ork)-.1 E(address translation in the latter)72
+206.4 Q(.)-.55 E 14 14 360 595 -343.664 568 108 562.064 PBEGIN
+%%BeginDocument: figure4.ps
+%%Creator: GIMP PostScript file plugin V 1.04 by Peter Kirchgessner
+%%Title: /home/wensong/linuxexpo/figure4.ps
+%%CreationDate: Thu Mar 4 20:29:51 1999
+%%DocumentData: Clean7Bit
+%%Pages: 1
+%%BoundingBox: 14 14 609 582
+%%EndComments
+%%BeginProlog
+% Use own dictionary to avoid conflicts
+5 dict begin
+% Translate for offset
+14.173228 14.173228 translate
+% Translate to begin of first scanline
+0.000000 566.929134 translate
+594.458318 -566.929134 scale
+% Variable to keep one line of raster data
+/scanline 691 1 mul string def
+% Image geometry
+691 659 8
+% Transformation matrix
+[ 691 0 0 659 0 0 ]
+{ currentfile scanline readhexstring pop }
+image
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+00000000000000000000000000000000000000000000000000000000000000ffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000000000
+000000000000000000000000000000000000000000000000000000000000ffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ff00ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffff000000000000000000000000000000000000000000ff00000000
+0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ff00ff0000
+0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffff00ffffff00000000000000000000000000ffffff00ff00ff0000
+0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffff00000000000000000000000000ffffff00ff00000000
+0000ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000000000000000000000000000000000000000ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffff00000000000000ffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00000000000000000000000000000000000000ff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffffff00ffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffff00000000000000ffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000000000000000000000000000000000000000ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000000000000000000000000000000000000000ffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ffff000000ffffff000000ffff00ff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ff00ffffff00ff00ffffff00ff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ffff0000ffffff0000000000ff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ffffffff00ffff00ffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ff00ffffffff00ff00ffffff00ff00ffffff00ff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffff00000000ffffff000000ffffff000000ffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000
+0000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000000000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffff
+ffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffff
+ffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffff
+ffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffff
+ffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000000000ffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffff00ffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffff00ffffff000000ffffff00ff0000ffffff00ffff00ffffff000000ffff
+ffff000000ffffffffffffff0000ff00ffffff000000ffffff00ffff00ff0000ffffffff0000ff
+00ffffffff000000ffff000000ffffffffff000000ff00ff0000ffffffff000000ffffffffffff
+00ffffff00ffffff000000ffffffff000000ffffff00ff00ffffffffff0000ff00ffff00ffff00
+ff00ffff000000ffffffff0000ffff000000ff00ff00ffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffff00ffff00ffffff00ffff0000ffff00ffff00ffff00ffff00ffffff00ff
+ff00ffffff00ffffffffff00ffff0000ffff00ffffff00ffff00ffff0000ffff00ffff00ffff00
+00ffffffffff00ffff00ffffff00ffffffffff00ffff0000ffff00ffff00ffffff00ffffffffff
+00ffffff00ffff00ffffff00ffff00ffffff00ffff0000ffffffffff00ffff0000ffff00ffff00
+00ffff00ffffff00ffff00ffff00ffff00ffff00ff00ffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000000000ffffff00ffffff00ffff00ffffff00ffff00ffff00ffff00ffffff00ff
+ff00ffffffffffffffffff00ffffff00ffff00ffffff00ffff00ffff00ffffff00ffff00ffffff
+00ffffffffff00ffff00ffffff00ffffffffff00ffff00ffffff00ffff00ffffff00ffffffffff
+00ffffff00ffff00ffffffffffff00ffffff00ffff00ffffffffffff00ffffff00ffff00ffff00
+ffffff00ffffff00ffff00ffffffffff00ffff00ffff00ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffff00ffffffff0000000000ffff00ffffff00ffff00ffff00ffff0000000000ff
+ffff000000ffffffffffff00ffffff00ffff00ffffff00ffff00ffff00ffffff00ffff00ffffff
+00ffffffffff00ffff00ffffff00ffffffffff00ffff00ffffff00ffff0000000000ffffffffff
+00ffffff00ffffff000000ffffff0000000000ffff00ffffffffffff00ffffff00ffff00ffff00
+ffffff0000000000ffff00ffffffffff00ffff00ffff00ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffff00ffffff00ffffffffffff00ffffff00ffff00ffff00ffff00ffffffffff
+ffffffffff00ffffffffff00ffffff00ffff00ffffff00ffff00ffff00ffffff00ffff00ffffff
+00ffffffffff00ffff00ffffff00ffffffffff00ffff00ffffff00ffff00ffffffffffffffffff
+00ffffff00ffffffffffff00ffff00ffffffffffff00ffffffffffff00ffffff00ffff00ffff00
+ffffff00ffffffffffff00ffffffffff00ffff00ffff00ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffff00ffffff00ffffff00ffff0000ffff00ffff00ffff00ffff00ffffff00ff
+ff00ffffff00ffffffffff00ffff0000ffff00ffffff00ffff00ffff00ffffff00ffff00ffff00
+00ffffffffff00ffff00ffffff00ffffffffff00ffff00ffffff00ffff00ffffff00ffffffffff
+00ffffff00ffff00ffffff00ffff00ffffff00ffff00ffffffffffff00ffffff00ffff00ffff00
+ffffff00ffffff00ffff00ffff00ffff00ffff00ffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+00000000000000000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000000000
+000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffff00ffffff000000ffffff00ff0000ffffff00ffff00ffffff000000ffff
+ffff000000ffffffffffffff0000ff00ffffff000000ffffff00ffff00ffffff00ffffff0000ff
+00ffffffffff0000ffff000000ffffffffffff0000ff00ffffff00ffffff000000ffffffffffff
+ff00000000ffffff000000ffffffff000000ffffff00ffffffffffffff00000000ffff00ffff00
+ffffffff000000ffffffff0000ffffff0000ff00ffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffff0000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c600
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c600c600
+c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c600c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c6c6c600c6c600
+c6c6c6c6c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6000000c6c600000000c6c6
+c6000000c6c6c6c600c60000c600c6000000c6c6c6c6c6000000c6c6c600000000c6c600c6c600
+c6c600c6000000c6c600000000c600c60000c6c6c600000000c6c6c600c6000000c6c6c6c6c600
+0000c6c6c600000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c60000c6c6c600c6c600c6c6c6c6
+00c6c6c600c6c6c60000c6c6c60000c6c6c600c6c6c600c6c6c600c6c6c600c6c6c6c600c6c600
+c6c60000c6c6c600c6c600c6c6c60000c6c6c6c600c6c6c6c600c6c60000c6c6c600c6c6c600c6
+c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600
+c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c6c600c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6
+c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600
+c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c600c6c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c6c6c6c6000000c6c600c6c6c6c600c6c600c6c6
+c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600
+000000000000c6c600c6c6c6c600c6c6c6c600c6c600000000000000c6c600c6c6c600c6c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c6c6000000c6c600c6c600c6c6c6c600c6c6000000
+00000000c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600
+c6c6c6c6c6c6c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c6c6c6c600c6c6c600c6c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6
+c6c6c6c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c600
+c6c6c6c6c600c6c600c6c6c6c600c6c6c6c600c6c600c6c6c6c6c600c6c600c6c6c600c6c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6
+c6c6c600c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c600c6c6c6c6
+00c6c6c600c6c6c600c6c6c6c600c6c6c6c600c6c6c600c6c6c600c6c6c600c6c600c6c6c6c600
+c6c600c6c6c6c600c6c600c6c6c600c6c6c6c600c6c6c6c60000c6c600c6c6c6c600c6c6c600c6
+c6c600c6c6c600c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600c6c600c6c6c6c600c6c6000000c6c6
+c6000000c6c6c6c600c6c6c6c600c6c6c6c600c6c6c6c6000000c6c6c6c600000000c6c6c6c600
+c6c600c6c6c6c600c6c6000000c600c6c6c6c6c600000000c600c6c600c6c6c6c600c6c6c6c600
+0000c6c6c6c6000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffff
+ff00000000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffff0000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000
+00c6c6c6c6c600000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000c6c6c6c6
+c6c60000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffff00000000
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000
+ffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffff
+ffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffff
+ffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffff
+ffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffff
+ffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c60000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c60000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6000000000000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000000000c6c6c6c6c6c6c6c6c6c6
+c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c600000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000000000000000000000c6c6c6c6c6c6
+c6c6c6000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000c6
+c6c6c6c6c6c6c6c6000000000000000000000000000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffff00ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff00ffffff00ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000ffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff000000000000ffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffff000000000000000000ffffffff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffffff00ffffff000000ffffffff0000ff00ffff00ffffff00ffffff000000ffff
+ffff000000ffff000000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffffff00ffff00ffffff00ffff00ffff0000ffff00ffffff00ffff00ffffff00ff
+ff00ffffff00ffff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff000000000000ffffff00ffffff00ffff00ffffff00ffff00ffffff00ffff00ffffff00ff
+ff00ffffffffffff00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffff00ffffffff0000000000ffff00ffffff00ffff00ffffff00ffff0000000000ff
+ffff000000ffffff00ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffff00ffffff00ffffffffffff00ffffff00ffff00ffffff00ffff00ffffffffff
+ffffffffff00ffff00ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffff00ffffff00ffffff00ffff00ffff0000ffff00ffffff00ffff00ffffff00ff
+ff00ffffff00ffff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffff00ffffffffff00ffffff000000ffffffff0000ff00ffffff00000000ffffff000000ffff
+ffff000000ffffff0000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ff00000000ffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00000000ff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff00ff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff00ff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffff00ffffffff00ff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffff0000ff00ffff00ffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffff0000ffffff00ffff00ffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffffffffff0000ffffffffffff00ff00ffff00ffff000000
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffff0000ffffffffffffffff0000ffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffff00ffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffff00000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ff00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff0000ffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ff0000ffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffffff0000ffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffff0000ffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffff0000ffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ff00ffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffffffffffffffffffffffffffff00ffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000ff0000ffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffff0000ff00ffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff000000ffff00ffffffff00ffffffffffffff000000ffff00
+ff00ff00ffffff00ffff000000ffff00ff00ffffffff00ff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffffff0000ffff00ff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffff00ffffff00ff00ffffff00ff00ffffffffff0000ffffffff00ffffff00ff00
+00ffff00ffffff00ff00ffffff00ff0000ffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff000000ff00ff0000ffff00ff0000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff00ffffff0000000000ffff00000000ff00ffffffffffffff0000ffff0000000000ff00
+ffffffff00ff00ffff0000000000ff00ffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffff00ffff00ffffffff00000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffffffff00ffffff00ff00ffffffffffffffffff00ff00ffffffffff00
+ffffffff00ff00ffff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00000000ffffff00ff0000ffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffffffff00ff00ffffff00ff00
+ffffffffff00ffffff00ffffff00ff00ffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffff0000ffffff00ffff000000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff0000ff00ff00ffffffffff00000000ffffff000000ffff00
+ffffffffff00ffffffff000000ffff00ffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000000000ffff00ffffffff000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffff00ffffff00ffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff000000ff0000ffffff00ffff000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff
+000000ffff0000ffffff00ffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff0000
+ffff00ffffff00ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff000000ff
+ffffff00ffffff00ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff0000ffff0000
+ffffff00ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff00
+ffffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00ffffffff
+00ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ff0000ffffffffffffff00ffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ff0000ff00ffffffffffffff00000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff000000ffffff00ffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000000000ffffff0000ffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffff00ff0000ffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00000000ffff0000ffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffff00ffff0000ffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffff0000ffff00ff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffff00ffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffff000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffff00ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000000000000000000000000000000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffff00ffff000000000000000000000000000000000000000000ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffff00ffff00ff000000000000000000000000000000ff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000ffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffff00ff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff00ffffff00ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000ffffffffffffffffffffffffff0000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffff0000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff000000000000ffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffff000000000000000000ffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff00ffffffff00ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff00ffffffff00ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffff000000000000ffff00ff00ffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffff0000000000ffffffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffff00000000000000000000ffffff00ff00ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff0000ffffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffff0000000000ff0000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffffff00ffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ffffffff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffff0000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000ffffffffff00ffffffffffffffffffffffffffffff0000ffffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000ffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffff0000ffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff00ff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000000000000000000000ffffffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffff00ffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffff0000ffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffff0000ffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000000000ffffff00ff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ff0000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffff0000ffffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff000000000000000000000000ffffffffff00ffff00ffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffff0000ffffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ffff000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00000000000000000000ffffffffffffffffffffffffffffffffff00ff00ffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000ffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff000000ffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffff
+ffffffffffffffffffffffffffffff0000ffff0000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffff0000ffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ff000000000000ffffffffffffffff00ffffffff
+ffffff00ffffff000000000000000000000000ff00ffffffff00ff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffff00ffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ff00ffffffff0000ffffffffffffff0000000000
+0000000000000000ffff00ffff0000ffff0000ff000000000000ff0000ffffffffffffffffffff
+ffffff0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffff0000ffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffff00ffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ff0000ff000000000000000000000000ffffff00
+ffffff00ffff0000ffff0000ffff00ffffff00ff00ffffffffffffff00ff000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffff00000000ffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffff00ffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000000000000000000000ffffff00ffffffffffffff00ffffff00
+00ffffff00ffff00ffffff00ffff00ffffff000000000000000000000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000ffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffff00ffff0000000000ffffffffffffffff00ffffffff
+00ffffff00ffff000000000000000000000000ffffff000000ffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000ffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffff0000000000
+0000000000000000ffffff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000ffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff00ff000000000000000000000000ffffffff
+000000ff00ffff00ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffff00ffff00ff00ffffffffffffffffffffffffffffff00ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000000000000000000000ffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ff0000000000000000000000000000000000ff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffff00000000000000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000000000000000000000ffffffffffff00ffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffff000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000000000000000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff00ffffffffffffffffffffffffffffffffffffff00ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffff00000000000000
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff000000000000000000000000000000000000000000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffff000000000000000000000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff000000000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00ff00ffffffffff00ffffffffffffffffffffffffffff00ffffffff00ff00000000ff
+ffffffffffffff00ffffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffff00ffffffffffffff00ffffffffffffffffffffffffffff00ffffffff00ff00ffffff00
+ffffffffffff00ff00ffffffffffffff00ffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff000000000000000000ff0000ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffff00ffff00ff00ff00000000ff00ffffff00ffff000000ffff00ffffffff00ff00ffffff00
+ffffffffffff00ff00ffffffff0000ff00ffff0000ff00ff00ff00ffff000000ffffff000000ff
+ffff00000000ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffff00ffff00ff0000ffff00ffff00ffffff00ff00ffffff00ff00ffffffff00ff00ffffff00
+ffffffffffff00ff00ffffff00ffff0000ff00ffff0000ff0000ffff00ffffff00ff00ffffff00
+ff00ffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ff00ffffff00ff00ffffff00ffff00ffffff00ffff00000000ff00ffffffff00ff00000000ff
+ffffffffff00ffffff00ffff00ffffff00ff00ffffff00ff00ffffff0000000000ffff0000ffff
+ffff0000ff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+0000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ff00ffffff00ff00ffffff00ffff00ffffff00ff00ffffff00ff00ffffffff00ff00ffffffff
+ffffffffff0000000000ffff00ffffff00ff00ffffff00ff00ffffff00ffffffffffffffff00ff
+ffffffff0000ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ff00ffffff00ffff00ffff0000ff00ffff0000ff00ffffffff00ff00ffffffff
+ffffffff00ffffffffff00ff00ffff0000ff00ffff0000ff00ffffff00ffffff00ff00ffffff00
+ff00ffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ff00ffffff0000ffff0000ff00ffff0000ff00ff00ffffffff00ff00ffffffff
+ffffffff00ffffffffff00ffff0000ff00ffff0000ff00ff00ffffffff000000ffffff000000ff
+ffff00000000ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+0000000000000000ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffff00000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffff00
+0000ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ffff0000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ff0000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff0000ffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ff0000ffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffff0000000000
+00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffff
+ffffffffffffffffff00000000ff00ffffffffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffff0000ffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff000000000000000000ff0000ff0000ffff00ffff00ffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffff000000000000ffffffffffffffff0000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffff0000ffffffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000ffffffffffffffff000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff000000000000000000ff0000ff0000ffff00ffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000ffff0000ffffffffffffffffff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffffffffffffff
+ffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffffffffffffff
+ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000ffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff0000ffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ff00ffff0000ff0000ff00ff0000ff0000ff00ff0000ff0000ffff00ff0000ffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffff00ffff0000ff0000ff000000000000000000ff0000ff0000ffff00ffffff0000ffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff0000
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff0000
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff0000ffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+0000ffff0000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffffffffffffffffffffffffffff00ffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff00ffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff000000ffff00ffffffff00ffffffffffffff000000ffff00
+ff00ff00ffffff00ffff000000ffff00ff00ffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ff0000000000000000000000000000000000000000000000000000000000000000000000
+000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffff00ffffff00ff00ffffff00ff00ffffffffff0000ffffffff00ffffff00ff00
+00ffff00ffffff00ff00ffffff00ff0000ffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff000000ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff00ffffff0000000000ffff00000000ff00ffffffffffffff0000ffff0000000000ff00
+ffffffff00ff00ffff0000000000ff00ffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffffffff00ffffff00ff00ffffffffffffffffff00ff00ffffffffff00
+ffffffff00ff00ffff00ffffffffff00ffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffffffff00ff00ffffff00ff00
+ffffffffff00ffffff00ffffff00ff00ffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff0000ff00ff00ffffffffff00000000ffffff000000ffff00
+ffffffffff00ffffffff000000ffff00ffffffffffff0000000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff000000ffffffffffffffff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff000000
+0000ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff00ffff
+ffff00ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffff000000ffffffff000000ffffffff0000ff00ffffffffff00ffff
+ffff00ffffff000000ffffff00ffffff000000ffffff00ff0000ffffffff0000ffffffff000000
+ffffff00ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffff00ffffff00ffff00ffffff00ffff00ffff0000ffffffffff00ffff
+ffff00ffff00ffffff00ffff00ffff00ffffff00ffff0000ffff00ffff00ffff00ffff00ffffff
+00ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffff00ffffff00ffffffffffff00ffff00ffffff00ffffffffff000000
+000000ffffffffffff00ffff00ffffffffffff00ffff00ffffff00ffff00ffffffffff00ffffff
+00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff0000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffff00ffffffffffff00ffffff00ffffff00000000ffff00ffffff00ffffffffff00ffff
+ffff00ffffff00000000ffff00ffffff00000000ffff00ffffff00ffff00ffffffffff00000000
+00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffff00ffffffffffff00ffffff00ffff00ffffff00ffff00ffffff00ffffffffff00ffff
+ffff00ffff00ffffff00ffff00ffff00ffffff00ffff00ffffff00ffff00ffffffffff00ffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffff00ffffffffffff00ffffff00ffff00ffff0000ffff00ffffff00ffffffffff00ffff
+ffff00ffff00ffff0000ffff00ffff00ffff0000ffff00ffffff00ffff00ffff00ffff00ffffff
+00ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffff000000000000ffff000000ffffffff0000ff00ffffff00000000ffffffffff000000
+0000ffffffff0000ff00ffff00ffffff0000ff00ffff00ffffff00ffffff0000ffffffff000000
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffff0000ffffff0000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff000000ffffffffffffffff0000ff00ffff000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffff000000ff00ff000000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffff00ffff0000ffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ff0000ffffff00ffffff
+00ff00ffffff00ffffffff00ffffffff00ffffff000000ffff00ffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffff0000ffff00ff0000ff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff0000ffff00ffff00ffffff
+00ffff00ff00ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ff00ffff000000ffff0000ffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff
+00ffff00ff00ffffffffff000000000000ffff00ffffff00ffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000ff00ffff00000000000000ffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff
+00ffffff00ffffffffffff00ffffffff00ffff00ffffff00ffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffff0000ffffffffffffffffff0000ffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff
+00ffff00ff00ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ff0000ffffffffffffffffff000000ffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffff00ffff00ffffff00ffff00ffffff
+00ffff00ff00ffffffffff00ffffffff00ffff00ffffff00ffff00ff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffff000000000000ff00ffff00ffffff00ffffff000000
+00ff00ffffff00ffffffff0000000000ffffffff000000ffff00ffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffff00ffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000
+0000ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff00ffffffff
+00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff00
+00ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff00
+ffffff0000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+ffffff00ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+00000000ffff0000ff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffff0000ffff00ffffff00ff000000ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+000000ff000000ffffff00ff0000ff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffff00ff00ffffff000000ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffff0000ffff00ffffff00ffff000000ffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000000000ffffff00ff0000ff000000ffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ff000000ffff0000ffff00ff00000000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00000000ffff000000ffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffff00ffff0000ff0000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00000000ffffff00ffffffff0000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000
+000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000000000ff00ffffffffffff000000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ff0000ffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffff00ff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00ffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffff000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000ffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000ffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffff000000ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff00ffffff00ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+00000000000000000000000000ffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff00ffffff00ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffff0000000000ffffff0000ffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff
+ffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff000000000000ffffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff
+ffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffff000000000000000000ffffffff0000ffffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff
+ffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffff000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000000000000000ffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff0000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff000000ffffffffffffffff000000ffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffff0000ffffffffffffffffff00ffff00ffff00ff00
+ffffffffffffffffffffff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffff0000ffffffffffffff00ffff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffff0000ffffffff00ff00ff00ffff00ff00
+00000000000000000000ff000000ff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff000000ffffffffffffffff0000ffff00ff00ff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffffffffffffff0000ffff00ff00ffff00ff00
+00000000000000000000ffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff0000ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff0000ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff0000ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000ff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ff0000ffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+ffffffffffffffffffffffffffffff0000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ff00
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00ffff
+ffffffffffffffffffffffffffffffff00ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000
+0000000000000000000000000000000000ffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffff000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff0000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000000000ffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffff000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffff00000000000000000000000000000000
+0000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff0000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffff00ffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffff00000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000000000000000000000
+000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffff00000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ff00000000000000000000000000000000000000000000000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff0000ffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff00ff00ff0000
+ff00ff0000ff0000ff00ff0000ff0000ff00ffff00ff0000ffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffff00ff00000000
+0000ff0000ff0000ff000000000000000000ffff00ffffff0000ffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffff0000ffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffff0000ffff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff00ff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000
+00000000000000000000000000000000000000000000000000000000000000ff00000000000000
+000000000000000000000000000000000000000000000000000000000000000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffffffffffffffffffffffffffff00ffffffffff00000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffffffffffffffffffffffffff00ffffffff00ffffffff00ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff000000ffff00ffffffff00ffffffffffffff000000ffff00
+ff00ff00ffffff00ffff000000ffff00ff00ffffffff00000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000ffff00ffffff00ff00ffffff00ff00ffffffffff0000ffffffff00ffffff00ff00
+00ffff00ffffff00ff00ffffff00ff0000ffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffff00ffffff0000000000ffff00000000ff00ffffffffffffff0000ffff0000000000ff00
+ffffffff00ff00ffff0000000000ff00ffffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffffffff00ffffff00ff00ffffffffffffffffff00ff00ffffffffff00
+ffffffff00ff00ffff00ffffffffff00ffffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffff00ffff00ffffff00ff00ffff0000ff00ffffffff00ffffffff00ff00ffffff00ff00
+ffffffffff00ffffff00ffffff00ff00ffffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffff00ffff000000ffffff0000ff00ff00ffffffffff00000000ffffff000000ffff00
+ffffffffff00ffffffff000000ffff00ffffffffffff00ffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ffffffffffffffffff00
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffff0000000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffff0000ff0000ffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffff00000000000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffff0000ffffffffffffffffffffffff0000
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffff0000ffffffff000000
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffff0000ffff0000ffff0000ff0000000000
+0000ff0000ffffffff0000ffffff0000000000ffffff0000ffffffffffff0000ffffffffff0000
+ffffffff000000ffffffff0000ff0000ff0000ffffff0000ffffffff000000ffffffff0000ff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff0000000000000000
+0000ff0000ffffffff0000ffff00000000000000ffff0000ffffffffffff00000000ffffffffff
+ffffff0000000000ffffff0000000000ff0000ffffff0000ffffff0000000000ffffff00000000
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff000000ffffff0000
+ffffff0000ffffffff0000ffff0000ffffff0000ffff0000ffffffffffffff000000000000ffff
+ffff0000ffffff0000ffff000000ffffff0000ffffff0000ffff0000ffffff0000ffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff0000ffffff0000ffffff0000ffff0000ffffffff0000
+ffffff0000ffffffff0000ffffffffff00000000ffff0000ffffffffffffffffff0000000000ff
+ffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000000000ffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ffff0000ffffffff0000
+ffffff0000ffffffff0000ffffff000000000000ffff0000ffffffffffffffffffffffff000000
+ffff00000000000000ffff0000ffffffffff0000ff0000ffffff00000000000000ffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ff0000ffffffff0000ffff0000ffffffff0000
+ffffff0000ffffffff0000ffff000000ffff0000ffff0000ffffffffffff0000ffffffffff0000
+ffff0000ffffffffffffff0000ffffffffff0000ff0000ffffff0000ffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffffff0000
+ffffff0000ffffff000000ffff0000ffffff0000ffff0000ffffffffffff000000ffffff000000
+ffff000000ffff0000ffff0000ffffffffffff000000ffffffff000000ffff0000ffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffffff0000
+0000ff0000000000000000ffff00000000000000ffff0000ffffffffffffff00000000000000ff
+ffffff0000000000ffffff0000ffffffffffff000000ffffffffff0000000000ffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff000000ffffffffff0000ffff0000ffffffffff00
+0000ffff00000000ff0000ffffff00000000ff0000ff0000ffffffffffffffff0000000000ffff
+ffffffff000000ffffffff0000ffffffffffff000000ffffffffffff000000ffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff0000ffff000000
+00000000ffffffffffffff00000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff0000ffff000000
+0000000000ffffffffffff00000000000000000000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff0000ff
+ffffff000000ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffff0000ffff0000ffffff0000000000ffffffffffffff0000ffff0000ff
+ffffffff0000ffffffffffffffffff0000ffffffffff0000ffffffff0000ffff0000ff00000000
+ffffff0000ff00000000ffffffffff000000ffffffff0000ffff0000ffff0000ff00000000ffff
+ffffff000000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffff0000ffff0000ffff00000000000000ffffffffffff0000ffff0000ff
+ffffff000000ffffffffffffffffff0000ffffffffff0000ffffffff0000ffff00000000000000
+00ffff0000000000000000ffffff0000000000ffffff0000ffff0000ffff0000000000000000ff
+ffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffff0000ffff0000ffff0000ffffff0000ffffffffffff0000ffff000000
+0000000000ffffffffffffffffffff0000ffffffffff0000ffffffff0000ffff000000ffffff00
+00ffff000000ffffff0000ffff0000ffffff0000ffff0000ffff0000ffff000000ffffff0000ff
+ff000000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ff0000ffffff0000ffffffffff00000000ffffffffffff0000ffff000000
+00000000ffffffffffffffffffffff0000ffffffffff0000ffffffff0000ffff0000ffffffff00
+00ffff0000ffffffff0000ffff00000000000000ffff0000ffff0000ffff0000ffffffff0000ff
+ff0000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ff0000ffffff0000ffffff000000000000ffffffffffff0000ffff0000ff
+ffffffffffffffffffffffffffffff0000ffffffffff0000ffffffff0000ffff0000ffffffff00
+00ffff0000ffffffff0000ffff00000000000000ffff0000ffff0000ffff0000ffffffff0000ff
+ff0000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff0000ff0000ffffff0000ffff000000ffff0000ffffffffffff0000ffff0000ff
+ffffffffffffffffffffffffffffff0000ffffffffff0000ffffffff0000ffff0000ffffffff00
+00ffff0000ffffffff0000ffff0000ffffffffffffff0000ffff0000ffff0000ffffffff0000ff
+ff0000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ffffffff0000ffff0000ffffff0000ffffffffffff0000ffff0000ff
+ffffffffffffffffffffffffffffff0000ffffffffff0000ffffff000000ffff0000ffffffff00
+00ffff0000ffffffff0000ffff000000ffff0000ffff0000ffff0000ffff0000ffffffff0000ff
+ff000000ffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ffffffff0000ffff00000000000000ffffffffffff0000ffff0000ff
+ffffffffffffffffffffffffffffff0000ffffffffff0000000000000000ffff0000ffffffff00
+00ffff0000ffffffff0000ffffff0000000000ffffff0000ffff0000ffff0000ffffffff0000ff
+ffff00000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff000000ffffffff0000ffffff00000000ff0000ffffffffff0000ffff0000ff
+ffffffffffffffffffffffffffffff0000ffffffffffff00000000ff0000ffff0000ffffffff00
+00ffff0000ffffffff0000ffffffff000000ffffffff0000ffff0000ffff0000ffffffff0000ff
+ffffff000000ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff00ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000ff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00
+ffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffff00ffffffff00000000ffffffffffffffffffffffffffffffffffffffffff0000
+00ffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffff00000000ffffffff00000000ffffffff00ffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
+showpage
+end
+%%EOF
+%%EndDocument
+end PEND(Figure 4: Architecture of a virtual serv)173.79 580.064 Q
+(er via IP tunneling)-.15 E .197(The w)72 601.664 R(ork\215o)-.1 E 2.697
+(wo)-.25 G 2.697(fv)-2.697 G .197(irtual serv)-2.697 F .197
+(er via IP tunneling is as follo)-.15 F .196
+(ws: When a user accesses the service pro)-.25 F .196(vided by)-.15 F
+.823(the serv)72 613.664 R .823(er cluster)-.15 F 3.323(,t)-.4 G .823
+(he pack)-3.323 F .824(et destined for virtual IP address \(the IP addr\
+ess for the load balancer\) arri)-.1 F -.15(ve)-.25 G(s.).15 E 1.494
+(The load balancer e)72 625.664 R 1.493(xamines the pack)-.15 F(et')-.1
+E 3.993(sd)-.55 G 1.493(estination address and port. If the)-3.993 F
+3.993(ya)-.15 G 1.493(re matched for a virtual)-3.993 F(serv)72 637.664
+Q 1.268(er service, a real serv)-.15 F 1.268(er is chosen from the clus\
+ter by a scheduling algorithm, and the connection is)-.15 F .084(added \
+into the hash table which record all established connections. Then, the\
+ load balancer encapsulates the)72 649.664 R(pack)72 661.664 Q .834
+(et within an IP datagram and forw)-.1 F .835
+(ards it to the chosen serv)-.1 F(er)-.15 E 3.335(.W)-.55 G .835
+(hen the incoming pack)-3.335 F .835(et belongs to)-.1 F .365
+(this connection and the chosen serv)72 673.664 R .364
+(er can be found in the hash table, the pack)-.15 F .364(et will be ag)
+-.1 F .364(ain encapsulated)-.05 F .894(and forw)72 685.664 R .894
+(arded to the serv)-.1 F(er)-.15 E 3.394(.W)-.55 G .894(hen the serv)
+-3.394 F .894(er recei)-.15 F -.15(ve)-.25 G 3.394(st).15 G .894
+(he encapsulated pack)-3.394 F .894(et, it decapsulates the pack)-.1 F
+(et)-.1 E .553(and processes the request, \214nally returns the result \
+to the user directly)72 697.664 R 3.052(.W)-.65 G .552
+(hen the connection terminates or)-3.052 F
+(timeouts, the connection record will be remo)72 709.664 Q -.15(ve)-.15
+G 2.5(df).15 G(rom the hash table.)-2.5 E EP
+%%Page: 8 8
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-8-)282.17 48 Q .54(Note that real serv)72 84 R
+.54(ers can ha)-.15 F .84 -.15(ve a)-.2 H .84 -.15(ny r).15 H .541
+(eal IP address in an).15 F 3.041(yn)-.15 G(etw)-3.041 E .541(ork, the)
+-.1 F 3.041(yc)-.15 G .541(an be geographically distrib)-3.041 F(uted,)
+-.2 E -.2(bu)72 96 S 3.565(tt).2 G(he)-3.565 E 3.565(ym)-.15 G 1.065
+(ust support IP encapsulation protocol and the)-3.565 F 3.565(ya)-.15 G
+1.065(ll ha)-3.565 F 1.365 -.15(ve o)-.2 H 1.065(ne of their tunnel de)
+.15 F 1.065(vices con\214gured)-.25 F 1.159(with <V)72 108 R 1.159
+(irtual IP Address>, lik)-.6 F 3.659(e")-.1 G 1.159(ifcon\214g tunl0 <V)
+-3.659 F 1.159(irtual IP Address>" in Linux.)-.6 F 1.16
+(When the encapsulated)6.16 F(pack)72 120 Q .275(et arri)-.1 F -.15(ve)
+-.25 G .274(s, the real serv).15 F .274
+(er decapsulates it and \214nds that the pack)-.15 F .274
+(et is destined for <V)-.1 F .274(irtual IP Address>,)-.6 F(so it proce\
+sses the request and returns the result directly to the user in the end\
+.)72 132 Q/F1 15/Times-Bold@0 SF 3.75(3.3. Adv)72 162 R
+(antages and Disadv)-.15 E(antages)-.15 E/F2 14/Times-Bold@0 SF 3.5
+(3.3.1. V)72 192 R(irtual ser)-.518 E -.14(ve)-.14 G 3.5(rv).14 G(ia N)
+-3.5 E -1.33(AT)-.28 G F0 .452(The adv)72 214.8 R .452
+(antage of the virtual serv)-.25 F .452(er via N)-.15 F 2.672 -1.11
+(AT i)-.35 H 2.952(st)1.11 G .452(hat real serv)-2.952 F .452
+(ers can run an)-.15 F 2.953(yo)-.15 G .453
+(perating system that supports)-2.953 F .865(TCP/IP protocol, real serv)
+72 226.8 R .864(ers can use pri)-.15 F -.25(va)-.25 G .864
+(te Internet addresses, and only an IP address is needed for the).25 F
+(load balancer)72 238.8 Q(.)-.55 E .89(The disadv)72 254.4 R .89
+(antage is that the scalability of the virtual serv)-.25 F .891
+(er via N)-.15 F 3.111 -1.11(AT i)-.35 H 3.391(sn)1.11 G .891(ot v)
+-3.391 F .891(ery good. The load balancer)-.15 F .601
+(may be a bottleneck of the whole system when the number of serv)72
+266.4 R .6(er nodes increase to around 25 or more)-.15 F .144
+(which depends on the throughout of real serv)72 278.4 R .145
+(ers, because both the request pack)-.15 F .145(ets and the reply pack)
+-.1 F .145(ets are)-.1 F .771(need to be re)72 290.4 R .771
+(written by the load balancer)-.25 F 3.271(.S)-.55 G .771
+(upposing the a)-3.271 F -.15(ve)-.2 G .77(rage length of TCP pack).15 F
+.77(ets is 536 Bytes, the)-.1 F -2.25 -.2(av e)72 302.4 T .109
+(rage delay of re).2 F .109(writing a pack)-.25 F .109
+(et is around 60us \(on the Pentium processor)-.1 F 2.61(,t)-.4 G .11
+(his can be reduced a little by)-2.61 F .986(using of f)72 314.4 R .986
+(aster processor\), the maximum throughout of the load balancer is 8.93\
+ Mbytes/s. The load bal-)-.1 F(ancer can schedule 22 real serv)72 326.4
+Q(ers if the a)-.15 E -.15(ve)-.2 G(rage throughout of real serv).15 E
+(ers is 400KBytes/s.)-.15 E -.6(Vi)72 342 S 1.643(rtual serv).6 F 1.643
+(er via N)-.15 F 3.863 -1.11(AT c)-.35 H 1.644
+(an meet the performance request of man)1.11 F 4.144(ys)-.15 G(erv)
+-4.144 E 4.144(ers. When)-.15 F 1.644(the load balancer is)4.144 F .524
+(becoming a bottleneck of the whole system, there are tw)72 354 R 3.024
+(om)-.1 G .524(ethods to solv)-3.024 F 3.024(ei)-.15 G .524
+(t, one is the virtual serv)-3.024 F .524(er via)-.15 F .824
+(IP tunneling, and the other is the h)72 366 R .824
+(ybrid approach. In the h)-.05 F .824(ybrid approach, there are man)-.05
+F 3.325(yl)-.15 G .825(oad balancers)-3.325 F .977(which all ha)72 378 R
+1.276 -.15(ve t)-.2 H .976(heir o).15 F .976(wn serv)-.25 F .976(er clu\
+sters, and the load balancers are grouped at a single domain name by)
+-.15 F(Round-Round DNS.)72 390 Q F2 3.5(3.3.2. V)72 420 R(irtual ser)
+-.518 E -.14(ve)-.14 G 3.5(rv).14 G(ia IP tunneling)-3.5 E F0 2.304 -.8
+(We c)72 442.8 T .704(an see from man).8 F 3.204(yI)-.15 G .705
+(nternet services \(such as web service\) that the incoming pack)-3.204
+F .705(ets are al)-.1 F -.1(wa)-.1 G .705(ys short).1 F .06
+(and reply pack)72 454.8 R .06(ets al)-.1 F -.1(wa)-.1 G .06
+(ys carry lar).1 F .059(ge amount of data. In the virtual serv)-.18 F
+.059(er via IP tunneling, the load balancer)-.15 F .564
+(just schedules requests to the dif)72 466.8 R .565(ferent real serv)
+-.25 F .565(ers, and the real serv)-.15 F .565
+(ers return replies directly to the users.)-.15 F 1.441(Thus the load b\
+alancer can handle huge amount of requests; it may schedule o)72 478.8 R
+-.15(ve)-.15 G 3.94(r1).15 G 1.44(00 real serv)-3.94 F 1.44(ers and)-.15
+F -.1(wo)72 490.8 S(n').1 E 3.711(tb)-.18 G 3.711(et)-3.711 G 1.211(he \
+bottleneck of the system. Therefore, using IP tunneling will greatly in\
+crease the maximum)-3.711 F .388(number of serv)72 502.8 R .388
+(er nodes for a load balancer)-.15 F 2.888(.T)-.55 G .388
+(he maximum throughout of the virtual serv)-2.888 F .387(er may reach o)
+-.15 F -.15(ve)-.15 G(r).15 E(1Gbps, e)72 514.8 Q -.15(ve)-.25 G 2.5(ni)
+.15 G 2.5(ft)-2.5 G(he load balancer just has 100Mbps full-duple)-2.5 E
+2.5(xn)-.15 G(etw)-2.5 E(ork adapter)-.1 E(.)-.55 E 1.151
+(The IP tunneling feature can be used to b)72 530.4 R 1.151(uild a v)-.2
+F 1.151(ery high-performance virtual serv)-.15 F(er)-.15 E 3.652(,e)-.4
+G 1.152(xtremely good to)-3.802 F -.2(bu)72 542.4 S .056
+(ild a virtual proxy cache serv).2 F(er)-.15 E 2.555(,b)-.4 G .055
+(ecause when the proxy serv)-2.555 F .055(ers recei)-.15 F .355 -.15
+(ve r)-.25 H .055(equest, it can access the Internet).15 F
+(directly to fetch objects and return them directly to the users.)72
+554.4 Q(Ho)72 570 Q(we)-.25 E -.15(ve)-.25 G 1.752 -.4(r, v).15 H .952
+(irtual serv).4 F .952(er via IP tunneling requires real serv)-.15 F
+.952(ers support IP T)-.15 F .953(unneling protocol. This feature)-.45 F
+.636(has been tested with serv)72 582 R .636(ers running Linux.)-.15 F
+.636(Since the IP tunneling protocol is becoming a standard of all)5.636
+F .942(operating systems, virtual serv)72 594 R .942
+(er via IP tunneling should be applicable to serv)-.15 F .943
+(ers running other operating)-.15 F(systems.)72 606 Q/F3 16/Times-Bold@0
+SF 4(4. Scheduling)72 639 R(Algorithms)4 E F0 3.056 -.8(We h)72 669 T
+-2.25 -.2(av e).8 H 1.455
+(implemented four scheduling algorithms for selecting a serv)4.156 F
+1.455(er from the cluster: Round-Robin,)-.15 F -.8(We)72 681 S 1.375
+(ighted Round-Robin, Least-Connection and W).8 F 1.375
+(eighted Least-Connection. The \214rst tw)-.8 F 3.875(oa)-.1 G 1.375
+(lgorithms are)-3.875 F(self-e)72 693 Q(xplanatory)-.15 E 3.299(,b)-.65
+G .799(ecause the)-3.299 F 3.299(yd)-.15 G(on')-3.299 E 3.299(th)-.18 G
+-2.25 -.2(av e)-3.299 H(an)3.499 E 3.299(yl)-.15 G .799
+(oad information about the serv)-3.299 F .798(ers. The last tw)-.15 F
+3.298(oa)-.1 G(lgorithms)-3.298 E .139(count acti)72 705 R .439 -.15
+(ve c)-.25 H .139(onnection number for each serv).15 F .14
+(er and estimate their load based on those connection numbers.)-.15 F EP
+%%Page: 9 9
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-9-)282.17 48 Q/F1 15/Times-Bold@0 SF 3.75
+(4.1. Round-Robin)72 84 R(Scheduling)3.75 E F0 1.196
+(Round-robin scheduling algorithm, in its w)72 106.8 R 1.196
+(ord meaning, directs the netw)-.1 F 1.196(ork connections to the dif)
+-.1 F(ferent)-.25 E(serv)72 118.8 Q .185(ers in the round-robin manner)
+-.15 F 2.686(.I)-.55 G 2.686(tt)-2.686 G .186(reats all real serv)-2.686
+F .186(ers as equals re)-.15 F -.05(ga)-.15 G .186
+(rdless of number of connections or).05 F .286
+(response time. Although the round-robin DNS w)72 130.8 R .285
+(orks in this w)-.1 F(ay)-.1 E 2.785(,t)-.65 G .285(here are quite dif)
+-2.785 F .285(ferent. The round-robin)-.25 F .404(DNS resolv)72 142.8 R
+.404(es the single domain to the dif)-.15 F .405
+(ferent IP addresses, the scheduling granularity is host-based, and)-.25
+F .203(the caching of DNS hinder the algorithm tak)72 154.8 R 2.703(ee)
+-.1 G -.25(ff)-2.703 G .203
+(ect, which will lead to signi\214cant dynamic load imbalance).25 F .628
+(among the real serv)72 166.8 R .629
+(ers. The scheduling granularity of virtual serv)-.15 F .629(er is netw)
+-.15 F .629(ork connection-based, and it is)-.1 F(more superior to the \
+round-robin DNS due to the \214ne scheduling granularity)72 178.8 Q(.)
+-.65 E F1 3.75(4.2. W)72 208.8 R(eighted Round-Robin Scheduling)-.975 E
+F0 1.689(The weighted round-robin scheduling can treat the real serv)72
+231.6 R 1.689(ers of dif)-.15 F 1.689
+(ferent processing capacities. Each)-.25 F(serv)72 243.6 Q .642
+(er can be assigned a weight, an inte)-.15 F .642
+(ger that indicates the processing capacity)-.15 F 3.143(.T)-.65 G .643
+(he def)-3.143 F .643(ault weight is 1.)-.1 F -.15(Fo)72 255.6 S 4.57
+(re).15 G 2.07(xample, the real serv)-4.72 F 2.07(ers, A, B and C, ha)
+-.15 F 2.369 -.15(ve t)-.2 H 2.069(he weights, 4, 3, 2 respecti).15 F
+-.15(ve)-.25 G(ly).15 E 4.569(,ag)-.65 G 2.069(ood scheduling)-4.569 F
+1.707(sequence will be ABCABCAB)72 267.6 R 4.207(Ai)-.35 G 4.207(nas)
+-4.207 G 1.707(cheduling period \(mod sum\(W)-4.207 F 4.207(i\)\). In)
+-.4 F 1.708(the implementation of the)4.207 F .472(weighted round-robin\
+ scheduling, a scheduling sequence will be generated according to the s\
+erv)72 279.6 R .471(er weights)-.15 F 1.465
+(after the rules of virtual serv)72 291.6 R 1.466
+(er are modi\214ed. The netw)-.15 F 1.466
+(ork connections are directed to the dif)-.1 F 1.466(ferent real)-.25 F
+(serv)72 303.6 Q
+(ers based on the scheduling sequence in a round-robin manner)-.15 E(.)
+-.55 E .825(The weighted round-robin scheduling doesn')72 319.2 R 3.324
+(tn)-.18 G .824(eed to count the netw)-3.324 F .824
+(ork connections for each real serv)-.1 F(er)-.15 E(,)-.4 E 1.996
+(and the o)72 331.2 R -.15(ve)-.15 G 1.996(rhead of scheduling is small\
+er than dynamic scheduling algorithms, it can ha).15 F 2.296 -.15(ve m)
+-.2 H 1.996(ore real).15 F(serv)72 343.2 Q .083(ers. Ho)-.15 F(we)-.25 E
+-.15(ve)-.25 G .883 -.4(r, i).15 H 2.583(tm).4 G .082
+(ay lead to dynamic load imbalance among the real serv)-2.583 F .082
+(ers if the load of requests v)-.15 F(ary)-.25 E(highly)72 355.2 Q 2.5
+(.I)-.65 G 2.5(ns)-2.5 G(hort, it is still possible that most of long r\
+equests may be directed to a real serv)-2.5 E(er)-.15 E(.)-.55 E F1 3.75
+(4.3. Least-Connection)72 385.2 R(Scheduling)3.75 E F0 .456
+(The least-connection scheduling algorithm directs netw)72 408 R .456
+(ork connections to the serv)-.1 F .456(er with the least number)-.15 F
+.527(of acti)72 420 R .827 -.15(ve c)-.25 H .526(onnections. This is on\
+e of dynamic scheduling algorithms, because it needs to count acti).15 F
+.826 -.15(ve c)-.25 H(on-).15 E .515(nections for each serv)72 432 R
+.515(er dynamically)-.15 F 3.015(.A)-.65 G 3.015(tav)-3.015 G .515
+(irtual serv)-3.015 F .515(er where there is a collection of serv)-.15 F
+.516(ers with similar)-.15 F .239
+(performance, the least-connection scheduling is good to smooth distrib)
+72 444 R .238(ution when the load of requests v)-.2 F(ary)-.25 E 2.5(al)
+72 456 S(ot, because all long requests w)-2.5 E(on')-.1 E 2.5(th)-.18 G
+-2.25 -.2(av e)-2.5 H(chance to be directed to a serv)2.7 E(er)-.15 E(.)
+-.55 E .04(At a \214rst look, the least-connection scheduling can also \
+perform well e)72 471.6 R -.15(ve)-.25 G 2.54(nw).15 G .04
+(hen there are serv)-2.54 F .04(ers of v)-.15 F(arious)-.25 E .962
+(processing capacities, because the f)72 483.6 R .962(aster serv)-.1 F
+.962(er will get more netw)-.15 F .962(ork connections. In f)-.1 F .962
+(act, it cannot per)-.1 F(-)-.2 E 1.214(form v)72 495.6 R 1.214
+(ery well because of the TCP')-.15 F 3.714(sT)-.55 G(IME_W)-3.714 E
+1.214(AIT state. The TCP')-1.2 F 3.714(sT)-.55 G(IME_W)-3.714 E 1.214
+(AIT is usually 2 minutes,)-1.2 F 1.069(between this 2 minutes a b)72
+507.6 R 1.068(usy web site often get thousands of connections, for e)-.2
+F 1.068(xample, the serv)-.15 F 1.068(er A is)-.15 F .641(twice as po)72
+519.6 R .641(werful as the serv)-.25 F .641(er B, the serv)-.15 F .641
+(er A has processing thousands of requests and k)-.15 F .641
+(ept them in the)-.1 F(TCP')72 531.6 Q 3.2(sT)-.55 G(IME_W)-3.2 E .7
+(AIT state, b)-1.2 F .7(ut the serv)-.2 F .7(er B is lagging to get its\
+ thousands of connections \214nished. So, the)-.15 F .856
+(least-connection scheduling cannot get load well balanced among serv)72
+543.6 R .856(ers with v)-.15 F .856(arious processing capaci-)-.25 F
+(ties.)72 555.6 Q F1 3.75(4.4. W)72 585.6 R
+(eighted Least-Connection Scheduling)-.975 E F0 1.185(The weighted leas\
+t-connection scheduling is a superset of the least-connection schedulin\
+g, in which you)72 608.4 R .556
+(can assign a performance weight to each real serv)72 620.4 R(er)-.15 E
+3.057(.T)-.55 G .557(he serv)-3.057 F .557(ers with a higher weight v)
+-.15 F .557(alue will recei)-.25 F .857 -.15(ve a)-.25 H(lar)72 632.4 Q
+1.977(ger percentage of acti)-.18 F 2.277 -.15(ve c)-.25 H 1.977
+(onnections at an).15 F 4.477(yo)-.15 G 1.977(ne time. The virtual serv)
+-4.477 F 1.976(er administrator can assign a)-.15 F .074
+(weight to each real serv)72 644.4 R(er)-.15 E 2.574(,a)-.4 G .075
+(nd netw)-2.574 F .075(ork connections are scheduled to each serv)-.1 F
+.075(er in which the percentage of)-.15 F(the current number of acti)72
+656.4 Q .3 -.15(ve c)-.25 H(onnections for each serv).15 E
+(er is a ratio to its weight. The def)-.15 E(ault weight is one.)-.1 E
+(The weighted least-connections scheduling w)72 672 Q(orks as follo)-.1
+E(ws:)-.25 E .429(Supposing there is n real serv)97 687.6 R .429
+(ers, each serv)-.15 F .429(er i has weight W)-.15 F 2.928(i\()-.4 G
+.428(i=1,..,n\) and acti)-2.928 F .728 -.15(ve c)-.25 H(onnections).15 E
+.214(Ci \(i=1,..,n\), ALL_CONNECTIONS is the sum of Ci \(i=1,..,n\), th\
+e netw)97 699.6 R .215(ork connection will be)-.1 F
+(directed to the serv)97 711.6 Q(er j, in which)-.15 E(\()118.48 729.6 Q
+/F2 10/Times-Italic@0 SF(C)-.16 E/F3 7/Times-Italic@0 SF(j)1.648 2 M F0
+(/).836 -2 M F2(ALL)1.01 E F0(_).53 E F2(CONNECTIONS)-.16 E F0(\)/).58 E
+F2(W)-.21 E F3(j)1.648 2 M/F4 10/Symbol SF(=)3.636 -2 M F0(min)2.8 E({)
+1.7 -.105 M(\().105 I F2(C)-.16 E F3(i).437 2 M F0(/).752 -2 M F2(ALL)
+1.01 E F0(_).53 E F2(CONNECTIONS)-.16 E F0(\)/).58 E F2(W)-.21 E F3(i)
+.437 2 M F0(}).752 -2.105 M(\().105 I F2(i).01 E F4(=)3.16 E F0 -.8
+(1, . . ,)2.8 F F2(n)2.06 E F0(\)).24 E EP
+%%Page: 10 10
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-10-)279.67 48 Q .506(Since the ALL_CONNECTIONS\
+ is a constant in this lookup, there is no need to di)97 84 R .506
+(vide Ci by)-.25 F(ALL_CONNECTIONS, it can be optimized as)97 96 Q/F1 10
+/Times-Italic@0 SF(C)219.74 114 Q/F2 7/Times-Italic@0 SF(j)1.648 2 M F0
+(/).836 -2 M F1(W)-.21 E F2(j)1.648 2 M/F3 10/Symbol SF(=)3.636 -2 M F0
+(min)2.8 E({)1.7 -.105 M F1(C)-.16 .105 M F2(i).437 2 M F0(/).752 -2 M
+F1(W)-.21 E F2(i).437 2 M F0(}).752 -2.105 M(\().105 I F1(i).01 E F3(=)
+3.16 E F0 -.8(1, . . ,)2.8 F F1(n)2.06 E F0(\)).24 E .536(The weighted \
+least-connection scheduling algorithm requires additional di)72 135.6 R
+.536(vision than the least-connection.)-.25 F .143
+(In a hope to minimize the o)72 147.6 R -.15(ve)-.15 G .143
+(rhead of scheduling when serv).15 F .143(ers ha)-.15 F .443 -.15(ve t)
+-.2 H .143(he same processing capacity).15 F 2.643(,b)-.65 G .142
+(oth the)-2.643 F(least-connection scheduling and the weighted least-co\
+nnection scheduling algorithms are implemented.)72 159.6 Q/F4 16
+/Times-Bold@0 SF 4(5. High)72 192.6 R -.96 -1.6(Av a)4 H(ilability)1.6 E
+F0 .084(As more and more critical commercial applications mo)72 222.6 R
+.384 -.15(ve o)-.15 H 2.584(nt).15 G .084(he Internet, pro)-2.584 F .085
+(viding highly a)-.15 F -.25(va)-.2 G .085(ilable serv).25 F(ers)-.15 E
+1.038(becomes increasingly important. One of the adv)72 234.6 R 1.037
+(antages of a clustered system is that it has hardw)-.25 F 1.037
+(are and)-.1 F(softw)72 246.6 Q .323(are redundanc)-.1 F 1.623 -.65
+(y. H)-.15 H .323(igh a).65 F -.25(va)-.2 G .323(ilability can be pro)
+.25 F .324(vided by detecting node or daemon f)-.15 F .324
+(ailures and recon\214g-)-.1 F .096
+(uring the system appropriately so that the w)72 258.6 R .096
+(orkload can be tak)-.1 F .096(en o)-.1 F -.15(ve)-.15 G 2.596(rb).15 G
+2.596(yt)-2.596 G .096(he remaining nodes in the cluster)-2.596 F(.)-.55
+E 1.526(The high a)72 274.2 R -.25(va)-.2 G 1.527
+(ilability of virtual serv).25 F 1.527(er is no)-.15 F 4.027(wp)-.25 G
+(ro)-4.027 E 1.527(vided by using of "mon")-.15 F/F5 7/Times-Roman@0 SF
+(15)-4.1 I F0 1.527(and "f)4.027 4.1 N(ak)-.1 E(e")-.1 E F5(16)-4.1 I F0
+(softw)4.027 4.1 M 1.527(are. The)-.1 F 1.457("mon" is a general-purpos\
+e resource monitoring system, which can be used to monitor netw)72 286.2
+R 1.457(ork service)-.1 F -.2(av)72 298.2 S(ailability and serv)-.05 E
+(er nodes. F)-.15 E(ak)-.15 E 2.5(ei)-.1 G 2.5(sI)-2.5 G 2.5(Pt)-2.5 G
+(ak)-2.5 E(e-o)-.1 E -.15(ve)-.15 G 2.5(rs).15 G(oftw)-2.5 E
+(are by using of ARP spoo\214ng.)-.1 E .211(The serv)72 313.8 R .211
+(er f)-.15 F(ailo)-.1 E -.15(ve)-.15 G 2.711(ri).15 G 2.711(sh)-2.711 G
+.211(andle as follo)-2.711 F .211
+(ws: The "mon" daemon is running on the load balancer to monitor ser)
+-.25 F(-)-.2 E .375(vice daemons and serv)72 325.8 R .375
+(er nodes in the cluster)-.15 F 5.374(.T)-.55 G .374
+(he fping.monitor is con\214gured to detect whether the serv)-5.374 F
+(er)-.15 E .445(nodes is ali)72 337.8 R .745 -.15(ve e)-.25 H -.15(ve)
+-.1 G .445(ry t seconds, and the relati).15 F .745 -.15(ve s)-.25 H .445
+(ervice monitor is also con\214gured to detect the service dae-).15 F .6
+(mons on all the nodes e)72 349.8 R -.15(ve)-.25 G .6(ry m minutes. F)
+.15 F .6(or e)-.15 F .6
+(xample, http.monitor can be used to check the http services;)-.15 F
+.284(ftp.monitor is for the ftp services, and so on. An alert w)72 361.8
+R .284(as written to remo)-.1 F -.15(ve)-.15 G .284
+(/add a rule in the virtual serv).15 F(er)-.15 E .019
+(table while detecting the serv)72 373.8 R .019(er node or daemon is do)
+-.15 F 2.519(wn/up. Therefore,)-.25 F .018
+(the load balancer can automatically)2.518 F
+(mask service daemons or serv)72 385.8 Q(ers f)-.15 E
+(ailure and put them into service when the)-.1 E 2.5(ya)-.15 G(re back.)
+-2.5 E(No)72 401.4 Q 1.854 -.65(w, t)-.25 H .554
+(he load balancer becomes a single f).65 F .554
+(ailure point of the whole system.)-.1 F .555(In order to pre)5.555 F
+-.15(ve)-.25 G .555(nt the f).15 F(ailure)-.1 E .465
+(of the load balancer)72 413.4 R 2.965(,s)-.4 G .465(etup a backup serv)
+-2.965 F .465(er of the load balancer)-.15 F 2.965(,t)-.4 G .465(he "f)
+-2.965 F(ak)-.1 E .465(e" softw)-.1 F .464(are is used for the backup)
+-.1 F .484(to tak)72 425.4 R(eo)-.1 E -.15(ve)-.15 G 2.984(rt).15 G .484
+(he IP addresses of the load balancer when the load balancer f)-2.984 F
+.484(ails. Ag)-.1 F .485(ain, the "mon" is used to)-.05 F .257
+(detect the status of the load balancer to acti)72 437.4 R -.25(va)-.25
+G(te/deacti).25 E -.25(va)-.25 G .256(te the "f).25 F(ak)-.1 E .256
+(e" on the backup serv)-.1 F(er)-.15 E 2.756(.T)-.55 G .256
+(he "mon" dae-)-2.756 F .728(mon also runs on the backup so that the ba\
+ckup has current status of the cluster)72 449.4 R 5.728(.W)-.55 G .728
+(hen the primary f)-5.728 F(ails,)-.1 E .05(the backup will tak)72 461.4
+R 2.55(eo)-.1 G -.15(ve)-2.7 G 2.55(ri).15 G .049
+(ts IP address\(es\) to continue to pro)-2.55 F .049(vide services, ho)
+-.15 F(we)-.25 E -.15(ve)-.25 G 2.549(rt).15 G .049
+(he established connec-)-2.549 F .37(tion in the hash table will be los\
+t in the current implementation, which will require the clients to send\
+ their)72 473.4 R(requests ag)72 485.4 Q(ain.)-.05 E F4 4(6. Conclusion)
+72 518.4 R(and Futur)4 E 4(eW)-.288 G(ork)-5.2 E F0 2.073 -.8(We h)72
+548.4 T -2.25 -.2(av e).8 H .473(demonstrated ho)3.173 F 2.973(wt)-.25 G
+2.973(oc)-2.973 G .473(reate Linux virtual serv)-2.973 F .473
+(ers based on a cluster of real serv)-.15 F .473(ers. T)-.15 F .672 -.1
+(wo m)-.8 H(ethods).1 E .24(of IP-le)72 560.4 R -.15(ve)-.25 G 2.74(ll)
+.15 G .24(oad balancing were de)-2.74 F -.15(ve)-.25 G .24(loped to mak)
+.15 F 2.74(ep)-.1 G .241
+(arallel services of the cluster to appear as a virtual ser)-2.74 F(-)
+-.2 E .096(vice on a single IP address, one is virtual serv)72 572.4 R
+.096(er via Netw)-.15 F .095(ork Address T)-.1 F .095
+(ranslation, the other is virtual serv)-.35 F(er)-.15 E 1.004
+(via IP tunneling. Currently four scheduling algorithms ha)72 584.4 R
+1.305 -.15(ve b)-.2 H 1.005(een de).15 F -.15(ve)-.25 G 1.005
+(loped to meet dif).15 F 1.005(ferent application)-.25 F 2.555
+(situations. Scalability)72 596.4 R .055(is achie)2.555 F -.15(ve)-.25 G
+2.555(db).15 G 2.555(yt)-2.555 G .055(ransparently adding or remo)-2.555
+F .054(ving a node in the cluster)-.15 F 2.554(.H)-.55 G .054(igh a)
+-2.554 F -.25(va)-.2 G(ilabil-).25 E .456(ity is pro)72 608.4 R .456
+(vided by detecting node or daemon f)-.15 F .457
+(ailures and recon\214guring the system appropriately)-.1 F 2.957(.T)
+-.65 G .457(he solu-)-2.957 F .917
+(tions require no modi\214cation to either the clients or the serv)72
+620.4 R .917(ers, and the)-.15 F 3.416(ys)-.15 G .916
+(upport most of TCP and UDP)-3.416 F(services.)72 632.4 Q .069
+(In the future, we w)72 648 R .069
+(ould study and add more load-balancing algorithms to meet more dif)-.1
+F .07(ferent requirements,)-.25 F .449(such as the load-informed schedu\
+ling, and geographic-based scheduling for virtual serv)72 660 R .449
+(er via IP tunneling.)-.15 F 1.83 -.8(We w)72 672 T .23(ould lik).7 F
+2.73(et)-.1 G 2.73(oi)-2.73 G(nte)-2.73 E .23
+(grate the "heartbeat" code and the COD)-.15 F 2.73(Ad)-.4 G(istrib)
+-2.73 E .23(uted f)-.2 F .23(ault-tolerant \214lesystem into vir)-.1 F
+(-)-.2 E .942(tual serv)72 684 R(er)-.15 E 3.442(,d)-.4 G -2.15 -.25
+(ev e)-3.442 H .942(lop a cluster manager).25 F 3.442(,a)-.4 G .942
+(nd mak)-3.442 F 3.442(ei)-.1 G 3.442(te)-3.442 G .942
+(asy to setup and administrator Linux virtual serv)-3.442 F(ers.)-.15 E
+1.644 -.8(We w)72 696 T .044(ould e).7 F .044(xplore higher de)-.15 F
+.044(grees of f)-.15 F .044
+(ault-tolerance; transaction and logging process)-.1 F F5(17)-4.1 I F0
+-.1(wo)2.544 4.1 O .044(uld be tried to add).1 F .64(in the load balanc\
+er so that the load balancer can restart the request on another serv)72
+708 R .64(er and the client don')-.15 F(t)-.18 E .328
+(need to send the request ag)72 720 R .328
+(ain, and the primary and backup load balancers e)-.05 F .329
+(xchange their states so that the)-.15 F EP
+%%Page: 11 11
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF(-11-)279.67 48 Q -.15(ex)72 84 S .254
+(isting connection w).15 F(on')-.1 E 2.754(tb)-.18 G 2.754(el)-2.754 G
+.254(ost when the backup tak)-2.754 F .253(es o)-.1 F -.15(ve)-.15 G
+1.353 -.55(r. W).15 H 2.753(ew)-.25 G .253(ould also lik)-2.853 F 2.753
+(et)-.1 G 2.753(oe)-2.753 G .253(xplore ho)-2.903 F 2.753(wt)-.25 G
+2.753(oi)-2.753 G(mple-)-2.753 E(ment virtual serv)72 96 Q(er in IPv6.)
+-.15 E/F1 18/Times-Bold@0 SF(Refer)72 132 Q(ences)-.324 E F0 15(1. Chad)
+72 162 R -1.1(Yo)3.54 G(shika)1.1 E -.1(wa)-.15 G 3.54(,B).1 G 1.04
+(rent Chun, P)-3.54 F 1.04(aul Eastharn, Armin V)-.15 F 1.04
+(ahdat, Thomas Anderson, and Da)-1.11 F 1.04(vid Culler)-.2 F(,)-.4 E
+(\231Using Smart Clients to Build Scalable Services,)97 174 Q<9a>-.7 E
+/F2 10/Times-Italic@0 SF(USENIX'97)2.5 E F0(\(1997\). http://no)2.5 E
+-.65(w.)-.25 G(cs.berk).65 E(ele)-.1 E -.65(y.)-.15 G(edu/.).65 E 15
+(2. Robert)72 189.6 R 1.773(L. Carter and Mark E. Cro)4.274 F -.15(ve)
+-.15 G 1.773(lla, \231Dynamic Serv).15 F 1.773
+(er Selection using Bandwidth Probing in)-.15 F -.4(Wi)97 201.6 S
+(de-Area Netw).4 E(orks,)-.1 E 2.5<9a42>-.7 G(oston Uni)-2.5 E -.15(ve)
+-.25 G(rsity T).15 E(echnical Report \(1996\). http://www)-.7 E
+(.ncstrl.or)-.65 E(g/.)-.18 E 15(3. Eric)72 217.2 R .304
+(Dean Katz, Michelle Butler)2.804 F 2.804(,a)-.4 G .304
+(nd Robert McGrath, \231)-2.804 F 2.804(AS)-.8 G .304(calable HTTP Serv)
+-2.804 F .305(er: The NCSA Proto-)-.15 F(type,)97 229.2 Q<9a>-.7 E F2
+(Computer Networks and ISDN Systems,)2.5 E F0(pp. 155-163 \(May 1994\).)
+2.5 E 15(4. Thomas)72 244.8 R 3.469 -.74(T. K)4.489 H -.1(wa).74 G 1.989
+(n, Robert E. McGrath, and Daniel A. Reed, \231NCSA).1 F 3.088 -.55
+('s W)-1.11 H 1.988(orld W)-.25 F 1.988(ide W)-.4 F 1.988(eb Serv)-.8 F
+(er:)-.15 E(Design and Performance,)97 256.8 Q<9a>-.7 E F2
+(IEEE Computer)2.5 E(,)-1.11 E F0(pp. 68-74 \(No)2.5 E -.15(ve)-.15 G
+(mber 1995\).).15 E 15(5. T)72 272.4 R 2.5(.B)-.74 G(risco,)-2.5 E F2
+(DNS Support for Load Balancing)2.5 E(,)-.1 E F0(RFC 1794. http://www)
+2.5 E(.internic.net/ds/.)-.65 E 15(6. A.)72 288 R .742
+(Dahlin, M. Frober)3.242 F .742(g, J. W)-.18 F .743(alerud, and P)-.8 F
+3.243(.W)-1.11 G(inroth,)-3.643 E F2 .743(EDDIE: A Rob)3.243 F .743
+(ust and Scalable Internet Server)-.2 F F0(\(May 1998\). http://www)97
+300 Q(.eddie)-.65 E -.1(wa)-.25 G(re.or).1 E(g/.)-.18 E 15(7. Ralf)72
+315.6 R 1.464(S.Engelschall, \231Load Balancing Y)3.964 F 1.464(our W)
+-1.1 F 1.463(eb Site: Practical Approaches for Distrib)-.8 F 1.463
+(uting HTTP)-.2 F -.35(Tr)97 327.6 S(af).35 E(\214c,)-.25 E<9a>-.7 E F2
+-.92(We)2.5 G 2.5(bT).92 G(ec)-3.42 E(hniques Ma)-.15 E(gazine)-.1 E(,)
+-.1 E F0(3, 5 \(May 1998\). http://www)2.5 E(.webtechniques.com/.)-.65 E
+15(8. Edw)72 343.2 R 12.45(ard W)-.1 F(alk)-.8 E(er)-.1 E(,)-.4 E F2
+12.45(pWEB - A P)14.95 F(ar)-.8 E 12.45(allel W)-.15 F 12.45
+(eb Server Harness)-.92 F F0 12.45(\(April, 1997\).)14.95 F(http://www)
+97 355.2 Q(.ihpc.nus.edu.sg/ST)-.65 E(AFF/edw)-.93 E(ard/pweb)-.1 E
+(.html.)-.4 E 15(9. Daniel)72 370.8 R .507(Andresen, T)3.007 F .507
+(ao Y)-.8 F .507(ang, and Oscar H. Ibarra, \231T)-1 F -2.1 -.25(ow a)-.8
+H .506(rds a Scalable Distrib).25 F .506(uted WWW Serv)-.2 F .506(er on)
+-.15 F -.8(Wo)97 382.8 S .222(rkstation Clusters,).8 F<9a>-.7 E F2(Pr)
+2.722 E .222(oc. of 10th IEEE Intl. Symp. Of P)-.45 F(ar)-.8 E .223
+(allel Pr)-.15 F .223(ocessing \(IPPS'96\),)-.45 F F0 .223(pp. 850-856)
+2.723 F(\(Arpil 1996\). http://www)97 394.8 Q(.cs.ucsb)-.65 E
+(.edu/Research/rapid_sweb/SWEB.html.)-.4 E 10(10. Eric)72 410.4 R 1.373
+(Anderson, Da)3.873 F 1.673 -.15(ve Pa)-.2 H 1.372
+(tterson, and Eric Bre).15 F(wer)-.25 E(,)-.4 E F2 1.372(The Ma)3.872 F
+(gicr)-.1 E 1.372(outer: an Application of F)-.45 F 1.372(ast P)-.75 F
+(ac)-.8 E -.1(ke)-.2 G(t).1 E(Interposing)97 422.4 Q F0
+(\(May 1996\). http://www)2.5 E(.cs.berk)-.65 E(ele)-.1 E -.65(y.)-.15 G
+(edu/~eanders/magicrouter/.).65 E 10(11. Cisco)72 438 R(System,)2.951 E
+F2 .452(Cisco Local Dir)2.951 F(ector)-.37 E F0 .452
+(\(1998\). http://www)2.952 F(.cisco.com/w)-.65 E
+(arp/public/751/lodir/inde)-.1 E(x.html.)-.15 E 10(12. D.)72 453.6 R
+.658(Dias, W)3.158 F 3.158(.K)-.92 G .658(ish, R. Mukherjee, and R. T)
+-3.158 F -2.1 -.25(ew a)-.7 H .658(ri, \231).25 F 3.158(AS)-.8 G .658
+(calable and Highly A)-3.158 F -.25(va)-.74 G .658(ilable Serv).25 F(er)
+-.15 E -.7<2c9a>-.4 G F2(COMP-)3.858 E(CON 1996,)97 465.6 Q F0
+(pp. 85-92 \(1996\).)2.5 E 10(13. Om)72 481.2 R 2.272 -1.11(P. D)2.552 H
+.052(amani, P)1.11 F 2.552(.E)-1.11 G .052(merald Chung, and Y)-2.552 F
+.052(ennun Huang,)-1 F F2 .052(ONE-IP: T)2.552 F(ec)-.92 E .052
+(hniques for Hosting a Service on)-.15 F 2.5(aC)97 493.2 S
+(luster of Mac)-2.5 E(hines)-.15 E F0(\(August 1997\). http://www)2.5 E
+(.cs.ute)-.65 E(xas.edu/users/damani/.)-.15 E 10(14. W)72 508.8 R 5.863
+(ensong Zhang,)-.8 F F2 5.863(Linux V)8.363 F 5.863(irtual Server Pr)
+-.74 F(oject)-.45 E F0 5.862(\(May 1998\). http://proxy)8.362 F
+(.iinchina.net/~wen-)-.65 E(song/ippfvs/.)97 520.8 Q 10(15. Jim)72 536.4
+R -.35(Tr)2.5 G(ocki,).35 E F2(mon: Service Monitoring Daemon)2.5 E F0
+(\(July 1998\). http://consult.ml.or)2.5 E(g/~trockij/mon/.)-.18 E 10
+(16. Simon)72 552 R .776(Horman, \231Creating Redundant Linux Serv)3.276
+F(ers,)-.15 E<9a>-.7 E F2 .777(The 4th Annual LinuxExpo Confer)3.276 F
+(ence)-.37 E F0(\(May)3.277 E(1998\). http://linux.zipw)97 564 Q
+(orld.com.au/f)-.1 E(ak)-.1 E(e/.)-.1 E 10(17. Jim)72 579.6 R 2.684
+(Gray and T)5.184 F 5.184(.R)-.74 G(euter)-5.184 E(,)-.4 E F2 -1.55 -.55
+(Tr a)5.184 H 2.684(nsaction Pr).55 F 2.683(ocessing Concepts and T)-.45
+F(ec)-.92 E(hniques,)-.15 E F0(Mor)5.183 E -.05(ga)-.18 G 5.183(nK).05 G
+(aufmann)-5.183 E(\(1994\).)97 591.6 Q EP
+%%Trailer
+end
+%%EOF
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Scaling Internet Services by LinuxDirector.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Scaling Internet Services by LinuxDirector.pdf
new file mode 100644
index 0000000..7dfae97
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Scaling Internet Services by LinuxDirector.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/VRRP_WhitePaper.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/VRRP_WhitePaper.pdf
new file mode 100644
index 0000000..0731eb5
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/VRRP_WhitePaper.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf
new file mode 100644
index 0000000..e891a93
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf
new file mode 100644
index 0000000..e891a93
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/Vergleich der Clustersysteme von MySQL und EAC « 03 « 2005 « ...pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_Protocol_Description_.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_Protocol_Description_.pdf
new file mode 100644
index 0000000..1b1155d
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_Protocol_Description_.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_User_Guide_.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_User_Guide_.pdf
new file mode 100644
index 0000000..56afb52
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_BioCluster_User_Guide_.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_LinuxPlanet_-_Print_-_Getting_Free_Long_Distance__Part_2_.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_LinuxPlanet_-_Print_-_Getting_Free_Long_Distance__Part_2_.pdf
new file mode 100644
index 0000000..e95a26f
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_LinuxPlanet_-_Print_-_Getting_Free_Long_Distance__Part_2_.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_TheGoldFish_net_Blog__273_Blog_Archive__273_DUNDi_Tutorial_for_Asterisk_Home_.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_TheGoldFish_net_Blog__273_Blog_Archive__273_DUNDi_Tutorial_for_Asterisk_Home_.pdf
new file mode 100644
index 0000000..cc6eb5f
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/_TheGoldFish_net_Blog__273_Blog_Archive__273_DUNDi_Tutorial_for_Asterisk_Home_.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/asterisk_pbx_sc_pap.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/asterisk_pbx_sc_pap.pdf
new file mode 100644
index 0000000..c8b04b3
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/asterisk_pbx_sc_pap.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bescheinigung_eisenhauer.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bescheinigung_eisenhauer.pdf
new file mode 100644
index 0000000..40b7f64
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bescheinigung_eisenhauer.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bib_umfrage.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bib_umfrage.pdf
new file mode 100644
index 0000000..b16fa54
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/bib_umfrage.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/carp_linux.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/carp_linux.pdf
new file mode 100644
index 0000000..1851d79
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/carp_linux.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cisco_high_availability.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cisco_high_availability.pdf
new file mode 100644
index 0000000..1e46599
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cisco_high_availability.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cluster_technologies.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cluster_technologies.pdf
new file mode 100644
index 0000000..c8d7cd8
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/cluster_technologies.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/clustering_failover.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/clustering_failover.pdf
new file mode 100644
index 0000000..7f38aa3
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/clustering_failover.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/external_locking.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/external_locking.pdf
new file mode 100644
index 0000000..73589f0
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/external_locking.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/hachap2.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/hachap2.pdf
new file mode 100644
index 0000000..60efcbf
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/hachap2.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/heartbeat_sc_pap.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/heartbeat_sc_pap.pdf
new file mode 100644
index 0000000..59b677c
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/heartbeat_sc_pap.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/iax_sip_comp.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/iax_sip_comp.pdf
new file mode 100644
index 0000000..0daa403
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/iax_sip_comp.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf
new file mode 100644
index 0000000..8a657eb
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf
new file mode 100644
index 0000000..8a657eb
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/lf179, SystemAdministration_ Hochvefügbarkeitssysteme mit Linux.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/linuxsutra_ Howto MySQL DRBD HA.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/linuxsutra_ Howto MySQL DRBD HA.pdf
new file mode 100644
index 0000000..6ddbbe4
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/linuxsutra_ Howto MySQL DRBD HA.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/literatur.txt b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/literatur.txt
new file mode 100644
index 0000000..dec3438
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/literatur.txt
@@ -0,0 +1,2 @@
+Maurice J. Bach, The design of the UNIX operating system, Prentice-Hall, Inc., Upper Saddle River, NJ, 1986
+
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0601.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0601.pdf
new file mode 100644
index 0000000..8c7ec7a
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0601.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0702.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0702.pdf
new file mode 100644
index 0000000..5dec09f
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/news0702.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/p78-fox.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/p78-fox.pdf
new file mode 100644
index 0000000..6aea23a
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/p78-fox.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/redhat_gfs.pdf b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/redhat_gfs.pdf
new file mode 100644
index 0000000..1b172a8
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/redhat_gfs.pdf
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner00.ps.gz b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner00.ps.gz
new file mode 100644
index 0000000..e5ad47a
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner00.ps.gz
Binary files differ
diff --git a/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps
new file mode 100644
index 0000000..369c664
--- /dev/null
+++ b/Bachelor/BSc-Arbeit/mat_bsc_arbeit/reisner01.ps
@@ -0,0 +1,30395 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: dipl.dvi
+%%Pages: 89
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentFonts: Times-Roman
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -t a4 -o /home/philipp/diplomarbeit/dipl.ps
+%+ dipl.dvi
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 2000.05.18:1154
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+%%BeginProcSet: 8r.enc
+% @@psencodingfile@{
+% author = "S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry",
+% version = "0.6",
+% date = "1 July 1998",
+% filename = "8r.enc",
+% email = "tex-fonts@@tug.org",
+% docstring = "Encoding for TrueType or Type 1 fonts
+% to be used with TeX."
+% @}
+%
+% Idea is to have all the characters normally included in Type 1 fonts
+% available for typesetting. This is effectively the characters in Adobe
+% Standard Encoding + ISO Latin 1 + extra characters from Lucida.
+%
+% Character code assignments were made as follows:
+%
+% (1) the Windows ANSI characters are almost all in their Windows ANSI
+% positions, because some Windows users cannot easily reencode the
+% fonts, and it makes no difference on other systems. The only Windows
+% ANSI characters not available are those that make no sense for
+% typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen
+% (173). quotesingle and grave are moved just because it's such an
+% irritation not having them in TeX positions.
+%
+% (2) Remaining characters are assigned arbitrarily to the lower part
+% of the range, avoiding 0, 10 and 13 in case we meet dumb software.
+%
+% (3) Y&Y Lucida Bright includes some extra text characters; in the
+% hopes that other PostScript fonts, perhaps created for public
+% consumption, will include them, they are included starting at 0x12.
+%
+% (4) Remaining positions left undefined are for use in (hopefully)
+% upward-compatible revisions, if someday more characters are generally
+% available.
+%
+% (5) hyphen appears twice for compatibility with both
+% ASCII and Windows.
+%
+/TeXBase1Encoding [
+% 0x00 (encoded characters from Adobe Standard not in Windows 3.1)
+ /.notdef /dotaccent /fi /fl
+ /fraction /hungarumlaut /Lslash /lslash
+ /ogonek /ring /.notdef
+ /breve /minus /.notdef
+% These are the only two remaining unencoded characters, so may as
+% well include them.
+ /Zcaron /zcaron
+% 0x10
+ /caron /dotlessi
+% (unusual TeX characters available in, e.g., Lucida Bright)
+ /dotlessj /ff /ffi /ffl
+ /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef
+ % very contentious; it's so painful not having quoteleft and quoteright
+ % at 96 and 145 that we move the things normally found there to here.
+ /grave /quotesingle
+% 0x20 (ASCII begins)
+ /space /exclam /quotedbl /numbersign
+ /dollar /percent /ampersand /quoteright
+ /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
+% 0x30
+ /zero /one /two /three /four /five /six /seven
+ /eight /nine /colon /semicolon /less /equal /greater /question
+% 0x40
+ /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O
+% 0x50
+ /P /Q /R /S /T /U /V /W
+ /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
+% 0x60
+ /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o
+% 0x70
+ /p /q /r /s /t /u /v /w
+ /x /y /z /braceleft /bar /braceright /asciitilde
+ /.notdef % rubout; ASCII ends
+% 0x80
+ /.notdef /.notdef /quotesinglbase /florin
+ /quotedblbase /ellipsis /dagger /daggerdbl
+ /circumflex /perthousand /Scaron /guilsinglleft
+ /OE /.notdef /.notdef /.notdef
+% 0x90
+ /.notdef /.notdef /.notdef /quotedblleft
+ /quotedblright /bullet /endash /emdash
+ /tilde /trademark /scaron /guilsinglright
+ /oe /.notdef /.notdef /Ydieresis
+% 0xA0
+ /.notdef % nobreakspace
+ /exclamdown /cent /sterling
+ /currency /yen /brokenbar /section
+ /dieresis /copyright /ordfeminine /guillemotleft
+ /logicalnot
+ /hyphen % Y&Y (also at 45); Windows' softhyphen
+ /registered
+ /macron
+% 0xD0
+ /degree /plusminus /twosuperior /threesuperior
+ /acute /mu /paragraph /periodcentered
+ /cedilla /onesuperior /ordmasculine /guillemotright
+ /onequarter /onehalf /threequarters /questiondown
+% 0xC0
+ /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
+ /Egrave /Eacute /Ecircumflex /Edieresis
+ /Igrave /Iacute /Icircumflex /Idieresis
+% 0xD0
+ /Eth /Ntilde /Ograve /Oacute
+ /Ocircumflex /Otilde /Odieresis /multiply
+ /Oslash /Ugrave /Uacute /Ucircumflex
+ /Udieresis /Yacute /Thorn /germandbls
+% 0xE0
+ /agrave /aacute /acircumflex /atilde
+ /adieresis /aring /ae /ccedilla
+ /egrave /eacute /ecircumflex /edieresis
+ /igrave /iacute /icircumflex /idieresis
+% 0xF0
+ /eth /ntilde /ograve /oacute
+ /ocircumflex /otilde /odieresis /divide
+ /oslash /ugrave /uacute /ucircumflex
+ /udieresis /yacute /thorn /ydieresis
+] def
+
+%%EndProcSet
+%%BeginProcSet: special.pro
+%!
+TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N
+/vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N
+/rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N
+/@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{
+/hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho
+X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B
+/@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{
+/urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known
+{userdict/md get type/dicttype eq{userdict begin md length 10 add md
+maxlength ge{/md md dup length 20 add dict copy def}if end md begin
+/letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S
+atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{
+itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll
+transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll
+curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf
+pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack}
+if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1
+-1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3
+get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip
+yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub
+neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{
+noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop
+90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get
+neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr
+1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr
+2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4
+-1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S
+TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{
+Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale
+}if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState
+save N userdict maxlength dict begin/magscale true def normalscale
+currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts
+/psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x
+psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx
+psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub
+TR/showpage{}N/erasepage{}N/copypage{}N/p 3 def @MacSetUp}N/doclip{
+psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2
+roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath
+moveto}N/endTexFig{end psf$SavedState restore}N/@beginspecial{SDict
+begin/SpecialSave save N gsave normalscale currentpoint TR
+@SpecialDefaults count/ocount X/dcount countdictstack N}N/@setspecial{
+CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto
+closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx
+sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR
+}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse
+CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury
+lineto closepath clip}if/showpage{}N/erasepage{}N/copypage{}N newpath}N
+/@endspecial{count ocount sub{pop}repeat countdictstack dcount sub{end}
+repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N
+/@fedspecial{end}B/li{lineto}B/rl{rlineto}B/rc{rcurveto}B/np{/SaveX
+currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY
+moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X
+/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0
+1 startangle endangle arc savematrix setmatrix}N end
+
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 600 600 (dipl.dvi)
+@start
+%DVIPSBitmapFont: Fa ecti1095 10.95 54
+/Fa 54 253 df<933807FF80043F13F09338FE00FCDB01F0131EDB07E0130F4B48131F4C
+133F031F147F4BC7FCA2187E037E14381800A215FE5DA414015DA414030103B712F0A218
+E0903A0003F000070207140F4B14C0A3171F020F15805DA2173F1800141F5D5F177EA214
+3F92C712FE5FA34A1301027EECF81CA3160302FEECF03C4A1538A21878187013014A0101
+13F018E0933800F1C0EF7F800103ED1F004A91C7FCA35C1307A25C121CEA7E0F00FE5BA2
+49CAFC12FCEAF81E485AEA7878EA3FF0EA07C0385383BF33>28 D<EA01E0EA03F8120712
+0F13FCA213F8A2EA03D8EA001813381330A21370136013E013C01201EA038013005A120E
+5A5A5A5A5A0E1B7A881C>44 D<387FFFFCA3B5FCA21605799520>I<120EEA3F80127F12
+FFA31300127E123C090976881C>I<15FE913807FF8091381F07C091387C01F0ECF00049
+4813F8494813780107147C495A49C7FC167E133E137EA25BA2485AA2000315FEA25B0007
+15FCA2491301120FA34848EB03F8A44848EB07F0A448C7EA0FE0A316C0007E141F12FE16
+80153FA2481500A2157EA25DA25D4813015D6C495A127C4A5A4A5A6C49C7FC143E6C5B38
+0FC1F03803FFC0C648C8FC273F76BC2E>48 D<15FE913803FFC091380F01F091383C00F8
+4A137C4A7F4948133F49487F4A148049C7FC5BEB0E0C011E15C0EB1C0EEB3C0613381378
+1370020E133FD9F00C148013E0141C0218137F00011600EBC0384A13FEEC600102E05B3A
+00E3C003F89039FF0007F0013C495A90C7485A5E037FC7FC15FC4A5A4A5AEC0FC04AC8FC
+147E14F8EB03E0495A011FC9FC133E49141801F0143C48481438485A1678485A48C85A12
+0E001E4A5AD83FE0130301FF495A397C3FF01FD8780FB55AD8700391C7FCD8F0015B486C
+6C5A6E5AEC07C02A3F79BC2E>50 D<1638167E16FE16FCA3150116F8A3150316F0A21507
+16E0A2ED0FC0A3ED1F80A216005DA2157EA2157C15FC5D14015D14035D4A5AA24A5AA24A
+C7FC143EED038091387C0FC014F8ECF01F01011480EB03E014C0903807803F010F1400EB
+1F00133E495B49137E485A485A484813FE48B46C5A4813F04813FE267C00FF130800F090
+380FFFFC00601301C714E0913803F8005DA314075DA3140F5DA3141F5DA3020EC7FC274F
+7DBC2E>52 D<ED0FE0ED7FF8913801FFFE913807F01F91381F800F91383F0007027E133F
+02F8137F495A495A13074948137E4948130049C8FCA2137E13FE5B12015B1203A23907F0
+1FC0ECFFF0390FE1E07C9038E7803E9038EE001ED81FFC131F01D8EB0F8013F84914C048
+5AA25B16E0485AA290C7FCED1FC0A212FEA2153F1680A25A157F1600A215FEA24A5A5D00
+7C13035D4A5A6C495A4A5A6C017EC7FC380F81FC6CB45A6C13E0C66CC8FC283F76BC2E>
+54 D<131E137FEBFF80A31400A25B133890C7FCB3A3120EEA3F80127F12FFA390C7FC12
+7E123C112776A61C>58 D<17381778A217FCA21601A216031607A2160FA2161DA2163916
+79167116E1A2923801C1FEA2ED0380A2ED07005D150E5DA25DA25D15F05D14015D4A487F
+A24AC77EA2140E141E021FB6FC5CA20270C77EA25CA2495A13035C49C8FC1880010E153F
+A25B133C1338137813F80001167FD807FCEDFFC0B500C0013F13FFA25C38417BC043>65
+D<9339FF8001C0030F13E0033F9038F803809239FF807C07913A03FC001E0FDA0FF0EB0F
+1FDA3FC09038079F004AC76CB4FC02FE80495A49486E5A495A495A4948157E4948157C13
+7F49C9FC5B00011778485A5B12071870485AA2485A95C7FC123F5BA2127F5BA312FF90CC
+FCA55A170FA2170EA2171E171C173C17381778007F167017F04C5A6C5E6D1403001F4B5A
+6D4AC8FC6C6C141E00075D6D14F8D803FCEB01E0C66CEB07C090267FC03FC9FC90381FFF
+FE010713F0010013803A4272BF41>67 D<49B77E18F018FC903B0003FC0003FE9438007F
+804B143FF00FC019E00207ED07F04B140319F81801140F4B15FC1800A2141F4B15FEA314
+3F5DA21801147F92C8FCA219FC5C4A1503A3010117F84A1507A219F00103160F5C19E018
+1F010717C05CF03F80A2010FEE7F004A157E18FE4D5A011F5E4A4A5A17074D5A013F4B5A
+4A4A5A4DC7FC017FEC01FC4C5A91C7EA0FE049EC7FC0007F90B6C8FCB712FC16C03F3E7B
+BD44>I<49B812F8A390260003FCC7123F18074B14031801F000F014075DA3140F5D19E0
+A2141F4B1338A2EF7801023F027013C04B91C7FCA217F0027F5CED00011603160F91B65A
+A39138FE001F0101EC07805CA3010392C8FC5C18074C5B0107020E130E5C93C7121E181C
+010F163C4A15381878A2011F5E5C4D5AA2013F15034A4A5A170F017F151F4D5A91C812FF
+49020F90C7FC007F90B7FCB9FC5F3D3E7BBD3D>I<49B812F0A390260003FCC7123F180F
+4B14071803F001E014075DA3140F5D19C0A2141F5D1770EFF003023F02E013804B91C7FC
+A21601027F5CED0003A216074AEB1F8092B5FCA3902701FE003FC8FC4A7F82A20103140E
+5CA2161E0107141C5CA293C9FC130F5CA3131F5CA3133F5CA2137FA291CBFC497E007FEB
+FF80B6FCA23C3E7BBD3B>I<49B5D8FC01B512FCA390260003FEC73803FE004B5D4B5DA2
+180714074B5DA2180F140F4B5DA2181F141F4B5DA2183F143F4B5DA2187F147F92C890C7
+FCA26091B8FC60A24AC7120113014A5DA2170313034A5DA2170713074A5DA2170F130F4A
+5DA2171F131F4A5DA2173F133F4A5DA2017F157FA291C890C8FC496C4A7EB690B6FCA24A
+5D463E7BBD43>72 D<49B512FEA216FC90390003FE005D5DA314075DA3140F5DA3141F5D
+A3143F5DA3147F92C7FCA35C5CA313015CA313035CA313075CA3130F5CA3131F5CA3133F
+5CA2137FA291C8FC497EB6FCA3273E7BBD23>I<4AB512FCA391C71300A25EA215015EA3
+15035EA315075EA3150F5EA3151F5EA3153F5EA3157F93C7FCA35DA25DA21401A25DA214
+03A25DA21407121FD87F805BA2140FD8FF005B141F485C00F8495A12E0007049C8FC14FE
+387801FC383C03F06C485A3807FF80D801FCC9FC2E4078BD2F>I<49B500FC903807FFFE
+A390260003FEC813C04B16004B15FC4E5A19E002074B5A4BEC0F80061EC7FC60020F5D4B
+5CEF03E0EF0780021F4AC8FC4B131E5F17F8023F495A92388003C04C5A4CC9FC027F131E
+ED007F5E5D4A487F4A5AED1F3F033C7F010113789138FCF01FDAFDE07F9138FFC00F4901
+807FECFE004A13074A8013074A130383A2010F6E7E5C160083131F4A8084A2013F153F4A
+81A2017F6F7EA291C87F496C4A7E007F01FE0107B57EB5FCA2473E7BBD45>I<49B6FCA3
+90260003FEC8FC5D5DA314075DA3140F5DA3141F5DA3143F5DA3147F92C9FCA35C5CA313
+015CA313035C18C0EF01E0010716C05C17031880130F4A140718005F131F4A141EA2173E
+013F5D4A14FC1601017F4A5A160791C7121F49ECFFF0B8FCA25F333E7BBD39>I<902601
+FFFE93381FFFC062A2D9000394387FE000505A6303BFED01DF1AFF0207EE03BF033FDB07
+3FC7FCA2F10E7F140F020EEE1C7E19381AFE021E167091261C1F805D19E019E1023CED01
+C1023892380381F8A2F0070314780270030E5B181C19079126F00FC0133802E05F1870F0
+E00F130102C0DA01C05BA2943803801F13030280DA07005B170EDB07E0143F01075D0200
+94C8FC5F4D5B5B010E4B137EA2DCE1C013FE011EECE380011C5F04E7C7FCDB03F7130101
+3C14FE01385F5E01784A130313F8486C4A5CD807FE4C7EB500F0D9E007B512F016C0DAE0
+015E523E7ABD51>I<EE7FC0923807FFF892383F807E9239FC001F80DA01F0EB07C0DA07
+E06D7EDA0F806D7E023FC77F027E6E7E4A157C4948157E495A494881495A011F1780495A
+91C9121F5B01FE17C0A2485A12035B120749163F120FA25B121F19804848167FA44848EE
+FF00A34D5AA390C9485A5A6017076C5F170F604D5AA24D5A4DC7FC6C6C157E17FE001F4B
+5A4C5A6D4A5A000F4B5A6C6C4A5A4CC8FC6C6C147E6C6C5C6C6CEB03F0013FEB0FC09026
+1FC07FC9FC903807FFFC010013C03A4274BF45>79 D<49B77E18F018FC903B0003FC0003
+FEEF00FF4BEC3F80F01FC01407F00FE05DA2020F16F0A25DA2141FF01FE05DA2023F16C0
+183F4B1580187F027F160018FE92C7485A604AEC07F04D5A4AEC3F804CB4C7FC49B612F8
+17E002FCCAFCA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA25CA2137FA291
+CBFC497E007F13FEB5FCA23C3E7BBD3D>I<49B612FCEFFF8018F0903B0003FC000FF8EF
+01FE4B6D7E84F03F800207ED1FC05DA219E0140F5DA3021FED3FC05DA2F07F80143F4B15
+0018FE4D5A027F5D92C7485AEF0FE0EF1F804A027EC7FC4AEB07F891B612E01780903A01
+FE000FE04AEB03F0707E707E0103814A147E177FA213075CA25F130F5C5F1601131F5CA3
+013F020314404A16E05F017F160119C091C700011303496C1680B61507933900FE0F004A
+EC7E1ECAEA1FFCEF07F03B407BBD42>82 D<92390FF001C0ED7FFE4AB5EA0380913907F0
+0FC791390FC003EF91381F0001023E903800FF004A805C495A4948143EA2495AA2010F15
+3C5CA3011F1538A46E91C7FCA2806D7E14FCECFFC06D13F86D13FF16E0010014F86E7F02
+1F7F02037FEC003F03077F1500167F707E161FA2160FA212075A5F120EA2001E151F94C7
+FCA25E003E153E5E123F5E486C495A4B5A6D1307D87DE0EB0F80D8F8F849C8FCD8F07F13
+FE90383FFFF8D8E00F13E048C690C9FC32427ABF33>I<48B9FCA3489039001FE00101F8
+ED007FD807E04A133F49161F49161E000F143F90C75BA2121E157F001C92C7FC003C171C
+12385D00785C1270183C00F001011538C7491400A314035DA314075DA3140F5DA3141F5D
+A3143F5DA3147F92C9FCA35C5CA313015CA21303A25CEB0FFC003FB6FCA3383E71BD41>
+I<B500F891387FFFC094B5FC1980D807FEC8380FF8006C48ED07E0495E604DC7FC7F0001
+160E5F173C17385FA25F16015F4C5A7F4CC8FC00005D160E5EA25EA25E16F05E6D495AA2
+6D495A150793C9FC150EA25D153C15385D14805D133FEC81C014835D0287CAFCA2148E14
+9E149C14F8A26D5AA25C5CA25CA291CBFC131EA23A406DBD43>86
+D<267FFFF890B500F890B512C0B5FC60000390C7D807FEC7380FF80001FCDA03F86E5A74
+5A6300014F5A98C7FC16071A0E040F151E1A1C041F153C1A38043B5DA204735D16F304E3
+4A5A150104C34A5AED03834FC8FCED0703190E150E715B031C153C040114380338157819
+7003705D15F003E04A5A140103C04A5AEC038001FE4CC9FC0000EB0700180E140E604A15
+3C18384A157818704A5DA24AECFDC013FF4AECFF80A24A92CAFC91C7FC5F5B5F5B5F5B70
+5A5B5F52406EBD5A>I<91B500FC90383FFFF8A25E020301C0010713006E90C713F86EED
+03E04E5A616F6C49C7FC181E033F5C70133860031F5CEEE0014D5A030F495A7048C8FC17
+0E03075B705A03031378705AEEFDE06FB45A5F94C9FC6F5A82A2824C7E5D83ED03BFED07
+1F030F7F151EED3C0F03787F1570EDE007DA01C07F02031303DA07807FEC0F00021E1301
+021C805C4A13004A80130149488049488149C8FC496F7E5B01FF157F00076D4A7EB500E0
+010FEBFFC0A261453E7CBD43>I<B500FC91383FFFE0A25C000390C83807FE006C48ED03
+F04D5A00005F6D4B5A95C7FC6D151E6E5C5F013F15706E5C4C5A011F14036E495A94C8FC
+160E6D6C5B163C5E010714706E5B4B5A0103495AECFC074BC9FC0101130E6E5A5D15786D
+6C5A5D5D6E5AA292CAFCA2147E14FEA35C1301A35C1303A35C1307A3495AA3131F001FB5
+12C0A33B3E6EBD43>I<147E49B47E903907C1C38090391F80EFC090383F00FF017E137F
+4914804848133F485AA248481400120F5B001F5C157E485AA215FE007F5C90C7FCA21401
+485C5AA21403EDF0385AA21407EDE078020F1370127C021F13F0007E013F13E0003E137F
+ECF3E1261F01E313C03A0F8781E3803A03FF00FF00D800FC133E252977A72E>97
+D<EB1FC0EA0FFF5CA2EA003FA291C7FCA25BA2137EA213FEA25BA21201A25BA21203A25B
+147C3807F1FF9038F787C09038EE03E09038FC01F0EA0FF801F013F814005B485A15FC5B
+1401123FA21300A248130315F8127EA2140700FE14F05AA2EC0FE0A348EB1FC01580143F
+1500147E1278007C5B495A383C03F06C485A380F0F80D807FEC7FCEA01F81E4076BE29>
+I<EC1FC0ECFFF0903803F07C90380FC01E90381F000E013E130F49131F01FC137F485A48
+5A0007147E5B000F143848481300A2485AA3127F90C8FCA35A5AA55A1506150E007E141E
+153C1578003E14F0003FEB01E06CEB07C0390F800F003807C07E3801FFF038007F802029
+77A729>I<EE3F80ED1FFF1700A2ED007FA2167EA216FEA25EA21501A25EA21503A25EA2
+1507A25E147E903801FF8F903807C1CF90391F80EFC090383F00FF017E137F5B48486D5A
+485AA2485A000F92C7FC5B001F5CA24848137EA215FE127F90C75AA214015A485CA21403
+16384814F0A21407167891380FE070127C021F13F0007E013F5B003E137FECF3E1261F01
+E35B3A0F8781E3802703FF00FFC7FCD800FC133E294077BE2E>I<143F903801FFE09038
+07C0F090381F0078137E49133C485A485A12074848137C491378121F484813F8EC01F000
+7FEB07E09038001FC0903801FF00EBFFF8B5128048C8FCA45AA6150C151C153C007C1478
+15F0007EEB01E0003EEB03C06CEB0F806CEB1E00380780FC3803FFE0C690C7FC1E2976A7
+29>I<167C4BB4FC923807C78092380F83C0151F160FED3F1FA2157E1780EE0F0093C7FC
+5DA414015DA414035DA30103B512F8A390260007E0C7FCA3140F5DA5141F5DA4143F92C8
+FCA45C147EA414FE5CA413015CA4495AA4495AA4495AA2121C007E5B12FE49C9FCA2EAFC
+1E485A12F0EA7878EA3FE0EA0F802A5383BF1C>I<EC03E0EC1FF891383E1E389138F80E
+FC903801F007EB03E001071303D90FC013F8EB1F80133F14004914F0137E01FE1307A248
+4814E0A2150F12034914C0A2151F1207491480A2153FA2491400A25DA2000314FE140113
+F0000113034A5A3800F80EEB7C3DEB1FF1903807C1F8EB00011403A25DA21407A25D140F
+003C5C127E00FE495A4AC7FC147E485B38F001F8387C03E0383FFF80D807FEC8FC263B7C
+A729>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2133FA291C8
+FCEC03F890387F0FFE91383E0F80D97E7813C0ECE007D9FFC013E014801400A2485A5BA2
+5B0003140F16C05BA20007141F16805BA2000F143F16005B5D001F147EEDFE074913FCA2
+003F0101130FEDF80E1300161E48ECF01CA2007E1538A200FE1570020013E048EC7FC000
+38EC1F0028407ABE2E>I<1470EB01FCA314F8A2EB00E01400AD137C48B4FC38038F80EA
+0707000E13C0121E121CEA3C0F1238A2EA781F00701380A2EAF03F140012005B137E13FE
+5BA212015BA212035B1438120713E0000F1378EBC070A214F0EB80E0A2EB81C013831480
+38078700EA03FEEA00F8163D79BB1C>I<ED0380ED0FC0151FA31680ED0F0092C7FCADEC
+07C0EC3FF0EC78F8ECE07CEB01C01303EC807EEB0700A2010E13FE5D131E131CEB3C01A2
+01005BA21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA292C7FCA25CA2147EA2
+14FEA25CA213015CA3383C03F0127E38FE07E05C495A4848C8FCEAF03EEA707CEA3FF0EA
+0FC0224F83BB1C>I<EB01FC13FF5CA21303A25CA21307A25CA2130FA25CA2131FA25CA2
+133FA291C8FCED07C049EB1FF0ED7838017EEBE078913801C1FC9038FE038191380703F8
+EBFC0E140C000190381C00E04A1300495A5C3803F9C0EBFB8049C8FC13FE485AEBFFC0EB
+EFF0EBE1FC380FE0FE147F497E6E7E121F16E01380A2003F1481023F13C001001301A248
+14031680007EEB1F07160000FE5CEC0F1E48EB07FC0038EB01F026407ABE29>I<EB07F0
+EA03FF14E0A2EA000FA214C0A2131FA21480A2133FA21400A25BA2137EA213FEA25BA212
+01A25BA21203A25BA21207A25BA2120FA25BA2121FA25BA2123FA290C7FCA25A1307127E
+A2EAFE0F130E12FCA2131E131CA2EA7C381378EA3C70EA1FE0EA0780144079BE17>I<D8
+01F0D93F80137F3D07FC01FFE003FFC03D0F3E07C1F80F83F03D0E1F0F00FC1E01F8001E
+011C90387C3800001C49D97E707F003C01F05C0038157F4A5C26783FC05C12704A91C7FC
+91C7127E00F003FE1301494A5CEA007EA20301140301FE5F495CA203031407000160495C
+180F03075D0003051F13E0494A1480A2030FEC3F810007F001C0495CA2031F91383E0380
+120F494AEC0700A2033F150E001FEF1E1C4991C7EA0FF80007C7000EEC03E0432979A74A
+>I<D801F0EB3F803A07FC01FFE03A0F3E07C1F83A0E1F0F00FC001E011C137C001C4913
+7E003C13F012385C38783FC012705C91C7FC00F015FE495CEA007EA2150101FE5C5BA215
+0300015D5B15075E0003020F13704914C0A2031F13F00007ED80E05B1681EE01C0120F49
+EC0380A2EE0700001FEC0F0E49EB07FC0007C7EA01F02C2979A733>I<EC1FC0ECFFF890
+3803F07C90380FC01FEB1F8090393F000F80017E14C0491307484814E0485A12075B000F
+15F0485AA2485AA2ED0FE0127F90C7FCA2151F4815C05AA2ED3F80A2ED7F00A248147E00
+7C5C007E13015D4A5A003E495A6C495A4A5A260F803EC7FC3807C0FC3801FFF038003F80
+242977A72E>I<903903E001F890390FF807FE903A1E7C1E0F80903A1C3E3C07C0013C13
+7801389038E003E0EB783F017001C013F0ED80019038F07F0001E015F8147E1603000113
+FEA2C75AA20101140717F05CA20103140F17E05CA20107EC1FC0A24A1480163F010F1500
+5E167E5E131F4B5A6E485A4B5A90393FB80F80DA9C1FC7FCEC0FFCEC03E049C9FCA2137E
+A213FEA25BA21201A25BA21203A2387FFFE0B5FCA22D3A80A72E>I<D801F013FE3A07FC
+03FF803A0F3E0F03E0390E1F1C01001EEB3807001C017013F0003C9038F00FE0003813E0
+14C0D8783FEB0380007049C7FCA291C8FC12F05BEA007EA313FE5BA312015BA312035BA3
+12075BA3120F5BA3121F5B0007C9FC242979A726>114 D<EC7F80903801FFE0903807C0
+F890381E003C49131C151E49130E49133E157EA20001147CA215106D13007FEBFF8014F8
+6C13FF15806D13C0011F13E013079038007FF0140F1403A21401123E007E1300007F1301
+00FE14E0A25A48EB03C048EB078012700078EB0F006C133C001F13F83807FFE0C690C7FC
+1F297AA725>I<EB01C0EB03F01307A25CA2130FA25CA2131FA25CA2133FA291C7FCA200
+7FB51280B6FC1500D8007EC7FC13FEA25BA21201A25BA21203A25BA21207A25BA2120FA2
+5BA2121F141C1380A2003F133C1438EB0078147014F05C495AEA1F03495A6C48C7FCEA07
+FCEA01F0193A78B81E>I<137C48B4143826038F8013FCEA0707000E7F001E1401121CD8
+3C0F5C12381503EA781F007001805BA2D8F03F1307140000005D5B017E130FA201FE5C5B
+151F1201495CA2153F0003ED8380491403A2157F1607037E1300A2EDFE0F160E00011301
+9039F803BE1C0000EB073E90397C1E1E3890393FF80FF0903907E003E0292979A730>I<
+017CEB038048B4EB07E039038F800FEA0707000E01C013F0121E001C1407EA3C0F003814
+0316E0D8781F130100701380A2EAF03F020013C012005B017E1303168013FE5B15070001
+15005BA2150E12035B5DA25DA25DA200015C4A5AEBF8030000495AD97E0FC7FCEB1FFCEB
+07F0242979A729>I<017C167048B491387001FC3A038F8001F8EA0707000E01C015FE00
+1E1403001CEDF000EA3C0F0038177C1507D8781F4A133C00701380A2D8F03F130F020049
+133812005B017E011F14784C137013FE5B033F14F0000192C712E05BA2170100034A14C0
+49137E17031880A2EF070015FE170E00010101141E01F86D131C0000D9039F5BD9FC076D
+5A903A3E0F07C1E0903A1FFC03FFC0902703F0007FC7FC372979A73C>I<903903E003F0
+90390FF80FFC90393C3C1C1F9039701E380F9039E01F703F000102F013803B03C00FE07F
+001380000714C0D9001F131C4892C7FC000E5CA2001E133FA2C790C8FCA25C147EA314FE
+5CA313014A1338A3010314781670001C4913F0007E5D0107130100FE5D010F495A90380E
+F80727781C780FC7FC9038383C3C393FF01FF83907C007E029297CA729>I<137C48B414
+3826038F8013FCEA0707000E7F001E1401001C15F8EA3C0F12381503D8781F14F0007013
+80A2D8F03F1307020013E012005B017E130F16C013FE5B151F1201491480A2153F000315
+005BA25D157EA315FE5D00011301EBF8030000130790387C1FF8EB3FF9EB07E1EB00035D
+A214075D121F486C485AA24A5AD87F0090C7FC007E133E0038137E5CEB01F06C485A381E
+0FC0D807FFC8FCEA01F8263B79A72C>I<913807800F91391FC01F80023FEB3FC0167F14
+7FA21780DA3F80130091381E001C91C9FCAA137C48B4143826038F8013FCEA0707000E7F
+001E1401121CD83C0F5C12381503EA781F007001805BA2D8F03F1307140000005D5B017E
+130FA201FE5C5B151F1201495CA2153F0003ED8380491403A2157F1607037E1300A2EDFE
+0F160E14010001903803BE1C9038F8073E3A00FC1E1E3890393FF80FF090390FE003E02A
+3C79BA30>252 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb cmr8 8 6
+/Fb 6 58 df<EB3FC0EBFFF03803E07C48487E48487E497E001EEB0780A2003E14C0A248
+EB03E0A500FC14F0B0007C14E0A3007E1307003E14C0A36CEB0F806C14006D5A3807C03E
+3803F0FC3800FFF0EB3FC01C2D7DAB23>48 D<130C133C137CEA03FC12FFEAFC7C1200B3
+B113FE387FFFFEA2172C7AAB23>I<EB7F803801FFF0380780FC380E003F48EB1F8048EB
+0FC05A0060EB07E012F000FC14F07E1403A3007C1307C7FCA215E0140F15C0141F1580EC
+3F00147E147C5C495A495A495A495A011EC7FC5B5B4913305B485A4848136048C7FC000E
+14E0001FB5FC5A4814C0B6FCA21C2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E48
+7FEC1F80003F14C0A2EB800F1300A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EBFF
+C014F0EB00FC143FEC1F8015C0140F15E0A2EC07F0A21238127C12FEA3EC0FE012F80060
+14C00070131F6C1480001EEB3F00380780FC3801FFF038007FC01C2D7DAB23>I<140EA2
+141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0EA
+0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFFFC
+A21E2D7EAC23>I<EB3F80EBFFF03803E0783807C03E48487E48487E003E14801407007E
+14C0127C00FC14E01403A315F0A5007C1307127EA2003E130F7E6C131F3807803B3803E0
+F33800FFC390383F03E013001407A215C0A2140F001E1480003F14005C143E143C003E5B
+001C5B380E03E03807FF80D801FEC7FC1C2D7DAB23>57 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc ectt1095 10.95 56
+/Fc 56 126 df<143C147EEB01FE1303EB07FCEB0FF8EB1FE0EB3FC0EB7F80EBFF005B48
+5A485AA2485A5B120F5B121F5BA2123F90C7FCA25A127EA312FE5AAD7E127EA3127F7EA2
+7F121FA27F120F7F12077F6C7EA26C7E6C7E7FEB7F80EB3FC0EB1FE0EB0FF8EB07FCEB03
+FE1301EB007E143C174771BE2F>40 D<127812FCB4FC7F6C7E6C7EEA0FF06C7E6C7E6C7E
+1200137FEB3F80A2EB1FC0130F14E0130714F01303A214F81301A214FC1300A314FE147E
+AD14FE14FCA3130114F8A2130314F0A2130714E0130F14C0131FEB3F80A2EB7F0013FE12
+01485A485A485AEA3FE0485A485A90C7FC12FC1278174778BE2F>I<EB01E0497EA70030
+1403007CEC0F8000FEEC1FC0D8FF83137F9038E3F1FF267FF3F31380001FB5EAFE006C5C
+000314F0C614C0013F90C7FCEB0FFCEB3FFF90B512C0000314F0000F14FC48803A7FF3F3
+FF8026FFE3F113C0903883F07FD8FE03131F007CEC0F800030EC0300000091C7FCA76D5A
+22277AAE2F>I<EA07C0EA0FF0EA1FF8123F13FCA213FEA2121F120F1207EA007E13FE13
+FC1201A2EA03F8EA0FF0123FEAFFE013C01380EA7E0012380F18708A2F>44
+D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6E8A2F>46
+D<16E0ED01F01503A2150716E0150F16C0151F1680153F16005D157E15FE5DA214015D14
+035D14075D140F5D141F5D143F92C7FCA25C147E14FE5C13015C13035C13075C130F5CA2
+131F5C133F91C8FC5B137E13FE5B12015B12035BA212075B120F5B121F5B123F90C9FC5A
+127E12FE5AA25A127824477BBE2F>I<EB0380497EA2130FA2131F133FA2137FEA01FF5A
+127FB5FCA213CF138FEA7E0F1200B3B0003FB512F85A15FCA215F8A21E3977B82F>49
+D<EB0FFC90383FFF8090B512E0000314F848804880391FF80FFF263FE001138090388000
+7F48C7EA3FC0007E141FED0FE000FE140716F07E1503A3127E1218C8FCA2150716E0150F
+16C0151FA2ED3F80ED7F005D4A5A4A5A4A5A4A5A4A5A4A5A4A5A4AC7FC495AEB07FC495A
+495A495AEB7F8049C8FC485A4848EB01E0D80FF8EB03F0485A485A48B6FCB7FCA46C15E0
+24397BB82F>I<EB07FF013F13E048B512F84814FE4880481580261FFC0113C09038E000
+3FD83F80EB1FE06D130716F01503A26C5A6CC7FCC8FC150716E0150FA2ED1FC0157FEDFF
+80020F130090380FFFFE495B5DA215FE6D7FD9000113809138003FC0ED1FE0ED07F01503
+16F8150116FC1500A21218127EB4FCA2150116F8481403A2007FEC07F06DEB1FE0D83FE0
+133F3A1FFE01FFC06CB612806C15006C5CC614F8013F13E0010390C7FC263A7CB82F>I<
+EC07F84A7EA2141F143F157C147F147E14FEEB01FC14F8130314F01307EB0FE014C0131F
+1480133FEB7F00137E13FE5B485A12035B12075B485A121F5B123F90C7FC127E12FEB712
+FE16FFA46C15FEC8EA7C00AA91387FFFFC91B512FEA46E13FC28397DB82F>I<EC1FE0EC
+FFFC010313FF010F14805B4914C090387FF03F9039FF800FE03901FE001F485A485A5B48
+48EB0FC049EB0780001F91C7FC5B123F90C9FC5AA2007E1310903807FF80011F13E0D8FE
+7F13F848B57E00FD80B7FCEBFC019039F0007F8001C0EB3FC049131F90C7EA0FE0A24814
+0716F01503A3127EA4127F6C140716E07F001F140F6DEB1FC06C6C133F6DEB7F806C6CEB
+FF003803FE0390B55A6C5C6C5C013F13E0010F1380D903FEC7FC243A7BB82F>54
+D<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FCB1121FEA3F80EA7FC0EAFFE0
+A5EA7FC0EA3F80EA1F000B276EA62F>58 D<EA07C0EA0FE0EA1FF0EA3FF8A5EA1FF0EA0F
+E0EA07C0C7FCB1EA07C0EA0FF0EA1FF8123F13FCA213FEA2121F120F1207EA007E13FE13
+FC1201A2EA03F8EA0FF0123FEAFFE013C01380EA7E0012380F3470A62F>I<003FB612FC
+4815FEB8FCA36C15FECAFCA9007FB612FEB8FCA36C15FE6C15FC28157DA52F>61
+D<143F4A7EA24A7EA4903801F3E0A501037FA314E101077FA414C0010F7FA490381F807E
+A4013F137F4A7EA4017E6D7EA2017FB5FCA290B67EA49038FC000F48486D7EA400038149
+1303A3D87FFF90383FFF80A2B56C4813C0A26C496C1380A22A397EB82F>65
+D<007FB512E0B612FC15FF168016C06C15E03A03F0001FF0150FED03F8A2150116FC1500
+A5150116F8150316F01507ED1FE0ED7FC090B61280160015FC15FF16C016E09039F0000F
+F0ED03F8ED01FC150016FE167EA2163FA6167F167E16FEA2ED01FC1507ED1FF8007FB6FC
+B712F016E0168016006C14F828387EB72F>I<91387F8038903903FFE07C010FEBF8FC49
+13FC4913FF5BEBFFC048EB003F4848130FEA07F849130748481303A2484813015B123F90
+C8FCA25A127E1678160012FE5AAC7E127EA21678007F15FC7EA27F121F6D13016C6C14F8
+6D130312076DEB07F0D803FE130F6C6CEB1FE06C9038C07FC06DB512806D14006D5B6D5B
+010313F09038007F80263A7CB82F>I<007FB57EB612F015FC81816C812607E0017F9138
+003FE0151F6F7E6F7E15036F7EA26F7EA2167E167F82A41780161FAB163F1700A35E167E
+A216FE4B5AA24B5A15074B5A151F4B5A4AB45A007FB65AB7C7FC5D5D15F06C148029387E
+B72F>I<007FB612FCB77EA47ED803F0C7127EA7163C93C7FCA515F04A7EA490B5FCA6EB
+F001A46E5A92C8FCA5160FEE1F80A9007FB7FCB8FCA46C160029387DB72F>I<007FB612
+FEB8FCA47ED803F0C7123FA7161E1600A6157815FCA490B5FCA6EBF000A4157892C7FCAE
+387FFFE0B57EA46C5B28387DB72F>I<007FB512FEB7FCA46C14FE390007E000B3B3A800
+7FB512FEB7FCA46C14FE203879B72F>73 D<387FFFF080B5FCA27E5CD801F8C8FCB3B016
+1E163FA9007FB7FCA2B8FCA27E16FE28387DB72F>76 D<007FB512E0B612F815FEEDFF80
+16C06C15E03A03F0007FF0151FED07F81503ED01FCA2150016FE167EA616FE16FC1501A2
+ED03F81507ED1FF0157F90B612E016C01680EDFE0015F815E001F0C8FCB0387FFF80B57E
+A46C5B27387DB72F>80 D<387FFFFEECFFC0B612F015FC6C80812603F0037F9138007FC0
+153F6F7E150F1507821503A515075E150F151F4B5A157F913803FF8090B6C7FC5D5D5D81
+819038F003FF9138007F80153F151F82150FA9EEC1E0EEC3F0A316E33A7FFF8007E7EEFF
+E0B512C06F13C06C497E6F1380C9EA3E002C397EB72F>82 D<90391FF8038090397FFF07
+C048B512C74814EF4814FF5A381FF80F383FC00349C6FC48C7127F007E143F12FE48141F
+A2150FA46CEC0780007E91C7FC127F6C7E7FEA1FF86CB47E6C13F86CEBFF806C14E06C6C
+13F8010F7F01007FEC0FFF02001380ED3FC0151FED0FE01507A216F00078140312FCA56C
+140716E06C140F7F6DEB1FC001F0137F9039FE01FF8090B612005D00FD5CD8F87F5B011F
+13E0D8700390C7FC243A7BB82F>I<007FB71280B812C0A53AFC003F000FA70078ED0780
+C791C7FCB3B290381FFFFE497FA46D5B2A387EB72F>I<D87FF8903801FFE0486C4913F0
+A46C486D13E0001FC8EA0F806D141F000F1600A76C6C143EA7EC1F806C6C486C5AA4EC7F
+E01479A3000115789039F0F9F0F8A414F001F113F800005DA39038F9E079A201FB137DA3
+90397BC03DE0A4017F133FEC801FA3013F5CEC000F011E6D5A2C397FB72F>87
+D<387FFFFEB6FCA414FE00FCC7FCB3B3B3A5B512FE14FFA46C13FE18476DBE2F>91
+D<387FFFFEB6FCA47EC7123FB3B3B3A5007FB5FCB6FCA46C13FE18477DBE2F>93
+D<007FB612E0A2B712F0A36C15E0A224077B7D2F>95 D<EB7FF03803FFFE486D7E488048
+8048809038C01FF8EC03FC14016E7E6C48137E6CC7127FC87EA4EC7FFF0107B5FC133F48
+B6FC120748EBF83F381FFE00EA3FF0EA7FC090C7FC12FE5AA45D7E007F5CD980037F263F
+E01F13FF90B712807E6C14DF6C140F0001D9FC01130026007FE0C8FC292A7BA82F>97
+D<EA7FF0487EA4127F1201AAEC0FF0EC3FFC91B5FC01FB14C090B67E82ECF03F9138C00F
+F891388003FCEC0001496D7E5B167F4980A21780161FA8163FA26D15005EA26D14FEA26D
+495AEC80076E485A9138F03FF091B55A5E01FB5C01F991C7FC3900F07FFC9038001FE029
+397EB72F>I<903803FFC0010F13F8013F7F90B57E488048158048EB007FEA0FF85B485A
+49EB3F004848131E90C9FC5A127EA212FE5AA87E127EA2127FED07806C6CEB0FC07F6C6C
+131F6D1480D80FFC137F3A07FF81FF006C90B5FC6C5C6C5C013F13F0010F13C0D903FEC7
+FC222A79A82F>I<913803FF804A7FA480EC000FAAEB03FCEB1FFF017F13CF90B512EF48
+14FF5A3807FE07380FF801391FF0007F01C0133F485A151F48C7FC150F127E12FEA25AA8
+7E007E141FA2127F6C6C133F157F6C7E6D13FF380FF8012607FE0713FF90B712806C14EF
+6C14CF6C6C138F90261FFE071300D907F8C8FC29397DB72F>I<EB03FE90380FFF80013F
+13E090B57E488048803907FE07FE390FF800FF497FD81FC0EB3F80003F141F4914C090C7
+120F5A127E16E000FE14075AB7FCA516C000FCC9FC7E127EA2127F6C6CEB03C0ED07E06C
+7E6D130FD80FF8EB1FC0D807FE133F9039FF80FF806C90B5FC6C15006C6C13FC6D5B010F
+13E0010190C7FC232A7BA82F>I<4AB4FC020713C0021F13E0147F91B512F0A249130FEB
+03FC9138F807E0903907F001804AC7FCA8007FB61280B712C0A46C1580260007E0C7FCB3
+A9003FB512FC4880A46C5C24397DB82F>I<903903F801FE903A1FFF07FF80017F13DF90
+B712C05A5AD9FE0FEB0F803B07F803FC070048486C6CC7FCEBE00049137E001F147F497F
+A66D5B000F147E6D13FEEBF0016C6C485A3903FE0FF890B5FC485C5D485C019F90C8FCEB
+83F80180C9FCA37FEA07E490B512F06C14FF4815C0488148813A3FC0001FF890C7EA01FC
+007E6E7E007C157E00FC153E48153F82A46C5D007C153E007F15FE6C6C495A01E01307D8
+1FFEEB7FF86CB65A6C5D000115806C92C7FC011F13F8010313C02A3E7DA72F>I<EA7FF0
+487EA4127F1201AAEC0FF0EC3FFCECFFFE01FB7F90B67EA29138F03FC0ECC01F4A6C7E14
+004913075BA35BB3A23B7FFFE07FFF80B56CB512C0A46C496C13802A387EB72F>I<EB03
+80EB0FE0A2497EA36D5AA2EB038090C9FCA9383FFFE0487FA47EEA0003B3A9007FB6FCB7
+FC1680A216007E213979B82F>I<EA7FF0487EA4127F1200AB0207B5FC5C1780A2170080
+9138003F804BC7FC15FE4A5A4A5A4A5A4A5A4A5A4A5A4AC8FC5C01F97F13FB90B57EECE7
+E0ECC7F01483EC01F8496C7E497F49137E816F7EA26F7E6F7E823B7FFFF03FFFC0B56C5A
+17E0A217C06C497E2B387EB72F>107 D<387FFFF080B5FCA27EA2EA0001B3B3A8007FB6
+12E0A2B712F0A26C15E0A224387BB72F>I<903901F801F83A7F8FFC0FFC3AFFDFFE1FFE
+90B5487E92B51280A23A7FFE1FFE1F3B07FC0FFC0FC001F813F89039F007F00701E013E0
+A301C013C0B3A33B7FFC3FFC3FFCD8FFFE01FE13FE027F137FA2023F133FD87FFC01FC13
+FC2F2880A72F>I<EC0FF0397FF03FFC486CB47E01FB7F90B67EA26C9038F03FC00001EB
+C01F4A6C7E14004913075BA35BB3A23B7FFFE07FFF80B56CB512C0A46C496C13802A287E
+A72F>I<EB03FC90381FFF80497F90B512F0488048803907FE07FE390FF801FF9038E000
+7F4848EB3F8049131F003F15C090C7120F4815E0007E1407A248EC03F0A96C1407007E15
+E0A2007F140FA26C6CEB1FC0A26C6CEB3F806D137F3A0FF801FF003907FE07FE6CB55A6C
+5C6C5C6D5B011F1380D903FCC7FC242A7BA82F>I<EC0FF0397FF03FFC486CB5FC01FB14
+C090B67E826CEBF03F00019038C00FF891388003FCEC0001496D7E5B167F4980A2178016
+1FA8163FA26D15005EA26D14FEA26D495AEC80076E485A9138F03FF091B55A5E01FB5C01
+F991C7FC9038F87FFCEC1FE091C9FCAD387FFFE0B57EA46C5B293C7EA72F>I<ED0FF0D8
+7FFFEB7FFE0281B5FCB51287028F14806C139F9138BFF87F39001FFFC09238003F004A13
+1E4A90C7FC5C5CA25C5CA45CAF007FB512F881B6FCA27E5D29287EA72F>114
+D<90381FFC0E48B5129F000714FF5A5A5A387FF007EB800000FEC77EA24880A37E007F14
+1E01C090C7FCEA3FFC381FFFF06CEBFF80000314E0C614F8011F13FE9038007FFF020113
+80EC007F0078EC1FC000FC140FED07E0A27EA27E6D130F6DEB1FC06D133F9039FC01FF80
+90B6FC16005D00F814F8013F13E0D8700790C7FC232A7AA82F>I<130F497EAA007FB612
+C0B712E0A46C15C026001F80C7FCB216F0ED01F8A5ECC003ED07F090380FE00F9138F81F
+E06DB512C0A26D14806DEBFE009038007FF8EC1FE025337EB12F>I<3A7FF001FFC0486C
+487FA4007F7F0001EB0007B3A4150FA2151F153F6D137F6CB448B5128091B612C07FA26D
+13E7010F01831380D903FEC8FC2A287EA62F>I<D87FFF90383FFF80B56C4813C0A46C49
+6C1380D801F0903803E000A26D130700005DA26D130F017C5CA36D49C7FCA36D133EA36D
+6C5AA36D6C5AA3903803E1F0A3903801F3E0A36DB45AA36E5AA26EC8FC2A277EA62F>I<
+3B7FFF801FFFE06E5AB515F0A26C16E04A7ED807C0C7EA3E00A36D147E0003157CA56C6C
+5CEC0F80EC1FC0EC3FE0A36C6C486C5AEC7DF1A214FD15F914F9D978F85B1379137DA2EC
+F079157B013FEB7FC014E0153FA2ECC01F6D486C5A2C277FA62F>I<3B7FFF803FFF80B5
+4913C014C0A214806C6E13803B01F00003E0007F12004B5A7F137C017E495A133EA2013F
+49C7FC7FA290380F803EA214C001075BA214E001035BA2EB01F05D14F1EB00F95DA2147B
+EC7FC0143FA25D141FA292C8FCA3143EA35CA214FC000F5BEA1F81EA3FC1EBC3F0EB07E0
+131FEBFFC06C5BA26C48C9FC6C5AEA03F02A3C7EA62F>121 D<003FB612F84815FCA416
+F8007EC7EA0FF0ED1FE0ED3FC0ED7F80EDFF00003C495AC7485A4A5A4A5A4A5A4A5A4A5A
+4AC7FC495A495A495A495A495A495A495A49C7123C4848147E485A485A485A485A485A48
+B612FEB7FCA46C15FC27277DA62F>I<ED3FE0913803FFF0140F5C147F16E09138FFE000
+4AC7FC495A5CB3A21303495A133F383FFFE0B55A5C49C8FC6D7E80003F7F38003FF01307
+6D7E1301B3A2806D7EECFFE091387FFFE016F0141F8014039138003FE024477BBE2F>I<
+127CA212FEB3B3B3AD127CA207476CBE2F>I<EA7FC0EAFFFC13FF8014E07EC66C7E1307
+6D7E1301B3A2806D7EECFFC091387FFFC06E13F0801407141F5C4A13C09138FFC0004AC7
+FC495A5CB3A21303495A137F387FFFE0B5FC148091C8FC13FCEA7FC024477BBE2F>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd cmsy10 10.95 2
+/Fd 2 16 df<EB03C0A2805CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390F
+E187F03903F18FC03900FDBF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0
+390FE187F0393FC3C3FC39FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220
+277AA92D>3 D<EB0FFCEB3FFF90B512C0000314F04880488048804880A2481580A3B712
+C0AA6C1580A36C1500A26C5C6C5C6C5C6C5CC614C0013F90C7FCEB0FFC22227BA72D>15
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe ecrm0900 9 81
+/Fe 81 256 df<38038001390FF80380391FFE0700383FFFFE127838E00FF8384003F019
+077AB126>3 D<003C1378007E13FC38FF01FEA2EB81FFA2EA7F80003D137B00011303A4
+00031307EB0006A248130E0006130C000E131C000C1318001C13384813704813E0006013
+C018177FB31A>17 D<003C1378007E13FC38FF01FEA2EB81FFA2EA7F80003D137B000113
+03A400031307EB0006A248130E0006130C000E131C000C1318001C13384813704813E000
+6013C018177F871A>I<91393FE00FE0903A01FFF83FF8903A07E01EF83C903A1F800FF0
+7E903A3F001FE0FE017E133F4914C0485A1738484890381F8000ACB812C0A33B03F0001F
+8000B3A7486C497EB50083B5FCA32F357FB42D>27 D<EC1FE0ECFFFC903803F01E90390F
+C00780EB1F8090393F000FC0017E131F5BA2485AED0F8092C7FCA9ED0FC0B7FCA33901F8
+001F150FB3A6486CEB1FE0267FFFC1B5FCA328357FB42B>I<EC1FF891B512C0903803F0
+0F90380FC01FEB1F80EB3F00137E5B150F485AACB7FCA33901F8000FB3A7486CEB1FE026
+7FFFE3B5FCA328357FB42B>I<017C1503D803FEED078026078780140F260F01C0141F26
+1E00E0EC3F00003E01F8147E003C017CEB01FE007C90397F8007FC913933FFFEF8007890
+38307FF900F89039380001F00218495A16075F4C5A161F4CC7FC163E5E023813FC007801
+305B007C4A5AEC7003003C01605B003E9038E007C0001EEBC00FD80F015C270787801FC8
+FC3903FE003FD8007C133E90C748131F03FCEBFF809239F801E1E0913A01F003C0700203
+9038078030DBE00F1338DA07C0EB0018020F49131C0380140C91381F001E4A013E130E02
+3E15065C14FC495A5C495A13075C4948150E011F021E130C91C7121F013E161C017E6E13
+18017CED803849020713300001923803C07049913801E1E049913800FF806C48ED1F0037
+3C7CB740>37 D<14C01301EB0380EB0F00130E5B133C5B5BA2485A485AA212075B120F90
+C7FC5AA2121E123EA3123C127CA55AB0127CA5123C123EA3121E121FA27E7F12077F1203
+A26C7E6C7EA213787F131C7F130FEB0380EB01C01300124A79B71E>40
+D<12C07E1270123C121C7E120F6C7E6C7EA26C7E6C7EA27F1378137C133C133EA2131E13
+1FA37F1480A5EB07C0B0EB0F80A514005BA3131E133EA2133C137C137813F85BA2485A48
+5AA2485A48C7FC120E5A123C12705A5A124A7CB71E>I<123C127EB4FCA21380A2127F12
+3D1201A412031300A25A1206120E120C121C5A5A126009177A8715>44
+D<B512F0A514057F921A>I<123C127E12FFA4127E123C08087A8715>I<1518A215381530
+A21570156015E015C0A214011580A2140315005C1406A2140E140CA2141C141814381430
+A214701460A214E05CA213015C130391C7FCA25B1306A2130E130C131C1318A213381330
+A213701360A213E05B12015BA2120390C8FCA25A1206120E120CA2121C1218A212381230
+12701260A212E05AA21D4B7CB726>I<EB0FE0EB7FFCEBF83E3903E00F803907C007C0EB
+8003000F14E0391F0001F0A24814F8A2003E1300007E14FCA500FE14FEB2007E14FCA56C
+EB01F8A36C14F0A2390F8003E03907C007C0A23903E00F803900F83E00EB7FFCEB0FE01F
+347DB126>I<13075B5B137FEA07FFB5FC13BFEAF83F1200B3B3A2497E007FB51280A319
+327AB126>I<EB3FC0EBFFF0000313FC380F80FF391E007F80001CEB3FC048EB1FE04813
+0F15F00060130712FC6C14F87E1403A3007E1307123CC7FC15F0A2140F15E0EC1FC0A2EC
+3F801500147E5C495A5C495A495A495A49C7FC133E133C4913185B485A48481330485A48
+C7FC001C1470001FB512F05A5AB612E0A31D327CB126>I<EB1FE0EBFFFC4813FF3907E0
+3F80390F001FC0001EEB0FE0001CEB07F0123F018013F8140313C01380A2381F0007C7FC
+15F0A2EC0FE015C0141FEC3F80EC7E00EB01F8EB7FE014FCEB003FEC1FC0EC0FE0EC07F0
+15F8140315FC140115FEA3127EB4FCA415FC48130312780070EB07F86C14F0003C130F00
+1FEB1FE0390FE03F800003B51200C613FCEB1FE01F347DB126>I<EC01C0A214031407A2
+140F141FA2143F147F146F14CF1301EB038F140F1307130E130C131C13381330137013E0
+13C0EA0180120313001206120E120C5A123812305A12E0B71280A3C7380FC000A94A7E01
+07B51280A321337EB226>I<000C14C0380FC00F90B5128015005C5C14F014C0D80C18C7
+FC90C8FCA9EB0FC0EB7FF8EBF07C380FC03F9038001F80EC0FC0120E000CEB07E0A2C713
+F01403A215F8A41218127E12FEA315F0140712F8006014E01270EC0FC06C131F003C1480
+6CEB7F00380F80FE3807FFF8000113E038003F801D347CB126>I<14FE903807FF80011F
+13E090383F00F0017C13703901F801F8EBF003EA03E01207EA0FC0EC01F04848C7FCA248
+C8FCA35A127EEB07F0EB1FFC38FE381F9038700F809038E007C039FFC003E0018013F0EC
+01F8130015FC1400A24814FEA5127EA4127F6C14FCA26C1301018013F8000F14F0EBC003
+0007EB07E03903E00FC03901F81F806CB51200EB3FFCEB0FE01F347DB126>I<1230123C
+003FB6FCA34814FEA215FC0070C7123800601430157015E04814C01401EC0380C7EA0700
+1406140E5C141814385CA25CA2495A1303A3495AA2130FA3131F91C7FCA25BA55BA9131C
+20347CB126>I<EB0FE0EB7FFC90B5FC3903F01F803907C007C0390F0003E0000EEB01F0
+001E1300001C14F8003C1478A3123EA2003F14F86D13F0EBC001D81FF013E09038F803C0
+390FFE07803907FF0F006C13DE6C13F87EEB3FFE8001F713C0D803E313E0D8078013F039
+0F007FF8001E131F003EEB07FC003C1303481301EC007E12F848143EA2151EA37E153C12
+78007C14787E6C14F0390F8003E03907F01FC00001B5120038007FFCEB1FE01F347DB126
+>I<123C127E12FFA4127E123C1200B0123C127E12FFA4127E123C08207A9F15>58
+D<123C127EB4FCA4127E123CC7FCB0123C127EB4FCA21380A2127F123D1201A412031300
+A25A1206120E120C121C5A5A1260092F7A9F15>I<1706171E1778EE03E0EE0F80EE3C00
+16F0ED03C0030FC7FC153CEC01F0EC07C0021EC8FC1478EB01E0EB0780011EC9FC13F8EA
+03E0000FCAFC123C12F0A2123C120FEA03E0EA00F8131EEB0780EB01E0EB0078141EEC07
+C0EC01F0EC003C150FED03C0ED00F0163CEE0F80EE03E0EE0078171E17062F2C7AA83C>
+I<15E0A34A7EA24A7EA34A7EA3EC0DFE140CA2EC187FA34A6C7EA202707FEC601FA202E0
+7FECC00FA2D901807F1507A249486C7EA301066D7EA2010E80010FB5FCA249800118C77E
+A24981163FA2496E7EA3496E7EA20001821607487ED81FF04A7ED8FFFE49B512E0A33336
+7DB53A>65 D<B7FC16E016F83A03FC0003FE0001EC00FFEE7F80EE3FC0161F17E0160F17
+F0A617E0161F17C0EE3F80EE7F0016FEED03FC90B612F05E9039FC0007FCED00FEEE3F80
+EE1FC0EE0FE017F0160717F8160317FCA617F81607A2EE0FF0EE1FE0163FEE7FC0000391
+3803FF00B75A16F816C02E337DB236>I<DA03FE130C91393FFF801C91B512E0903A03FE
+01F83C903A0FF0003C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B48
+48157C485A173C485A171C123F5B007F160CA390C9FC481600AB7E6D150CA3123F7F001F
+161C17186C7E17386C6C15306C6C15706D15E012016C6CEC01C0D97F80EB0380D91FC0EB
+0F00D90FF0131ED903FE13FC0100B512F0023F13C0DA03FEC7FC2E377CB437>I<B77E16
+F016FE3A01FE0001FF00009138003FC0EE0FE0707E707E707E707E177E177FEF3F80A2EF
+1FC0A3EF0FE0A418F0AA18E0A3171F18C0A21880173F18005F17FE5F4C5AEE07F04C5AEE
+3FC000014AB45AB748C7FC16F8168034337EB23B>I<B812C0A3D803FCC7127F0001150F
+EE03E01601A21600A21760A403061330A41700150EA2151E157E90B512FEA39038FC007E
+151E150EA21506170CA3171892C7FCA41738A21770A217F01601160316070003157FB812
+E0A32E337DB234>I<B81280A3D803FCC7FC0001151FEE07C01603A21601A21600A41760
+150CA31700A2151CA2153C15FC90B5FCA3EBFC00153C151CA2150CA592C8FCAB487EB512
+FEA32B337DB232>I<DA03FE130C91393FFF801C91B512E0903A03FE01F83C903A0FF000
+3C7CD91FC0EB0EFCD97F80130701FEC7120348481401000315005B4848157C485A173C48
+5A171C123F5B007F160CA390C9FC4893C7FCAA0303B512E07E7F92390003FE00705A123F
+7F121FA26C7E7F12076C7E7F6C6C14036C7E6D6C1307D91FC0EB0E7CD90FF0EB1C3CD903
+FEEBF81C0100B5EAF00C023F01C0C7FCDA03FEC8FC33377CB43C>I<B5D8FE03B512F8A3
+000190C73807FC006C486E5AB390B7FCA349C71203B3A3486C4A7EB5D8FE03B512F8A335
+337EB23A>I<B512FEA3000113006C5AB3B3A7487EB512FEA317337EB21C>I<017FB5FCA3
+9038003FE0EC1FC0B3B1127EB4FCA4EC3F805A0060140000705B6C13FE6C485A380F03F0
+3803FFC0C690C7FC20357DB227>I<B500FE903807FFF8A3000190C7000113006C48EC00
+FC17F04C5A4C5A4CC7FC160E5E5E5E5E4B5A4B5A4BC8FC150E5D5D15F84A7E14034A7EEC
+0EFF5C4A6C7E4A6C7EECE01FD9FFC07F4A6C7E4A6C7E5B6F7E6F7EA26F7E707EA2707E70
+7E160F83707E707EA283486C913807FF80B500FE013F13FCA336337EB23C>I<B512FEA3
+D803FEC9FC6C5AB3A9EE0180A416031700A45EA25E5E5E5E16FE00031407B7FCA329337D
+B230>I<D8FFFC923801FFF86D5DA20003EFFE00D801BFED06FCA3D99F80140CA2D98FC0
+1418A3D987E01430A2D983F01460A3D981F814C0A3D980FCEB0180A2027EEB0300A36E13
+06A26E6C5AA36E6C5AA36E6C5AA26E6C5AA36E6C5AA3913800FD80A2037FC7FCA3486C13
+3ED80FF04B7EB5011C90387FFFF8A33D337CB246>I<D8FFFE91381FFFF87F80C6030013
+006E143CD9DFE01418EBCFF0A2EBC7F8EBC3FCA2EBC1FEEBC0FF6E7EA26E7E6E7EA26E7E
+6E7E6E7EA26E7E6E7EA2ED7F80ED3FC0ED1FE0A2ED0FF0ED07F8A2ED03FCED01FEED00FF
+A2EE7F98EE3FD8A2EE1FF8160F1607A216031601A2486C1400D807F81578B500C01438A2
+171835337EB23A>I<EC07FC91387FFFC0903901FC07F0903907E000FCD90F80133E013F
+C76C7E017E6E7E496E7E48486E7E48486E7EA248486E7E000F8249157E001F167FA24848
+ED3F80A2007F17C0A290C9121FA24817E0AB6C17C06D153FA3003F17806D157FA2001F17
+006D5D000F5E6C6C4A5AA26C6C4A5A00015E6C6C4A5A017E4A5A6D4A5AD91FC0017FC7FC
+D907E013FC903901FC07F09039007FFFC0DA07FCC8FC33377CB43C>I<B612FEEDFFC016
+F03A03FC0007FC0001EC00FE167FEE3F80EE1FC017E0160FA217F0A617E0A2EE1FC0A2EE
+3F80EE7F0016FEED07F890B65A168001FCC9FCB3A2487EB512F8A32C337DB234>I<EC07
+FC91387FFFC0903901FC07F0903907E000FC4948137E013FC7EA1F80017E6E7E496E7E48
+486E7E00038249140148486E7E000F8249157E001F167FA24848ED3F80A2007F17C0A390
+C9121F4817E0AB6C17C0A26D153FA2003F1780A26D157F001F1700A2270FE001F013FE00
+07D907FC5B9039F00E0E013B03F80C0703F8000190391C0383F03B00FC180187E0017EEC
+CFC0013FECDF8090271F9C00FFC7FCD907EC13FC902701FE07F013609038007FFF913807
+FC7091C7007813E0A2EE7C01EE7E0393387F07C0EE3FFFA21880821800705A705AEE01F0
+33447CB43C>I<B612FCEDFF8016F03A01FE0007FC0000EC01FEED007F707E707E83160F
+83A65FA24C5AA24C5A047EC7FC4B5AED0FF090B612C093C8FC9039FE001FC0ED07F06F7E
+6F7E150082167E167FA583A5180C17C0A2043F131C486C1618B500FEEB1FE0040F133893
+3807F070C93801FFE09338003F8036357EB239>I<90381FE00390387FFC0748B5FC3907
+F01FCF390F8003FF48C7FC003E80814880A200788000F880A46C80A27E92C7FC127F13C0
+EA3FF013FF6C13F06C13FF6C14C06C14F0C680013F7F01037F9038003FFF140302001380
+157F153FED1FC0150F12C0A21507A37EA26CEC0F80A26C15006C5C6C143E6C147E01C05B
+39F1FC03F800E0B512E0011F138026C003FEC7FC22377CB42B>I<007FB712FEA3903980
+07F001D87C00EC003E0078161E0070160EA20060160600E01607A3481603A6C71500B3AB
+4A7E011FB512FCA330337DB237>I<B500FE90381FFFF8A3000190C813006C48153C1718
+B3AF1738017F1530A217706D6C1460011F15E06E495A010F14036D6C495A6D6C49C7FCD9
+01FC131E6DB413FC91383FFFF0020F13C0020190C8FC35357EB23A>I<B500F0903803FF
+F8A3D807FEC8EA7FC06C48ED1F000001161E6D151C00001618A26D15386D1530A26D6C5C
+A26E14E0011F5DA26D6C495AA28001074AC7FCA26D6C1306A28001015CA26E131C010014
+18806E5BA2ED8070023F1360A26E6C5AA215E1020F5BA2DA07F3C8FCA215FBEC03FEA36E
+5AA26E5AA31570A235357EB23A>I<B5D8F007B539800FFFF0A3000390C7273FF0000113
+00D801FC6E48EB007C1A386D140F00001930836D020715706D1860A26E496C14E0013F60
+A26ED919FC1301011F60A26ED930FE1303010F95C7FCA26ED9607F5B01071706A26E9039
+C03F800E0103170CA2913BFC01801FC01C01011718A2913BFE03000FE03801001730A2DA
+FF06EB07F0027F5EA2038CEB03F8023F5EA203D8EB01FC021FEDFD80A203F0EB00FF020F
+93C8FCA24B800207157EA24B143E0203153CA24B141C020115184C357FB24F>I<267FFF
+FC90B512C0A3000101E090381FF80026007F80EB0FC0013F6E5A6E91C7FC6D6C130E010F
+140C6E5B6D6C133801035C6E13606D6C13E06D6C485A5EDA7F83C8FCEC3FC715C6EC1FEC
+EC0FFC5D14076E7EA26E7E815C6F7E9138063FC0140E4A6C7E9138180FF0EC380702707F
+91386003FCECC0010101804A6C7E49C77E4981010E6E7E010C6E7E131C496E7E01786E7E
+13FCD807FEEC1FFEB56C90B512F8A335337EB23A>I<003FB612FCA39039F80007F813C0
+90C7EA0FF0003EEC1FE0123C0038EC3FC00078EC7F801270EDFF004A5AA20060495AA24A
+5A4A5AC7FC4A5A4A5AA24A5A4AC7FCA2495A495AA2495A495AA24948130C495AA2495A49
+C7FCA24848141CA2485A485A1638485A4848147816F84848130148481307153FB7FCA326
+337CB22F>90 D<007FB712FCB812FEA26C16FC2F047A703C>95 D<EB7F803803FFF0380F
+80FC381C003E003F133F6D6C7E6E7EA26E7EEA1F00C7FCA4EB01FF131FEBFF873803FC07
+EA0FF0EA1FC0EA3F80127F13004815C05AA3140FA26C131F6C133B3A3F8071F180391FC1
+E1FF2607FFC013003900FE003C22237DA126>97 D<EA03F012FFA312071203AEEC3F80EC
+FFE09038F3C0F89038F7007E01FE7F49EB1F8049EB0FC05BED07E016F0A2150316F8AA16
+F0150716E0A2ED0FC07F6DEB1F8001ECEB3F0001CF137C90388381F8903801FFE0C76CC7
+FC25357EB32B>I<EB07F8EB3FFF9038FC07C03901F000E03903E003F03807C007120FEA
+1F80123F90380003E04890C7FCA2127E12FEAA127FA26C14187F001F14386D1330000F14
+706C6C13E03903F001C03900FC0F8090383FFE00EB07F01D237EA122>I<153FEC0FFFA3
+EC007F81AEEB07F0EB3FFCEBFC0F3901F003BF3907E001FF48487E48487F8148C7FCA25A
+127E12FEAA127E127FA27E6C6C5BA26C6C5B6C6C4813803A03F007BFFC3900F81E3FEB3F
+FCD90FE0130026357DB32B>I<EB0FE0EB7FFCEBF83F3903F00F80D807E013C0390FC007
+E0381F800315F0EA3F0014014814F8127EA212FEA2B6FCA248C8FCA5127E127FA26C1418
+A26C6C1338000F14306D13706C6C13E03901F003C03900FC0F00EB3FFEEB07F01D237EA1
+22>I<EB01FCEB07FF90381F078090383E0FC0EB7C1F13FCEA01F8A20003EB070049C7FC
+ACB512F0A3D803F0C7FCB3A7487E387FFFE0A31A357FB417>I<151F90391FC07F809039
+FFF8E3C03901F07FC73907E03F033A0FC01F83809039800F8000001F80EB00074880A66C
+5CEB800F000F5CEBC01F6C6C48C7FCEBF07C380EFFF8380C1FC0001CC9FCA3121EA2121F
+380FFFFEECFFC06C14F06C14FC4880381F0001003EEB007F4880ED1F8048140FA56C141F
+007C15006C143E6C5C390FC001F83903F007E0C6B51280D91FFCC7FC22337EA126>I<EA
+03F012FFA312071203AEEC1FC0EC7FF09038F1E0FC9038F3807C9038F7007E13FE497FA2
+5BA25BB3486CEB7F80B538C7FFFCA326347EB32B>I<EA0780EA0FC0EA1FE0A4EA0FC0EA
+0780C7FCAAEA07E012FFA3120F1207B3A6EA0FF0B5FCA310337EB215>I<EB03C0EB07E0
+EB0FF0A4EB07E0EB03C090C7FCAAEB03F013FFA313071303B3B01238127C00FE13E01307
+14C0130F007C138038381F00EA1FFCEA07F0144384B217>I<EA03F012FFA312071203AF
+913803FFE0A36E1300EC00F8EC01E05D4A5A020FC7FC141C5C5C14F0EBF3F8EBF7FC13FE
+EBFC7EEBF87F496C7E141F6E7E8114076E7E8114016E7E81486CEBFF80B500C313F0A324
+347EB329>I<EA07E012FFA3120F1207B3B3A7EA0FF0B5FCA310347EB315>I<2703F01FE0
+13FF00FF90267FF80313C0903BF1E07C0F03E0903BF3803E1C01F02807F7003F387FD803
+FE1470496D486C7EA2495CA2495CB3486C496C487EB53BC7FFFE3FFFF0A33C217EA041>
+I<3903F01FC000FFEB7FF09038F1E0FC9038F3807C3907F7007EEA03FE497FA25BA25BB3
+486CEB7F80B538C7FFFCA326217EA02B>I<EB07F0EB3FFE9038FC1F803901F007C03903
+C001E000078048486C7E48C7127CA248147E003E143E007E143FA300FE1580A8007E1500
+A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900FC1F80D93FFEC7FCEB07F0
+21237EA126>I<3903F03F8000FFEBFFE09038F3C0F89038F7007ED807FE7F6C48EB1F80
+4914C049130F16E0ED07F0A3ED03F8A9150716F0A216E0150F16C06D131F6DEB3F801600
+01FF13FC9038F381F89038F1FFE0D9F07FC7FC91C8FCAA487EB512C0A325307EA02B>I<
+903807F00390383FFC07EBFC0F3901F8038F3807E001000F14DF48486CB4FC497F123F90
+C77E5AA25A5AA9127FA36C6C5B121F6D5B000F5B3907E003BF3903F0073F3800F81EEB3F
+F8EB0FE090C7FCAAED7F8091380FFFFCA326307DA029>I<3803E07C38FFE1FF9038E38F
+809038E71FC0EA07EEEA03ECA29038FC0F8049C7FCA35BB2487EB512E0A31A217FA01E>
+I<EBFF06000713CE381F00FE003C133E48131E140E5A1406A27EA200FE90C7FC6C7EEA7F
+FC383FFFC014F0000F7F6C7FC67FEB0FFF1300EC3F8000C0131F140F6C1307A37E15006C
+5B6C130E6C5B38F7807838E1FFE038C07F8019237EA11E>I<1330A51370A313F0A21201
+A212031207381FFFFEB5FCA23803F000AF1403A814073801F806A23800FC0EEB7E1CEB1F
+F8EB07E0182F7FAD1E>I<D803F0133F00FFEB0FFFA30007EB007F000380B35DA35D1201
+6D4813800000903803BFFC90387E073FEB1FFED907F8130026227EA02B>I<B5EBFFF0A3
+D80FF0EB3F800007EC1F000003140E150C6D131C00011418A26C6C5BA26D1370017E1360
+137F6D5BA290381F8180A214C3010F90C7FCA2EB07E6A214FE6D5AA26D5AA36D5AA21460
+24217E9F29>I<B53A1FFF81FFF0A33C07F801FC003F8001F049EB1E0000030100141C81
+6C6C017C1318A26D017E1338000002FE1330A290267E01FF5B159F168090263F030F5BA2
+16C0903A1F8607C180A202C613E390260FCC0390C7FCA2D907FC13F6ECF80116FE6D486C
+5AA36D481378A36D48133034217F9F37>I<B53801FFF8A32603FE0013806C48EB7C0000
+001478017E1370017F5B90383F81C090381F8380D90FC3C7FCEB07E614FE6D5A6D5A6D7E
+80805B9038039F809038071FC09038060FE0EB0C0790381C03F0496C7E01707FEBF00000
+0180000FECFF8026FFFC0313FCA326207F9F29>I<3A7FFF807FF8A33A07F8001FC00003
+EC0F800001EC070015066C6C5BA26D131C017E1318A26D5BA2EC8070011F1360ECC0E001
+0F5BA2903807E180A214F3010390C7FC14FBEB01FEA26D5AA31478A21430A25CA214E05C
+A2495A1278D8FC03C8FCA21306130EEA701CEA7838EA1FF0EA0FC025307F9F29>I<003F
+B512F0A2EB000F003C14E00038EB1FC00030EB3F800070137F1500006013FE495A13035C
+C6485A495AA2495A495A49C7FC153013FE485A12035B48481370485A001F14604913E048
+5A387F000348130F90B5FCA21C207E9F22>I<3801C0073907F01FC0000F80A400075C26
+01C007C7FCCAFCA7EB7F803803FFF0380F80FC381C003E003F133F6D6C7E6E7EA26E7EEA
+1F00C7FCA4EB01FF131FEBFF873803FC07EA0FF0EA1FC0EA3F80127F13004815C05AA314
+0FA26C131F6C133B3A3F8071F180391FC1E1FF2607FFC013003900FE003C22327DB026>
+228 D<9038E003803903F80FE0000780A400035C3900E0038090C9FCA7EB07F0EB3FFE90
+38FC1F803901F007C03903C001E000078048486C7E48C7127CA248147E003E143E007E14
+3FA300FE1580A8007E1500A36C147EA26C147C6D13FC6C6C485A00075C3903F007E03900
+FC1F80D93FFEC7FCEB07F021327EB026>246 D<013813709038FE01FCA2EBFF03A2EBFE
+01A2903838007090C9FCA8D803F0133F00FFEB0FFFA30007EB007F000380B35DA35D1201
+6D4813800000903803BFFC90387E073FEB1FFED907F8130026327EB02B>252
+D<EB03F8EB1FFF90383E07809038FC01C0496C7E000114605B000314701530A815701560
+A2EC07E0EC1F8000FF013CC7FC5CA200035BA580A280ECFF80EC7FF015FC6E7E6E7E0207
+13801400ED1FC0150FECC007A21503A214E0A3ED0780000713F000FF9038F80F00ECFC1E
+ECEFFCC7EAC7E022367FB426>255 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff ecrm0600 6 10
+/Ff 10 58 df<13FF000313C0380781E0380F00F0001E137848133CA248131EA400F813
+1FAD0078131EA2007C133E003C133CA26C13786C13F0380781E03803FFC0C6130018227D
+A01E>48 D<13E01201120712FF12F91201B3A7487EB512C0A212217AA01E>I<EA01FC38
+07FF80381C0FC0383003E0386001F0EB00F812F86C13FCA2147C1278003013FCC7FC14F8
+A2EB01F0EB03E014C0EB0780EB0F00131E13385B5B3801C00CEA0380380600185A5A383F
+FFF85AB512F0A216217CA01E>I<13FF000313C0380F03E0381C00F014F8003E13FC147C
+A2001E13FC120CC712F8A2EB01F0EB03E0EB0FC03801FF00A2380003E0EB00F01478147C
+143E143F1230127812FCA2143E48137E0060137C003813F8381E03F0380FFFC000011300
+18227DA01E>I<14E01301A213031307A2130D131D13391331136113E113C1EA01811203
+EA07011206120C121C12181230127012E0B6FCA2380001E0A6EB03F0EB3FFFA218227DA1
+1E>I<00101330381E01F0381FFFE014C01480EBFE00EA1BF00018C7FCA513FE381BFF80
+381F03C0381C01E0381800F014F8C71278A2147CA21230127812F8A214784813F8006013
+F0387001E01238381E07803807FF00EA01F816227CA01E>I<EB0FC0EB7FF03801F03838
+03C0183807803C380F007C121E001C1338003C1300A2127C1278EB7FC038F9FFE038FB80
+F038FE0038143C48131EA248131FA41278A36C131EA2001C133C001E13386C1370380781
+E03801FFC038007F0018227DA01E>I<1230123C003FB5FCA24813FE14FC3860001C1438
+14704813E014C0EA0001EB0380EB07001306130E5BA25BA21378A35BA41201A76C5A1823
+7CA11E>I<137F3803FFC0380781E0380E00704813380018131C1238A3123C003F133838
+1FC078EBE0F0380FF9E03807FF80120114C0000713F0380F0FF8381C03FC383801FE3870
+007E141F48130F1407A314060070130E0078130C6C1338001F13F03807FFC0C613001822
+7DA01E>I<13FE3803FFC0380781E0380E0070481378003C133848133CA200F8131EA314
+1FA40078133FA26C137F121C380F01DF3807FF9F3803FE1EC7FCA2143E143C001C133800
+3E13781470003C13E0381801C0381C0780380FFE00EA03F818227DA01E>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg ecrm0800 8 10
+/Fg 10 58 df<EB3FC0EBFFF03803E07C48487E48487E497E001EEB0780A2003E14C0A2
+48EB03E0A500FC14F0B0007C14E0A3007E1307003E14C0A36CEB0F806C14006D5A3807C0
+3E3803F0FC3800FFF0EB3FC01C2D7DAB23>48 D<130C133C137CEA03FC12FFEAFC7C1200
+B3B113FE387FFFFEA2172C7AAB23>I<EB7F803801FFF0380780FC380E003F48EB1F8048
+EB0FC05A0060EB07E012F000FC14F07E1403A3007C1307C7FCA215E0140F15C0141F1580
+EC3F00147E147C5C495A495A495A495A011EC7FC5B5B4913305B485A4848136048C7FC00
+0E14E0001FB5FC5A4814C0B6FCA21C2C7DAB23>I<EB3FC03801FFF03807C0FC380E007E
+487FEC1F80003F14C0A2EB800F1300A2000C131FC7FC1580A2EC3F00143E5C5CEB03F0EB
+FFC014F0EB00FC143FEC1F8015C0140F15E0A2EC07F0A21238127C12FEA3EC0FE012F800
+6014C00070131F6C1480001EEB3F00380780FC3801FFF038007FC01C2D7DAB23>I<140E
+A2141E143EA2147E14FEA2EB01BE1303143E1306130E130C131813381330136013E013C0
+EA0180120313001206120E120C5A123812305A12E0B612FCA2C7EA3E00A9147F90381FFF
+FCA21E2D7EAC23>I<000CEB0180380FC01F90B512005C5C14F014C0D80C7EC7FC90C8FC
+A8EB1FC0EB7FF8380DE07C380F801F01001380000E130F000CEB07C0C713E0A2140315F0
+A4127812FCA448EB07E012E0006014C00070130F6C14806CEB1F006C133E380780F83801
+FFE038007F801C2D7DAB23>I<EB03F8EB0FFE90383E0780EBF8013901F007C03803E00F
+EA07C0EA0F80A2391F00078091C7FC123EA2127EA2127CEB0FC038FC3FF0EBF07C38FDC0
+1EB4487E01001380EC07C04814E0A214034814F0A4127CA3127EA2003E14E01407121E00
+1F14C06CEB0F803907801F003803C03E6C6C5A38007FF0EB1FC01C2D7DAB23>I<123012
+3C003FB512F8A215F05A15E039700001C000601480140348EB0700140E140CC7121C5C14
+3014705C495AA2495AA249C7FCA25B130E131EA2133EA3133C137CA413FCA913781D2E7C
+AC23>I<EB1FC0EBFFF03803E07C3807801E48487E001EEB0780A248EB03C0A4123E1407
+003F1480381FC00F01E01300EBF81E6C6C5A3807FFF86C13E0C6FCEB3FF8EBFFFC3803C7
+FFD807831380D81F0013C0001E133F48EB1FE0007C13070078EB03F012F84813011400A4
+6C14E000781301007C14C0003C13036CEB0780390F800F003807E03C3801FFF038003FC0
+1C2D7DAB23>I<EB3F80EBFFF03803E0783807C03E48487E48487E003E14801407007E14
+C0127C00FC14E01403A315F0A5007C1307127EA2003E130F7E6C131F3807803B3803E0F3
+3800FFC390383F03E013001407A215C0A2140F001E1480003F14005C143E143C003E5B00
+1C5B380E03E03807FF80D801FEC7FC1C2D7DAB23>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh cmr10 10.95 5
+/Fh 5 62 df<1430147014E0EB01C0EB03801307EB0F00131E133E133C5B13F85B12015B
+1203A2485AA2120F5BA2121F90C7FCA25AA3123E127EA6127C12FCB2127C127EA6123E12
+3FA37EA27F120FA27F1207A26C7EA212017F12007F13787F133E131E7FEB07801303EB01
+C0EB00E014701430145A77C323>40 D<12C07E12707E7E121E7E6C7E7F12036C7E7F1200
+7F1378137CA27FA2133F7FA21480130FA214C0A3130714E0A6130314F0B214E01307A614
+C0130FA31480A2131F1400A25B133EA25BA2137813F85B12015B485A12075B48C7FC121E
+121C5A5A5A5A145A7BC323>I<1506150FB3A9007FB912E0BA12F0A26C18E0C8000FC9FC
+B3A915063C3C7BB447>43 D<EB07FC90383FFF8090B512E03903F01FF83907C007FC390F
+0001FE001E6D7E001C1580003CEC7FC05AED3FE01270B4FC6DEB1FF07FA56C5A6CC7FC12
+0CC813E0153FA216C0157F168015FF16004A5A5D4A5A4A5A5D4A5A4A5A4AC7FC147E147C
+5C495A495A495A495A49C71270133E133C5B4914E0485A485A485A48C7120148B6FCA25A
+4815C0B7FCA3243D7CBC2D>50 D<007FB912E0BA12F0A26C18E0CDFCAE007FB912E0BA12
+F0A26C18E03C167BA147>61 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi cmmi10 10.95 6
+/Fi 6 85 df<17075F84171FA2173F177FA217FFA25E5EA24C6C7EA2EE0E3F161E161C16
+38A21670A216E0ED01C084ED0380171FED07005D150E5DA25D157815705D844A5A170F4A
+5A4AC7FC92B6FC5CA2021CC7120F143C14384A81A24A140713015C495AA249C8FC5B130E
+131E4982137C13FED807FFED1FFEB500F00107B512FCA219F83E417DC044>65
+D<49B712F818FF19E090260001FEC7EA3FF0F007F84B6E7E727E850203815D1A80A20207
+167F4B15FFA3020F17004B5C611803021F5E4B4A5A180FF01FE0023F4B5A4B4A5ADD01FE
+C7FCEF07F8027FEC7FE092B6C8FC18E092C7EA07F84AEC01FE4A6E7E727E727E13014A82
+181FA213034A82A301075F4A153FA261010F167F4A5E18FF4D90C7FC011F5E4A14034D5A
+013FED1FF04D5A4AECFFC0017F020790C8FCB812FC17F094C9FC413E7DBD45>I<49B9FC
+A3D9000190C7120718004B157F193F191E14035DA314075D191CA2140F5D17074D133C02
+1F020E13384B1500A2171E023F141C4B133C177C17FC027FEB03F892B5FCA39139FF8003
+F0ED00011600A2495D5CA2160101035D5CA293C9FC13075CA3130F5CA3131F5CA2133FA2
+5C497EB612F8A3403E7DBD3A>70 D<49B56C93B512C050148062D90001F18000704B90C7
+FC03DF5F1A0E1A1D1403039FEE39FC1A711A739126078FE015E3030F5FF101C3F1038714
+0F020E93380707F0A2F10E0F021E161C91261C07F05E1938F1701F143C023804E05BA295
+3801C03F0278ED038091267003F85EF00700060E137F14F002E04B91C8FCA24E5B01015E
+4A6C6C5D60943801C00113030280DA03805BA294380700030107150E91C700FE5D5F1907
+495D010E4B5CA24D130F011E6E5A011C60705A013C171F017C92C7FC01FE027E5DD803FF
+4D7EB500FC017C017FB512E0167804385E5A3E7CBD58>77 D<49B77E18F818FFD90001D9
+00017F9438003FE04BEC0FF0727E727E14034B6E7EA30207825DA3020F4B5A5DA24E5A14
+1F4B4A5A614E5A023F4B5A4B4A5A06FEC7FCEF03FC027FEC0FF04BEBFF8092B500FCC8FC
+5F9139FF8001FE92C7EA7F80EF1FC084496F7E4A1407A28413035CA2170F13075C60171F
+130F5CA3011F033F5B4AEE038018E0013F17071A004A021F5B496C160EB600E090380FF0
+1E05075B716C5ACBEAFFE0F03F8041407DBD45>82 D<48B912FCA25A913A0003FE000F01
+F84A1301D807E0EE00F8491307491778000F5D90C7FC001E140FA2001C4B1470123C0038
+141FA200785D1270033F15F000F018E0485DC81600157FA25EA215FFA293C9FCA25CA25D
+A21403A25DA21407A25DA2140FA25DA2141FA25DA2143FA25DA2147FA214FF497F001FB6
+12FCA25E3E3D7FBC35>84 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fj ecbx1440 14.4 47
+/Fj 47 253 df<B712E0AB230B7F9F2C>45 D<EA07E0EA1FF8EA3FFCEA7FFEA2B5FCA6EA
+7FFEA2EA3FFCEA1FF8EA07E01010768F25>I<151E153E15FE1403140F147FEB07FF0003
+B5FCB6FCA3EBF87FEAFC00C7FCB3B3B3A6007FB712FCA52E4E76CD42>49
+D<EC1FFE49B512F0010F14FC013FECFF804915E02701FF803F7F2703FC000713FCD807F0
+01017F48486D7FD81F806E138048C87E7013C0D87FE016E001F8806D16F000FF817F7013
+F8A56C5AA26C5A6C5AEA0380C914F05EA218E05E18C05E18804C13005F4C5A4C5A5F4B5B
+4B5B4B5B94C7FCED0FFC4B5A4B5AED7FC04B5A4A90C8FCEC03FC4A5A4A4814F84A5A4A5A
+4AC8FC02FEEC01F0495A495A495A5CD90F80140349C8FC013E1507017FB7FC90B812E05A
+5A5A5A5A5A5AB9FC18C0A4354E7ACD42>I<913807FFC0027F13FC0103B67E010F15E090
+261FF80313F890267FC0007F01FEC7EA3FFE48488148486E138013FE486C6C6D13C08048
+17E080A66C5B18C06C5B6C90C75AD80038168090C8FC4C1300A24C5A5F4C5A4B5B4B13C0
+030F5BDB7FFEC7FC91387FFFF816C016FCEEFF80DA000313E09238007FF8EE3FFE707E70
+138018C07013E018F07013F8A218FC82A218FEA3EA03C0EA0FF0EA3FFC487EA2B5FCA218
+FCA25E18F8A26C4816F0495C4916E0D83FE04A13C06C485CD80FF04A1380D807FE91387F
+FE003B03FFE003FFFC6C90B65A6C6C15E0010F92C7FC010114FCD9001F1380374F7BCD42
+>I<17FC1601A216031607160FA2161F163F167FA216FF5D5DA25D5D5D167F153E157E15
+FC15F8EC01F01403EC07E015C0EC0F80141FEC3F00143E5C14FC495A5C495A1307495A5C
+49C7FC5B137E137C5B1201485A5B485A120F485A90C8FC123E127E5ABA1280A5C901FCC7
+FCAF021FB71280A5394F7CCE42>I<486C150601F0153E01FEEC01FED9FFF0133F91B65A
+5F5F5F5F5F94C7FC16FC5E16E093C8FC15FC01F0138091CAFCAC913807FF80023F13F891
+B512FE01F36E7E9026FFFC0113E09139E0007FF891C76C7E496E7E01F86E7E5B70138049
+16C0C9FC18E08218F0A418F8A31203EA0FE0EA3FF8487EA212FF7FA218F0A25B5E6C4816
+E05B01C016C06CC85A18806C6C4A13007FD80FF04A5A6C6CECFFFCD803FE4913F02701FF
+E00F5B6C6CB612806D92C7FC010F14F8010114C09026003FFCC8FC354F7ACD42>I<ED07
+FE92B512C0020314F0021F14FC91397FFC01FE9139FFE0007F01030180EB3F804990C712
+1F4948EC7FC0494814FF4948010313E0495A49485B5A485BA2485BA2486F13C091C7FC48
+03001300177E94C7FC5AA25B127FA2ED3FF04AB5FC020714C000FF4914F091391F807FF8
+91393E001FFE02786D7E4A6D13807013C06D5A4A6D13E018F05C7013F8A291C813FCA449
+16FEA3127FA6123FA37F6C17FCA36C17F85E7E6E15F06C17E06C6D5B6E15C06C4B13806D
+6C491300D93FFC495A6DB4EBFFFC010790B512F06D5D01001580021F01FCC7FC020313C0
+374F7BCD42>I<B912FEF0FFF019FE737E1AE0D8000F01C0C7001F7F06037F727F726C7E
+867313807313C0A27313E0A37313F0A94F13E0A34F13C01B80614F1300624F5A06035B4E
+13E0063F5B92B8C7FC19F8A2F1FF8003C0C7001F13E0060113F89538007FFE737E070F13
+C01BE07313F0851BF87313FCA27313FEA31BFFA91BFEA2611BFCA2614F13F81BF0614F13
+E0077F13C04EB51280060FEBFE00BB5A1AF01AC04FC7FC19C050527BD15D>66
+D<932603FFF01407047F01FF140F0307B600E0131F033F03F8133F92B700FE137F020391
+26C003FF13FF020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC4901FC8149498149
+01E082011F498249498292CA7E4948834948835A4A83485B4885A24849187FA2485B1B3F
+A2485B1B1FA25AA21B0091CDFCA2B5FCAE7EA280A36C1A1FA36C7FA21B3F6C7F1B3E6C7F
+1B7E6C6D187C6C1AFC6E18F86C19016D6CEF03F06D7E6FEE07E06D6DEE0FC001076DEE1F
+806D01F8EE3F006D6D16FE6D01FF4B5A023F01C0EC07F8020F01FCEC3FF00203903AFFC0
+01FFC0020091B6C7FC033F15FC030715F0DB007F1480040301F0C8FC505479D25F>I<BA
+FC19F819FF1AE01AF8D8000701F0C7001F13FE06017FDE003F13C0070F7F07037F737F73
+7F747E747E747F86747F8886888688A2747FA3881B7FA288A51D80AF1D00A564A21BFF64
+A3505BA2505BA2505BA2505B505B99C7FC505A1A7F4F485A4F13F0070F5B073F5B4EB55A
+061F49C8FCBB12F81AE097C9FC19F896CAFC59527CD165>I<BB12FCA5D8000701F0C700
+0F7F1800191F190F19071903190119001A7E1A7F86A386A51B80DD03E0130FA497C7FCA3
+1707A3170F171F173FEE01FF92B6FCA5EDF001EE003F171F170F1707A31703A794CAFCB3
+A2B812F0A549527CD153>70 D<932603FFF01407047F01FF5C0307B600E05B033F03F85B
+92B700FE5B02039126C003FF5B020F01F8C7EA3FC1023F01C0EC0FE391B5C80003B5FC49
+01FC814949814901E082011F498249498292CA7E4948834948835A4A83485B4885A24849
+84A2485B87A2485B87A25AA298C8FC91CFFCA2B5FCAE7E067FB7128080A37E95C76C90C7
+FC807EA36C7FA26C7FA26C7F7E806C7F137F6D7E816D6D93B5FC01077F6D01F85D6D7F6D
+01FF5D023F01E0EC0FEF020F01FCEC3FE30203903AFFE001FF81020091B6C6FC033F03FC
+133F030703F0130FDB007F02801303040301F8CAFC595479D267>I<B8D88007B712FCA5
+D8000701F0C9003FEB8000B3AE92BAFCA503F0C9123FB3B1B8D88007B712FCA55E527CD1
+67>I<B81280A5D8000701F0C7FCB3B3B3B2B81280A529527DD130>I<B86C0103B612E0A5
+D8000701F0C9000FEB8000E001FCC7FC505AF20FF0505A505A50C8FC1AFE4F5A4F5A4F5A
+4F5AF13FC04F5A4FC9FCF001FC4E5A4E5A4E5A4E5AF07F804ECAFC4D5AEF03F84D5A4D5A
+4D5A4D7E4D7EEE01FF4C7F4C7F4C7F5E4C7F4C80EEFE7FDBF3FC809226F7F83F7F9226FF
+F01F7FEEC00F0480804C6C7F4B7F4B814B6D7F4B6D808486727F8486727F727F8486727F
+8487737F737F8587737F8587737F737F8588747F97B57EB86C90B712F8A55D527CD167>
+75 D<B812E0A5D8000F01E0CAFCB3B3A91AF8A419011AF0A51903A31907A2190F1AE019
+1FA2193F197F19FF60180760187F0503B5FCBB12C0A545527CD14F>I<B600F04EB612F0
+6F606F60A3D800076D4E49C7FCA2DADFFFF01F7FA202CF6D173EA302C76D177CA202C36D
+17F8A202C16DEE01F0A202C06DEE03E0A36F6CEE07C0A26F6CEE0F80A26F6CEE1F00A36F
+6D153EA26F6D5DA26F6D5DA36F6D4A5AA26F6D4A5AA2706C4A5AA3706C4A5AA2706C4AC7
+FCA2706D133EA3706D5BA2706D5BA2706D485AA2706D485AA3716C485AA2716C485AA271
+6C48C8FCA37113BEA27113FCA2715BA3715BA2715BA2D91FF06F5AB600FE050FB712F0A2
+725AA272C7FC74527CD17D>I<B912FCF0FFE019FE737E1AE0D8000F01E0C7003F7F0603
+13FC06007F737E7313807313C07313E0851BF0A21BF885A21BFCA91BF8A3611BF0A21BE0
+4F13C0614F13804F13004F5A060713F8063F5B92B812C097C7FC19F8198003E0CBFCB3AE
+B712FEA54E527CD15A>80 D<B912E018FF19F019FE737ED8000701F0C714E0060F7F0603
+13FC06007F737E737F8587737FA28785A287A863A261636361634F90C8FC4F5A4F5A0603
+5B060F13E095B5128092B748C9FC19F019C019F09226F0000713FC050013FF063F7F727F
+727F727F727FA2727FA28486A886A71D707513F8A2851C017301C013F0A273EBE003B86C
+6D9038F007E0739038FC1FC0070190B51280736C1400080F5BCE13F85D537CD162>82
+D<DA0FFE141C91B500F0133C010702FC137C011F02FF13FC017F15C19026FFF00113E148
+903980001FFB4890C7EA07FFD807FC14014848804848153F171F4848150FA2007F160749
+1503A2170112FFA217007FA26D167CA27F7F6D93C7FC6C7E14C014F8ECFF806C14F8EDFF
+C06C15FC6CEDFF8017F06C16FC6C826C707E6C836D82011F8201078213016D6C81020781
+EC007F030380ED003F040314801600173F837113C0838312F883A3837EA319807EA26C5E
+19007F6D4B5A7F6D4B5A01FC4B5A6D151FD9FFC04A5AD97FF8ECFFE028FE1FFF80075B01
+0790B6C7FCD8FC0115FC486C6C14F048010F14C0489026007FFCC8FC3A5479D249>I<00
+3FBB12FCA59126C0007FEB000301FCC7ED003FD87FF0F00FFE49180749180349180190C8
+1600A2007E1A7EA3007C1A3EA500FC1A3F481A1FA6C91700B3B3AC49B912C0A550517BD0
+5B>I<B700F8037FB512F0A5D8003F01C0CA387FE0006D6DEF0F801B1F6D6D95C7FC636D
+193E811B7E6D6D177C1BFC6D616F16016D61811A036E6D5E1A076E6070150F6E60821A1F
+6E6D93C8FC626E173E821A7E6E6D157C1AFC6E6D5D19016E5F8219036F6D5C19076F5E71
+130F6F5E83191F6F6D91C9FC616F153E71137E6F157C8319FC6F6D5B18016F5D17FF1803
+70EB83E0188770EBC7C018CF705C18EF18FF7091CAFCA2705BA2705BA3705BA2705BA271
+5AA3715AA2715AA25C537DD163>86 D<B700F8017FB600FC49B612E0A5D8001F01C0C800
+1F01E0C9EBC0000E1FC7FC6F6F606D73163E6F81207E6D73167C6F8120FC6D735E6F6F17
+016D735E616F1B036D735E616F1B076E4C6E5D7015BF1F0F6E041F6E5D70031F161F6E9A
+C8FC073F8070DA3E0F5E6E73143E197E70DA7C07167E6E04FC6E147C704A7E1FFC6E0301
+6F5C704A7E6E515A060381704A6C15036E735C1807704A6D14076F07805B7148487F1E0F
+6F021F04C05B05C090C77E1E1F6F4A04E090C9FCDDE03E6E5C6FF1F03E187EDDF07C6E14
+7E6FF1F87C18FC71486E14FC6F01F9715ADDFDF0801DFD6F01FFEFFFF04E806F62A24E81
+7061A24E81706195C97EA27096CAFC4D82040F60A24D1607040760A24D16030403604D16
+0104016083537ED188>I<EC3FFE0107B512E0011F14FC017F14FF2701FFC00F13C02703
+FE00037F486C01007F6E6D7E486D80707EA2707EA3707F6C5B6C90C7FC6C5AC9FCA60307
+B5FC0203B6FC147F0103B7FC011FEBF00F017F1300EBFFFC000313F04813C0485B4890C7
+FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C003F03F713C36DD901E314E06CD9C007
+14FF00079026F01F8114C06C90B5C61480C602FC6D1300011F01F0EB3FFC01010180EB07
+F03C387CB642>97 D<EB3FF8B5FCA51203C6FCB3A4EE7FF00307B5FC031F14C0037F14F0
+913AF9FF007FFCDAFFF8EB1FFF03E001077F03806D7F92C76C7F4A6E7F5C4A6F7E85183F
+85A38584A31A80AD1A00A36061A261187F616E15FF616E4A5B6E4A5B6F495BDACFE04990
+C7FCDA87F0EB3FFE913A01FE01FFF8496CB65A49013F14C049010749C8FC90C813E04154
+7DD249>I<913803FFE0023F13FE91B67E010315E0010F9038003FF8D93FFCEB07FC4948
+497E4948131F4849497E485B485BA24890C7FC5A5B003F6F5A705A705A007F92C8FC5BA3
+12FFAD127F7FA3123F7F6CEE0F80A26C6D141F18006C6D5C6C6D143E6C6D147E6C6D5C6D
+6C495A6DB4EB07F0010F9038C01FE06D90B5128001014AC7FCD9003F13F8020313803138
+7CB63A>I<943803FF80040FB5FCA5EE003F170FB3A4913803FF80023F13F849B512FE01
+07ECFF8F011F9038C03FEF90273FFE0007B5FCD97FF8130149487F484980484980484980
+488291C8FC5A5B123FA2127F5BA312FFAD127FA37F123FA3121F7F6C5E6C6D5C5F6C6D91
+B5FC6C6D5B6C6D4914E0D97FFCD90FEFEBFF80D91FFFEB7F8F010790B5120F010114FC6D
+6C13E00207010049C7FC41547CD249>I<913807FF80027F13F849B512FE01076E7E011F
+010313E0903A3FFC007FF0D97FF06D7E49486D7E4849130F48496D7E48824890C77E1880
+485A82003F17C0A3485A18E082A212FFA290B8FCA401FCCAFCA6127FA37F123FA2EF03E0
+6C7E17076C17C06C6D140F18806C6D141F6C6DEC3F006C6D147ED97FFC495AD91FFFEB07
+F86D9038E03FF0010390B512C001005D023F01FCC7FC020113E033387CB63C>I<ED1FF8
+913803FFFE020FEBFF80023F14C09139FFF83FE001039038E0FFF049138049010113F85B
+EB3FFEA2EB7FFCA26F13F0495AEE7FE0EE1F8093C7FCAEB712C0A5C601F8C8FCB3B3A7B6
+12FEA52D547CD328>I<DA1FFE14FE49B539E007FF80010FDAFC1F13C0013FDAFF7F13E0
+90267FF807EBFF072701FFE001EBF07F48497E484990387FF83F91C7003F14C048EEFC1F
+489338FE070049021F90C7FCA2003F82A9001F5EA26D143F6C5E6C5E6E137F6C6D495A6C
+6D485B6CD9F80713804890B6C8FCD803EF14FC01C114E02707C01FFEC9FC49CBFCA2487E
+A37FA27F13FC90B612FE6CEDFFF017FCEFFF806C8318F06C836C837F48B87E1207D80FFC
+C700037F4848EC003F4848150F48486F138083485A83A56D5D007F18006D5D003F5F6C6C
+4B5A01FE153FD807FFED7FF06C01C049485AC601FC011F1380013FB648C7FC010F15F801
+0115C0D9000F01F8C8FC3B4F7CB542>I<EB3FF8B5FCA51203C6FCB3A4EE1FFC93B57E03
+0314E0030F14F892391FC07FFC92397E003FFE03F86D7EECF9F04B6D7FECFBC0ECFF8092
+C76C7FA25CA25CA45CB3ACB6D8F807B612C0A542537CD249>I<133FEBFFC0487F487FA2
+487FA66C5BA26C5B6C5B013FC7FC90C8FCAEEB1FF8B5FCA512017EB3B3A6B612F0A51C54
+7CD324>I<EB3FF8B5FCA51203C6FCB3A50407B512F0A59339007FF000EF3FC04D5A4DC7
+FCEE01FC4C5AEE0FF04C5A4C5A4CC8FC16FEED03FC4B5A4B5A4B5A4B7E4B7EECF9FF02FB
+7F91B57EA28203BF7F031F7F14FE4A6C7FDAF0077F6F7FA26F7F6F7F167F83707F707FA2
+707F707F707FA2707F707F84B6D8F00F14FEA53F537DD245>107
+D<EB3FF8B5FCA51203C6FCB3B3B3B1B612F8A51D537CD224>I<D93FF0D91FF84AB47EB5
+91B56C010F13F8030302E0013F13FE030F6E90B6FCDB3F809027F803F80F7F922A7E007F
+FC07E0077F000302F890283FFE0F80037FC6D9F1F0011F49487EDAF3E0DAFF3E814B153C
+DAF7805D92C76C496D7F14FF4A5EA24A5EA34A5EB3ADB6D8F80FB66CB612F8A565367BB5
+6E>I<D93FF0EB1FFCB591B57E030314E0030F14F892391FC07FFC92397E003FFE000302
+F86D7EC6EBF1F04B6D7FECF3C0ECF78092C76C7F14FF5CA25CA45CB3ACB6D8F807B612C0
+A542367CB549>I<913801FFC0023F13FE91B67E010315E0010F018013F8903A3FFC001F
+FED97FF0EB07FF49486D7F48496D7F48496D7F91C8127F4883488349153F001F83A2003F
+8349151FA2007F83A400FF1880AC007F1800A3003F5F6D153FA2001F5FA26C6C4B5AA26C
+6D4A5A6C5F6C6D495B6C6D495B6D6C4990C7FCD93FFCEB1FFE6DB46CB45A010790B512F0
+010115C0D9003F49C8FC020313E039387CB642>I<D93FF8EB7FF0B50107B5FC031F14C0
+037F14F09126F9FF0013FCDAFFF8EB3FFF000302E0010F7FC602806D7F92C76C7F4A824A
+804A6E7F85187F85A2183F85A4721380AD4E1300A44E5AA26118FF616E5C616E4A5B6E4A
+5B6F495B03E04990C7FC6FEB7FFE913AF9FE01FFF802F8B65A033F14C0030749C8FC0300
+13E093CAFCB1B612F8A5414D7DB549>I<90393FF001FCB590380FFF804B13E0037F13F0
+9238FE1FF89138F1F83F00019138F07FFC6CEBF3E015C0ECF780A2ECFF00EE3FF84AEB1F
+F0EE0FE093C7FC5CA45CB3ABB612FEA52E367DB535>114 D<903903FFC00E011FEBFC1E
+90B6127E000315FE3907FE003FD80FF0130F4848130348481301491300127F90C8127EA2
+48153EA27FA27F01F091C7FC13FCEBFF806C13FEECFFF06C14FE6F7E6C15E06C816C15FC
+6C81C681133F010F15801301D9000F14C0EC003F030713E0150100F880167F6C153FA216
+1F7EA217C07E6D143F17807F6DEC7F0001F85C6DEB03FE9039FF801FFC486CB512F0D8F8
+1F14C0D8F00791C7FC39E0007FF02B387CB634>I<147CA614FCA41301A31303A21307A2
+130F131F133F137F13FF1203000F90B512FEB7FCA426007FFCC8FCB3A9EE0F80ABEE1F00
+6D7EA2011F143E806D6D5A6DEBC1F86DEBFFF001005C023F1380DA03FEC7FC294D7ECB33
+>I<D93FF8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA25F137F5F6D6C
+14F7DC01E713F06D6CD907C7EBFFC0903A0FFF801F876D90B51207010114FC6D6C13F002
+0701C091C7FC42377CB549>I<B600E090381FFFFCA5000101F8C7000113006CEE007C6E
+15FC017F5E8017016D6C5D17036D5E6F13076D5E6F130FA26D6D5C171F6D93C7FC6F5B6D
+153E6F137E6D157C8117FC027F5CEDFE01023F5CEDFF036E5C168316876E5C16CF6E5C16
+FF6E91C8FCA36E5BA26E5BA26F5AA36F5AA26F5AA26F5AA23E367DB445>I<B600E09038
+1FFFFCA5000101F8C7000113006CEE007C6E15FC017F5E6E1401013F5E8017036D6D5C17
+076D5E6F130F6D5E6F131F6D93C7FC815F6D6D133E177E6D157C6F13FC027F5C811601DA
+3FFF5B16036E5C16876E5C16CF6E5C16EF16FF6E91C8FCA26E5BA26E5BA26F5AA36F5AA2
+6F5AA26F5AA35E151F93C9FC5D153E157ED81FC0137C487E486C13FC486C5B14015D4A5A
+14074A5A6C48485A4948CAFC495A383F81FC6CB45A6C5B000313C0C648CBFC3E4D7DB445
+>121 D<D907E0EB03F0D91FF8EB0FFC496C497E017F816E5B90B5497FA66D486D90C7FC
+4A7F013F5D6D486D5AD907E0EB03F090CCFCABEC3FFE0107B512E0011F14FC017F14FF27
+01FFC00F13C02703FE00037F486C01007F6E6D7E486D80707EA2707EA3707F6C5B6C90C7
+FC6C5AC9FCA60307B5FC0203B6FC147F0103B7FC011FEBF00F017F1300EBFFFC000313F0
+4813C0485B4890C7FC5A5B485AF081F012FF5BA35EA26D5C127F6D5C003F03F713C36DD9
+01E314E06CD9C00714FF00079026F01F8114C06C90B5C61480C602FC6D1300011F01F0EB
+3FFC01010180EB07F03C537CD142>228 D<027EEC1F80DAFF80EB7FC0496D497E496D48
+7F496D487FA24982A46D5EA26D496C5B6D496C5B6D496D5A027EC7EA1F8091CCFCACD93F
+F8913801FFC0B50207B5FCA50003ED001FC61607B3AE5FA35FA25F137F5F6D6C14F7DC01
+E713F06D6CD907C7EBFFC0903A0FFF801F876D90B51207010114FC6D6C13F0020701C091
+C7FC42537CD149>252 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fk ecbx2074 20.74 18
+/Fk 18 117 df<EE03C0160F161F163F16FF1503150F157F0203B5FC143F010FB6FCB8FC
+A314FC14C0EBF000C8FCB3B3B3B3B2003FBAFCA6407172F05B>49
+D<92381FFF804AB512FC020FECFF80023F15F091B712FC010316FF010FD9001F14C0D91F
+F8010380D93FE0010014F8D97F80023F7F4848C86C7F01FC6F7F48486F148048486F14C0
+4848817114E0484818F04982003F7113F813F8D87FFE7013FC6D7E6E17FEB56C81A2801A
+FFA284A56C5BA26C5B6C495DD807FEC9FCD801F818FECBFCA2601AFCA21AF8601AF0601A
+E095B5FC1AC04D14801A005F614D5B4D5B614D5B4D5B614D90C7FC4D5A4C13F8604C5B4C
+5B4C5B4C48C8FC4C5A4C5A5F4C5A4B13804B90C9FC4B5A4B5A4B5A4B48153F4B5A4B5A93
+C9FC4A48167E4A5A4A5A4A5A4A5A4A5A4A4816FE4ACAFC495AD903F817FC4A1601495A49
+48160F49B9FC5B5B90BAFC5A4819F85AA25A5A5A5ABBFCA21AF0A4487177F05B>I<9238
+03FFF8037FEBFFC00203B612FC020F15FF027F16C09127FFFC007F13F0010301C0010F13
+FC4948C700037FD91FF86E7FD93FE06E14C049488191C98001FE707F2601FFC08302F081
+486D838080486D8384A38192C8FCA46C5F5C6C495F6C5BEB3FE00107C95C90CA5AA26260
+6295B55AA24D5C97C7FC4D5B4D5B614D5B4D13C0057F5B4D48C8FC04035B4BB512F04AB6
+12804DC9FC17F8EFFFE018FC91C86CB47E050F13E0050313F87113FE716C7E1AC0727F72
+7F727F86727F86A2721480A21BC0A21BE084A31BF0A3EA03FE380FFF80487F487F487FA2
+B57EA31BE0A260A21BC05C6C1A804A5D4A18006C5B49C9485BEA1FF801E04C5B6C6C4C5B
+D807FC606C6C4C5B2601FFC092B55A6C01F002035CD93FFF020F49C7FC6D01F8017F5B01
+0790B712F0010117C06D6C93C8FC020F15F8020015C0030701F8C9FC4C7379F05B>I<19
+7F61A2606060A26060A2606095B5FCA25F5FA25F5F5FA25F5FA217FD1601EE03F917F116
+07EE0FE1EE1FC11781163FEE7F01167E16FEED01FCED03F816F01507ED0FE016C0151FED
+3F80ED7F00157E15FE4A5A5D14034A5A4A5A5D141F4A5A92C7FC147E14FE495A5C130349
+5A5C495A131F495A91C8FC5B13FE5B485A1203485A5B120F485A5B48C9FC5A12FEBDFCA6
+CA000391C7FCB3A4030FB9FCA650727BF15B>I<0160EF018001781707017F173F02E0ED
+01FF02FE151FDAFFF80107B5120092B75AA261616119C06196C7FC6018F818E018804DC8
+FC17F817C0D97E3F49C9FC0200138092CBFCB3923803FFE0033F13FF92B612E0020315F8
+020F15FE913B3FFE007FFF80DA7FE0011F7FDAFF80010713F0D97FFCC76C7F4A6E7F02E0
+6E7F4A824A6F138091C914C084017E18E0013C8290CA14F0A21AF8A21AFC84A21AFEA51A
+FFA5EA03F8EA0FFE487E487F487FA2B57EA31AFEA45C4E13FC6C5B91C9FC01FC18F813F0
+D83F804C13F0A26C6C18E04E13C06C7E6D93B512806C6C18006C6C4B5B6D5D6C6C6C4A5B
+6C6D4A13F0D97FF0023F5BD91FFC91B55A90270FFFC00F91C7FC6D90B612FC010116F06D
+6C15C0021F92C8FC020314F09126003FFEC9FC487377F05B>I<EF7FFC040FB512C0047F
+14F00303B612FC030F15FF033FD9E0077FDBFFFEC76C7E020301F86E7E4A01E0EC0FF002
+1F018014074A90C86C7E4A48151F4A48ED7FFC4949EC01FF495B49494A7F49495C5B5D49
+90C8FC5B5C13FFA248496F5B725B48614A6F6C5A48F01F8096C8FC5AA25C5AA35AA45C48
+92381FFFE093B512FC0303ECFF804B15E0031F8192263F800313FCB5017EC76C7E4B6E7E
+03F06E7FDAE1E06E7F02E36F7F4B6E7FDAE7808292C86C7F14EF02EE8302FE6F7F5C1B80
+A24A18C085A24A18E0A51BF0A26C5BA87EA380A27EA21BE0A27EA36C1AC06E93B5FC6C1A
+80A27E6E18006C5F626D6C5F4E5B6D7E6D6D4A5B6D6D4A5B6D6D4A5B6D6D4A5B6D6D4A90
+C7FC6D01FE49485A91277FFFC00F13F8021F90B65A020716C0020193C8FC6E6C14FC030F
+14E0030001FCC9FC4C7379F05B>I<EA07E0A2120F13F813FE90B5FC92B912FCA45AA21B
+F81BF01BE01BC0A21B801B004861A262626201F8CAEA07E001C0170F494D5A4F5A48CB90
+C7FC6119FE007E4D5A4E5A6118074E5A4E5A4860183F4EC8FC18FECA485A6017034D5A4D
+5AA24D5A4D5AA24DC9FC5F5F16014C5AA24C5A160FA24C5AA2163F5F167FA216FF5F5DA2
+5D5F5DA25DA34B90CAFCA25DA35DA492B5FCA25EA25CA45CA75CAD6E5BA26E5B6E5B6F5A
+ED1F804E7776F45B>I<F11FC0A24F7EA34F7EA24F7EA34E7FA34E7FA24E7FA34E80A24E
+80A34E80A34E80A206FE8060A205016D7F18F88505038118F005076D7F18E085050F8218
+C0051F6D80A21880053F6D801800854D82177E05FE6D805FA204016F7F5F860403835F04
+076F7F5F86040F845F041F6F80A25F043F6F8094C8FC864C84167E04FE6F805EA2030171
+7F5E870303855E0307717F93BBFCA24B86A24B86A20480C91207033F718093CAFC874B86
+157E03FE71805DA20201737F5D880203875D0207737F5D88020F885D021F7380A25D023F
+738092CCFC884A88147E02FE7380497E011F13F8B700FC047FB812F8A67D797AF88A>65
+D<BA4BB712FEA6C7003F01FCCB000102F0C7FC9A26001FFEC8FCF60FF8545A545A545A54
+5A5390C9FCF503FC535A535AF53FE0535A535A5290CAFC525A525A525A525AF43FC0525A
+52CBFCF303FE515A515A515A515A515A515A5090CCFCF203FC505A505AF23FE0505A505A
+4F90CDFC4F5A4F5A190F4F7E193F4F7E4EB57E604E804E80604E804E8095B67E4D5A4D48
+804D486C7F94381FF03FDD3FE0814D486C804D487E04FD496C80DCFFFE824D6D804D7F05
+E0824D6D804D8094C8804C6F804C817480897480868974808689757F878A75808775808A
+7580878A7580888A76808876808B7680888B7680888B777F898C77808920F00B7F14FCBA
+4AB912C0A682767BF58F>75 D<92381FFFC00203B512FE023FECFFC091B712F0010316FC
+010FD9E00313FFD91FFCC76C13C0D93FE0021F7FD97F806E7FD9FFF06E7F6E6E7F486D6E
+7F6E824870806E8186A2727FA46C496F7FA26C5BEB3FF0EB0FC090CAFCA960040FB6FC03
+03B7FC157F0203B5EAFC1F021F140091B512F0010391C7FC010F13FC4913F0017F13C090
+B55A4891C8FC485B485B485B485B5A5C5A4AF007E0A2B5FC5CA260A360A26E92B5FC7E6E
+EC01EF17036C6DDA07C79038F80FC06C6DEC0F876C6DDA1F07EBFC1F6C6DDA7E039038FF
+7F806C6D6C48486CECFF006C9138E00FF86C6C90B5D8E0005C011F4B013F5B010792C76C
+13F0010002F802075B020701C0020090C7FC53507ACE5B>97 D<923801FFFC031FEBFFC0
+92B612F8020715FE021F6F7E027FD9E03F13E09127FFFE00077F010301F801017F49496D
+7F4901C0EC3FFE4949814990C86C138049486F13C013FF4A6F13E05A48496F13F0A24849
+17F848831AFCA2484981A24819FEA3485B197F1AFFA3B5FCA491BAFCA402C0CBFCA77EA4
+807EA37E80A26C193FA26C6D177F1A7E6C7F6C19FE6EEE01FC6C7F6DEF03F86D6DED07F0
+6D6DED0FE06D6DED1FC06D01F8ED3F806D6DEDFF006D01FFEC03FE6D6C01E0EB0FFC6E01
+FEEBFFF8020F90B612E002031680DA007F4AC7FC030F14F0DB007F90C8FC48507BCE53>
+101 D<F207F892260FFFC0EC3FFE4AB500FE49B5FC020F9126FFC0071480023FDBF00F14
+C09126FFFE019038FC3FF801039029F0003FFF7F8113E049496DEBFC01490180010713F0
+4990C76C13E04917F049486E13F801FF716C13C04A6EED7F804872EB1E00487290C7FCA2
+4A814885A34885AB6C61A36C96C8FC6E92B5FCA26C606C606E5C017F5F6D6C4A5B6D5F6D
+6D495B6D01E0011F5B496D4990C9FC011E9039FE01FFFCD93E3FB612F0D93C0F15C0D97C
+014ACAFCDA000F13C04990CDFCA31201A27FA37FA27F808014F86C90B712F8F0FFE019FE
+6D717E1AF06D18FC866D846D19C06D857F4985013F8590BBFC4801F0C8000F80000701C0
+ED007F4849040F7F4890CA1203484883854848727E8612FF5B86A66D60007F62A26C6C4E
+5A6D18FF6C626C6D4C5B6C6D4C5B6C6D4C5B6C01F8041F5B6C6D4C90C7FC90263FFF8091
+3801FFFC010F01F0020F13F0010301FF91B512C0010091B7C8FC021F16F802011680DA00
+0302C0C9FC53727BCE5B>103 D<903803FFF8B6FCA6C67E131F7FB3AFF07FF80503B512
+C0051F14F0057F14FC94B7FC932603FE0180932707F0007F7FDC0FC06D7F4CC77E043E82
+4C6E7F5E4C80DBF9E082A2EDFBC0DBFF80808793C8FCA25DA35DA45DB3B3A9B8D8803FB7
+12E0A65B787AF766>I<EB01FCEB07FF497F497F497F497FA290B57EA76D5BA26D5B6D5B
+6D5B6D90C7FCEB01FC90C9FCB3A4903801FFF8007FB5FCA6C67E131F7FB3B3B3A9B8FCA6
+28797BF832>I<903801FFF8B6FCA6C67E131F7FB3B3B3B3B3AFB81280A629787BF732>
+108 D<902603FFF0EC7FF8B60203B512C0051F14F0057F14FC94B7FC932603FE01809327
+07F0007F7FC66CDA0FC06D7F011F4AC77E6D023E824C6E7F5E4C80DBF1E082A2EDF3C0DB
+F780808793C8FC15FF5DA35DA45DB3B3A9B8D8803FB712E0A65B4E7ACD66>110
+D<902603FFF8903801FFF0B6021F13FF94B612E0040315FC040F15FF93263FF80114C093
+27FFC0003F7FC66CD9F9FEC76C7F011FD9FBF8020713FC6DD9FFF06E7F4C6E7F04806E80
+93C96C7FA24B707F4B707F5D747FA2747FA2888688A286A21D80A4861DC0AF501480A51D
+0062A26462A264626462646F4C5B816F4C5B97B55A704A91C7FC704A5B04F04A5B704A5B
+DBF9FC023F5BDBF8FF91B512C093267FF00791C8FC041FB612FC040715F0040115C0DC00
+3F49C9FC050713C094CCFCB3A8B87EA65A6F7BCD66>112 D<15FCA71401A51403A31407
+A3140FA2141FA2143F147F14FFA25B5B5B131F5B90B5FC000F91B612FCB9FCA5D8000701
+FCC9FCB3B3A4F01F80AF183F6D170081A2187E6D7F18FE6D6E5B6E4A5AEEC0036E6D485A
+6E9038F80FE0020790B55A6E5D02004AC7FC031F13F8030113C0396E7DEC47>116
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fl ecsl1095 10.95 36
+/Fl 36 224 df<007FB5FCB512FEA418057C951E>45 D<121E127FEAFF80A413005A123C
+0909778819>I<153015F014011407143F903803FFE0137FEBFFCFEBFC0F1300141F15C0
+A5143F1580A5147F1500A55C5CA513015CA513035CA513075CA5130F5CA3131F497EB612
+F8A31D3D78BC2D>49 D<EC01FE91380FFFE0023F13F89138FC07FC903901E001FE903903
+8000FF49C7EA7F80010EEC3FC05B49EC1FE0133013700160140F13FE7FA25A161FA3EA00
+FC0130EC3FC090C8FC167F1780EEFF00A24B5A5E4B5A4B5A4B5A4B5A5E4BC7FC157E5D4A
+5AEC03E04A5A4A5A021EC8FC147C5C495A49481306D907805B49C7FC131E495C5B01E014
+38484814304848147048B612F05A003F5D5AB7FC5EA22B3D7CBC2D>I<EC07FC91383FFF
+8091B512E0903903F80FF09039078003F890390E0001FC4914FE491300017E14FFEB7F80
+13FFA56D485A013C14FE90C7FCED03FCA2ED07F816F0ED0FE0ED1FC0ED3F80ED7F0015FC
+EC07F0903803FFC015F090380001FCEC007FED3F8016C0151F16E0ED0FF0A316F8A4120E
+EA3F80486C131F16F012FFA2153F16E05B48C7EA7FC000E015800060ECFF0000705B6C5C
+003C495A001FEB0FF0390FE03FE00003B51280C649C7FCEB1FF0283F7ABC2D>I<160C16
+1C163C167C16FCED01F8A215031507150F151FED3FF01537156715C7EC01871403913807
+0FE01406140C1418143014709138E01FC014C0EB0180EB03001306130E49EB3F8013185B
+5B5B12014848EB7F0090C7FC12065A5A12384814FE1260B8FCA3C73801FE00A25DA41403
+A25DA314074A7E0107B512F8A3283E7BBD2D>I<01061403D907C0131F9138F801FE91B5
+12FC16F84914F016C01680EDFC0090380C7FF091C8FC131C1318A513381330A59038701F
+E0903860FFF8903863E03E90386F001F017CEB0F80017814C049EB07E04914F049130390
+C7FC16F8A61507A3121FEA7F80A2150F00FF15F0A290C713E048141F00E015C0153F0060
+15800070EC7F00A26C14FE003C495A6C495A6CEB0FE03907E03FC06CB5C7FCC613FCEB1F
+E0283F7ABC2D>I<ED7F80913803FFE0020F13F091383F80789138FE001CD901F8130C49
+48137E494813FE90380FC00190381F8003EB3F004914FC01FEEB01F849EB00F000011500
+5B120312075B120F5BA2001FEB3F809038E1FFE0393FC3C0F89038CF007C01DC7F01D87F
+D87FF8148049130F4914C0A24914E0A2485AA216F090C7FCA2ED1FE0A35AA3153F16C0A3
+ED7F80A2007E150015FEA2003E495A003F495A6C5C6D485A390FC01FC02607E07FC7FC38
+03FFFEC613F8EB3FC0273F78BC2D>I<12035A13C090B712805AA217005E485D5E001CC8
+1270485D00305D150100704A5A00604AC7FC150E5D485CC8123015705D4A5A4A5A4AC8FC
+140EA25C5C1478147014F0495AA213035C1307495AA2131FA249C9FCA25B137E13FEA312
+015BA21203A3485AA5120F5BA26C5A6C5A294074BD2D>I<17C04C7EA21603A216078316
+0FA2161FA24C7EA21667A216C7A292380187FC1683ED0303A2150683ED0C01A21518A203
+307F1570ED600015E05D14014B804AC7127FA21406A24A81173F5C021FB6FC5CA20260C7
+EA3FE0171F5CA2495A8449C8120FA21306130E010C82131C011815071338137801F88248
+7ED807FEED1FFEB500C00103B512FC4C14F8A23E417DC044>65 D<011FB7FC4916F018FC
+903B007FE00003FE023F913800FF80F07FC04B143FF01FE019F0180FA2027F16F85DA502
+FF16F092C8121F19E0183F19C0F07F8049EEFF004A4A5A4D5AEF0FF0EF3FE04CB4C7FC49
+B612F8EFFF8002FCC7EA1FE0EF07F0EF03FC717E13074A6E7E1980187FA219C0130F5CA5
+011FEEFF805C19005F4D5AA2013F4B5A4A4A5A4D5AEF7FE0017FEDFF8001FF020790C7FC
+007F90B612FC17F0B8C8FC3D3E7DBD40>I<4BB46C1370031F13F0037F01FC13E0913A03
+FF803E01913A0FF8000F83DA1FE0EB03C7DA7F80EB01EF4AC8FCD903FCED7FC04948153F
+495A4948151F495A4948150F01FF178091C91207485A12035B485A000F180084485AA248
+485EA295C7FC485AA412FF5BA790CCFCA21818183818307FA2007F1770186018E0003F5F
+6D1501606C6C15034DC7FC6C6C150E12076C6C5D6D15786C6C5D6C6C4A5AD93FC0EB0780
+6D6C011FC8FCD907FE13FC0101B512F06D6C13C0DA07FEC9FC3C4276BF41>I<011FB7FC
+4916E018F8903B007FE00007FE023FEC00FFF03FC04B6E7E180F727E727E85027F15014B
+6E7EA28585A202FF178092C9FCA54918C05CA41A8013034A16FFA41A0013074A5DA261A2
+4E5A130F4A4B5AA261180F61011F4C5A4A153F614EC7FC18FE4D5A013F4B5A4A4A5AEF1F
+E0EF7F80017F4A48C8FC01FFEC0FFC007F90B612F01780B700FCC9FC423E7DBD45>I<01
+1FB812F05BA29026007FE0C7127F023F150F18034B14011800A31970147F4B1560A502FF
+146092C7FCA3190017E0495D4A1301A21607161F91B6FC495DA29138FC003F160F160716
+03010792C8FC5CA2196019E019C0010F14064A90C712011980A218031900011F5E5C180E
+A2181E181C013F163C4A157C4D5A1703017F150F01FFEDFFF0007F90B7FCA2B95A3C3E7D
+BD3D>I<011FB812E05BA29026007FE0C7FC023F151F18074B14031801A31800147F4B15
+C0A514FF92C71260A3190017E0495D5C160116031607161F49B65AA39138FC003F160F16
+07010792C8FC4A7FA5010F14065C93C9FCA4131F5CA5133F5CA3137F497E007FEBFFF0A2
+B6FC3B3E7DBD3B>I<4BB46C1370031F13F0037F01FC13E0913A03FF803E01913A0FF800
+0F83DA1FE0EB03C7DA7F80EB01EF4AC8FCD903FCED7FC04948153F495A4948151F495A49
+48150F01FF178091C91207485A12035B485A000F180084485AA248485EA295C7FC485AA4
+12FF5BA6043FB512E090C8FCA29339001FFC00715AA26D5EA2127FA2171F6C7E60A26C7E
+A26C6C153F12076C6C4B5A7F6C6C15FF6C6CEC01CFD93FC0EB0787D91FF0EB1F07D907FE
+9038FC03800101B5EAF0016D6C01C0C8FCDA07FEC9FC3C4276BF47>I<013FB5D8F007B5
+12FEA39026007FF0C7380FFE006E486E5AA24B5DA4180F147F4B5DA4181F14FF92C85BA4
+183F5B4A5EA491B8FC5B6102FCC8127FA318FF13074A93C7FCA45F130F4A5DA41703131F
+4A5DA41707133F4A5DA3017F150F496C4A7E007F9026FFC00FB512F8B65BA2473E7DBD44
+>I<013FB512F0A39039007FF0006E5AA25DA5147F5DA514FF92C7FCA55B5CA513035CA5
+13075CA5130F5CA5131F5CA5133F5CA3137F497EB612E05DA2243E7DBD21>I<011FB500
+F0903803FFFE5B609026007FF0C7000113E06E486E130019FC4B15F0614E5A0607C7FC18
+0E027F5D4B5C60EF01C04D5A4DC8FC02FF140E92C75A17705F4C5A4C5A49020FC9FC4A13
+1E163F5E4C7E15030103496C7EECFC0E4B6C7E15389238E01FF0ECFDC049B4486C7E1500
+4A6D7E14F8707EA2010F6E7E5C707FA2717EA2011F6F7E5C717EA2717EA2013F6F7E5C84
+1703017F4B7E496C4A13C0007FD9FFC090B512FE61B6FC473E7DBD46>75
+D<011FB512FC5BA29026007FF8C8FCEC3FE0A25DA5147F5DA514FF92C9FCA55B5CA51303
+5CA513075CA21830A21860130F5CA218C0A3011F15014A15801703A21707EF0F00013F5D
+4A5C5F17FE017F140301FF143F007F90B6FC5FB8FC343E7DBD38>I<90263FFFE0933807
+FFFC6F5EA2D9007F94381BFC00023FEF1FF8DA3BF816370233601A67A2DA31FC16C7F101
+8F147102619338030FE0A2DA60FE1506A2F10C1F14E0DAC07F03185B1930A219601A3F01
+016D6C14C0028060F00180F003006F7E0606137F130302004B91C7FC6F7E60A24E5B495E
+01066D6C5D60A24D5ADB03F81401010EED0300010C03065CA26F6C5AA24D1303131C0118
+4B5CED00FE5F5F19070138EC7F80013060013892C7FC137801FC027E140FD807FF023C4A
+7E007F01F0030FB512F0B502385B1618563E7DBD53>I<90263FFFF091381FFFFEA281D9
+003F030013C06E6CED3F00023F163CDA33FE151C1918EC31FFA202306D14381470912660
+7FC01430A26F7EA26F6C147014E04A6C6C1460A26F7E15037014E00101130102806D5C6F
+7FA2707E18010103EC3FE091C75DEE1FF0A2EE0FF8180349EC07FC010694C7FCEE03FEA2
+EE01FF60010E6E1387010C1686EF7FC6A2EF3FE618EE011CED1FFE01185E170FA2170717
+03133801306F5A13380178150013FCD807FF1678007F13F0B51630A2473E7DBD44>I<ED
+03FF033F13F09238FE01FC913907F0007FDA0FC0EB1F80023FC76C7E027EEC07F0D901F8
+6E7E4948140149486E7E494881011F167F495A49C9EA3F805B4917C0485A0003171F4917
+E01207485AA2121F5B19F0123F5BA2127FA219E04848163FA5F07FC0A490CAEAFF80A219
+005F6D5EA24D5A127F4D5AA26C6C4B5A4D5A001F5F4D5A6C6C157F4DC7FC6C6C5D6C6CEC
+01F80001ED07F06C6C4A5A017EEC1F806D6C017FC8FC90390FC001FC903907F80FF00100
+B51280DA1FF8C9FC3C4276BF46>I<011FB612FE49EDFFC018F0903B007FE0000FFC023F
+EC03FEEF00FF4BEC7F80F03FC0A2F01FE0A2147F5D19F0A402FFED3FE092C8FCA219C018
+7F19805B4AEDFF004D5A60EF07F84D5A0103ED3FC04A49B4C7FC91B612FC17E002FCCAFC
+A213075CA5130F5CA5131F5CA5133F5CA3137F497E007FEBFFC0A2B6FC3C3E7DBD3D>I<
+013FB612F017FF18E0903B007FE0003FF8023FEC07FCEF01FE4BEB007F1980F03FC0A2F0
+1FE0147F4B15F0A502FFED3FE092C8FCA219C0F07F80A249EEFF004A4A5A4D5AEF07F0EF
+1FE0EF7F800103DA03FEC7FC91B612F017C09139FC0007F0EE01FC70B4FC01076F7E4A14
+3F84717EA3130F5CA5011F153F5CA5013F17035CA21907017F1706496C021F130E007FD9
+FFC0150CB691380FF01C943803F878CBEAFFE0F03F8040407DBD43>82
+D<03FF1307020713E0021FEBF80E91397F00FE1ED901FCEB1F3ED903F0EB07BE4948EB03
+FE49481301494814FC91C8FC49157C133E137E173C491538A66D1530A26D1500808080EB
+7FFCECFFC06D13FCEDFF806D14E06D14F80103806D80D9003F7F1403DA007F1380150715
+016F13C0167F163FA2161F1218A3160F161F00381680A31700003C5D163E007C157E007E
+157C007F15FC6D495A6D495AD87DE0495AD8F8F8EB1FC0D8F07F017FC7FC39E01FFFFC01
+0713F048C613C030427BBF32>I<0007B912E0A33C0FFC001FF0003F01E0160F01801603
+90C7491301121E001C1700A212180038143F00304B14C0A35AA2157F485DA3C81600A215
+FF93C9FCA55C5DA514035DA514075DA5140F5DA5141F5DA3143FEC7FF80003B612FE5EA2
+3B3E76BD41>I<B600C090387FFFF8A3000101C0C7000313006C49EC00FC18F091C91270
+1860A318E05A495EA417011203495EA4170312074993C7FCA45F120F491506A4170E121F
+49150CA4171C123F491518A31738173017701760001F16E05F16016C6C4A5A160794C8FC
+6C6C141E6C6C5C00015D6C6C495A017FEB07C090393FC03F8090260FFFFEC9FC010313F8
+9038007FC03D4073BD44>I<B500FE0203B5FC19FEA2000301C09138007FE06C90C9EA3F
+80F01E006C171CA218186E5DA2017F5E18E0606E1401013F5E4DC7FCA26E1406A2011F5D
+A25F6E14381730010F5DA25F8001074A5AA24CC8FC6E5B160601035CA25E8001015CA25E
+6E13E05E6D13015E4BC9FC1583EC7F86A2158CA215D8EC3FF85D5DA25D141F5DA292CAFC
+80140E140C404074BD44>I<B500FE013FB56C48B512801D005C00070180010101E0C7EA
+3FF86C48C849EC0FC071485D000174C7FC1B06A2636D82637E05FF5DA2DC01BF5D846ED9
+031F5D137F04064B5AA2040C4BC8FCA204186D5B6E020F1406013F0230150E1A0C046015
+1C1A1804C06D13386E02071430011FEB018062150304005D5D03066E485ADAF00E130301
+0F010C4BC9FC151C03181506A24B6E5A02F814010107495DA24B5DA2DAF9805D18FF02FF
+C85B7F4A5EA24A93CAFCA24A157E13014A157CA24A1578A25C01001630594074BD5D>I<
+010FB500F090387FFFF8495CA2D9003F90C7001F1300DA1FFCEC07F8020F16E002071680
+96C7FC6E6C1406606E6C5C18386E6D5B606F6C5B4D5A6F6C48C8FC170692381FF00E5F92
+380FF8185F6F6C5A5FED03FF5F6F90C9FCA26F7FA2707EA24C7E5DEE9FF0ED031F03067F
+ED0C0F031C7FED380703707FED600303C07F4A487E0203814AC7FC140E020C6E7E5C4A6E
+7E5C02E06E7E495A49486E7E49C8FC496F7E4982D97F80140F2603FFC091383FFF80007F
+01F849B512FEB55AA2453E7EBD44>I<B692B51280A3000301F092383FF800C601C0ED1F
+C0017F70C7FC181E6D6C151C606E1530011F5E6E15E0010F5E4D5A6D6C4AC8FC5F6D6C14
+0E170C6D6C5C17386D6D5B17606F5B027F495A1603DA3FE090C9FC16066E6C5A161C6E6C
+5A16306E6C5A16E0EDFFC06E5B93CAFC6E5AA45D1403A55D1407A55D140FA4141F4A7E01
+1FB512F05BA2413E75BD44>I<010FB712FCA3923980000FF8D91FF8C7EA1FF014E04AEC
+3FE091C8EA7FC0011EEDFF80494A1300A201384A5A4C5A494A5AA201604A5A4C5A4C5A49
+4A5AA24B90C7FC90C7485A4B5AA24B5A4B5A4B5A4B5AA24B5A4A90C8FC4A5A5D14074A5A
+4A5A4A5AA24A48EB01804A5A4990C7EA0300495AA2495A49485C49481406A24948140E49
+5A495A4890C85A173C485A4848157C484815FC494A5A001F15074848141F4848EB01FFB8
+FC5FA2363E7BBD37>I<0470133CDB01FC13FE030380705A150716FC03035CEEF800DB00
+E0137893C9FCA417C04C7EA21603A2160783160FA2161FA24C7EA21667A216C7A2923801
+87FC1683ED0303A2150683ED0C01A21518A203307F1570ED600015E05D14014B804AC712
+7FA21406A24A81173F5C021FB6FC5CA20260C7EA3FE0171F5CA2495A8449C8120FA21306
+130E010C82131C011815071338137801F882487ED807FEED1FFEB500C00103B512FC4C14
+F8A23E4E7DCD44>196 D<DA01C013F0913907F003F8020F80EDF807141F15F0020F5CED
+E0039139038001E091CBFCA7B600C090387FFFF8A3000101C0C7000313006C49EC00FC18
+F091C912701860A318E05A495EA417011203495EA4170312074993C7FCA45F120F491506
+A4170E121F49150CA4171C123F491518A31738173017701760001F16E05F16016C6C4A5A
+160794C8FC6C6C141E6C6C5C00015D6C6C495A017FEB07C090393FC03F8090260FFFFEC9
+FC010313F89038007FC03D5073CD44>220 D<03FF010792393FC001C0020701E0923801
+FFF8021FD9F80E02079038FE038091277F00FE1E91391FC03F87D901FCD91F3E91397F00
+07CFD903F0D907BE02FCEB01EF4948D903FE4948EB00FF494801014A48147F4A4A4A1500
+49C84A488049037C010F81013E60017E171F053C8349033849C8120EA66D03306E140CA2
+6D92C76D91C7FC6E836E836E83D97FFE70B47EDAFFC017F06D01FC6F13FFDBFFC017F06D
+02F06E14FC6D6E6E8001036E02008001006E033F80023F6D030F8002036E020080DA003F
+170F03036D03007F0300183F706C707E043F170F041F1707A2040F170300181706A30407
+1701040F17030038DCC00E5EA305805F003C031F010F150705005F007C4B49150F007E03
+7E6E4A5A007F037C6E92C7FC6D02FC6E5C6D49486E147ED87DE0494802785CD8F8F8D90F
+C0D93E3EEB03F028F07F803F80903A3C1FE00FE027E01FFFFEC7D83807B51280010701F8
+030149C8FC27C0007FC0913930001FF062427BBF64>223 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fm ecbx2488 24.88 31
+/Fm 31 256 df[<F201F8507EA2507EA3507EA3507FA2507FA3507FA397B57EA24F80A3
+4F80A34F80A24F80A34F81A3DF3FBF801A3F4F6C80197EA2DFFE0F8019FC0601828619F8
+06036D8019F0A206076D8019E0060F6D8061A2061F6E8061A2063F6E8096C7FC4E6E8018
+7EA206FE6E8060A205016F806005036F8060A205076F8060A2050F6F8060051F708060A2
+053F708095C9FC4D8588177E05FE70805FA2040171805F040386885F040771805FA2040F
+71805F041F728094BCFCA24C87A34C87A204FECB000F805EA2030173805EA2030373805E
+030773805EA2030F73805EA2031F74805E033F748093CDFCA24B7480157E03FE898A5D02
+0175805DA2020375805D020775805DA2020F75805D141FDA3FF07580010FB512C0B800F0
+0403BA12F0A7>148 145 121 272 163 65 D[<BE12C01DFF1EF01EFEF6FFC01FF01FFC
+C7000702E0C9000714FFE2007F800B1F14E00B07800B01807780787F787F78807880A278
+808D8A8D8A8DA28A8DA38B8DAB699CB5FCA3696669A2545CA2545C545CA2545C5491C7FC
+545B9BB55A535C535C5314C00B1F5C0B7F49C8FC52B512F80A0F14E00903B6C9FC94BA12
+F81E801EF8F6FF801FF005E0CA003F13FE0B076D7E0B0114E0776C13F80C1F13FE787F78
+807814E0788078808D8B797F8D791480A27914C0A222E08B22F0A37914F8A422FCA58BA2
+67A522F8A36722F0A26722E0A25514C0A25514806722009CB6FC545C545C545C545C545C
+0C7F5C53B65A0B0792C7FC0B3F14FC0A03B65AC112E0208055C8FC1FF01F800CF8C9FC53
+CAFC>134 142 121 269 154 I[<97263FFFE017E0071FB616010603B700F01503063F04
+FC15074DB96C140F050F06E0141F053F18F84CB7D8000101FE143F040703C09026000FFF
+147F041F02FCC8000101C013FF047F02C06F6C6C5A93B6CA381FF803030302F8943807FC
+074B02E0EF03FE031F0280943800FF0F4B91CCEA7F9F4B01FC73B5FC4AB548854A4A1907
+4A02C0854A4A854A91CDFC4A49864A498791B54887498A5E494A87494A875B4C874991CF
+FC8C495B498A5D90B51E7FA2485C213F485C211FA2485CA248200FA25D5AA22107A2485C
+A29EC7FCA25AA492D3FCA3B6FCB3A27EA381A47EA46C80F907E0A37E81A27E210F6C6E1E
+C0A36C80211F6C6E1E80A26D1F3F6F1E007F6D6D65701C7E6D1FFE70646D1E016D6E515A
+6D8070515A6D1E0F6E6D646E6D515A6E6D515A6E6E1A7F6E6E50C7FC6E02F04F5A6E6E4F
+5A6E6C6D4F5A6F01FFF11FF06F02C04E5A03076EF0FFC06F02F84D90C8FC030002FFEF07
+FE7002E0EE1FFC041F02FCEEFFF00407DAFFC002075B040103FF91B51280DC003F92B648
+C9FC050F18F8050118E0DD003F94CAFC060316F8DE001F1580DF003F01F0CBFC>131
+146 116 271 156 I[<BE7E1DFEF5FFE01EFCF6FF801FF01FFCC7000702E0C9003F14FF
+0A0115C0E2003F14F00B07800B0014FE0C3F7F0C0F807814E00C01807880797F797F0D0F
+7F79808E8B798079807A7FA27A7F8E8C7A7FA28F8C8F8C8FA27A80A28F8CA28FA28D8FA4
+8F8DA4A11280A7A112C0A78DA669A7A11280A7A11200A369A26BA36B9EB5FCA26BA2686B
+A3565CA2565CA26B68A0C7FC565B686A565B9DB5FC6A555C555C555C5591C8FC67555B55
+13F854B55A545C0C0F5C0C3F5C9BB548C9FC0B035C0B1F14F052B612C00A3F5DC048CAFC
+1FF01FC054CBFC1EF053CCFC1D80>146 142 121 269 166 I[<C112FCA58CA2C7000702
+F0C91203F4000F1D001E1F1E078A1E00797E8B8B8B8B8BA28BA28B8D207FA3203FA3201F
+A28DA3200FA4F301F8A28D2007A49DC8FCA31B03A41B07A21B0FA21B1F1B3F1B7FF201FF
+1A071A7F94B8FCA705F0C77E1A071A01F2007F1B3F1B1F1B0FA21B07A21B03A41B01A2F9
+1F80A4F93F00A498CBFCA369217EA421FEA3692001A32003A3200769200FA2201FA2203F
+207FA2565A6767671F1F679CB5FC0C035C1E0F1E7F0B07B6FC52B7FCC2FCA369A4>129
+141 122 268 142 I[<BB6C027FBA12C0A7C7000702F0CC000302F8C8FCB3B3B3A494BE
+FCA705F0CC1203B3B3B3A9BB6C027FBA12C0A7>154 142 121 269
+169 72 D[<BB12E0A7C7000302F8C8FCB3B3B3B3B3B3B3A2BB12E0A7>67
+142 122 269 79 I[<BB12FCA7C7000702F0CEFCB3B3B3B3A9F70FC0A51F1F2080A61F3F
+A4200067A467A366A266671E07A21E0F1E1FA21E3F1E7F1EFF6565535B65651D7F52B5FC
+1C071C1F99B6FC1B1FC0FCA267A5>114 142 122 269 130 76 D[<B800F89BB812F071
+657165A37165A2C700076FE20FBF49C8FCA303F76EF41F3FA203F36E1C3EA203F16E1C7C
+A303F06E1CF8A2706DF301F0A2706DF303E0A3706DF307C0A2706EF20F80A3706EF21F00
+A2706E1A3EA2706E62A3706E62A2716D4F5AA3716D4F5AA2716D4F5AA2716E4E5AA3716E
+4EC7FCA2716E183EA3716E60A2716E60A2726D4D5AA3726D4D5AA2726D4D5AA2726E4C5A
+A3726E4CC8FCA2726E163EA3726E5EA2726E5EA2736D4B5AA3736D4B5AA2736D4B5AA373
+6E4A5AA2736E4AC9FCA2736E143EA3736E5CA2736E5CA2746D495AA3746D495AA2746D49
+5AA3746E485AA2746E48CAFCA274ECE03EA3746E5AA2746E5AA375EBFDF0A275EBFFE0A2
+755CA3755CA27591CBFCA2755BA3755BA2755BA2EC1FFC0103B500E0715AB96C0807BA12
+F0765AA2765AA3765A>188 142 120 269 205 I[<BC12FEF3FFFEF4FFE01DFEF5FFC01E
+F01EFEC7000702E0C8001F6E7EE1007F14E00A0F800A0114FC766C7F776D7E0B0F807780
+7780778077808A8C787FA278808D8AA28DA28D8AA38DAB69A3545CA3696669A25491C9FC
+68545BA29BB55A535C535C5314805391CAFC0B3F5B9AB512F80A0314E00A0F5C99B6CBFC
+091F14F894BA12E09BCCFC1DF0A21DFE05E0C86C6D7E090F14E0090114F8756C7F7613FF
+0A0F807680768076808B7680777F8B898C7780A2898CA37780AD8CAEA1123C7A157E89A3
+897A15FEA112FC89786D1401A2786E14F8781603786EEB07F0BB706EEB0FE0786E131F0C
+0002FCEB3FC0799039FF81FF800D1F91B512000D035D0D0015F8D3000F5CE6003F1380>
+151 144 121 269 160 82 D[<0007BF12E0A61FC005E0C9FC04F8CA158004804C150003
+FCCAFC03F04D5C4802C04D5C92CBFC4A4E5C5C4A4E5C02E04E5CA24A4E5C4A95B65A91CC
+FC5092C7FC5B494E5C505C5B505C505C5B505C5B505C97B65AA248484D92C8FC61644F5C
+A24F5C494D5CA24F5C616496B65ACCFC4E92C9FC4E5CA24E5C60634E5CA24E5C4E5CA295
+B65AA24D92CAFC4D5CA24D5C4D5CA24D5CA24D5C4D5CA294B65A4C92CBFCA24C5CA24C5C
+4C5CA24C5C4C5CA24C5CA293B65A4B92CCFCF603F04B5C5D604B5CA24B5C4B4A1707A24B
+4A18E092B6FC604A92CBFCA24A5C4A5C1E0F4A5C5C5F4A4A181FA24A5C91B65A1E3F4992
+CCFCA2494AF17FC0495C1EFF495C494A6065495C65494A6090B64860654892CC5A484A96
+B5FC64484A180764484A183F484A4DB6FC1B0F484A057F158048073FB7FC92BDFCC0FCA6
+>108 142 116 269 132 90 D<93387FFF80030FB512FC92B712C0020316F8020F16FE02
+3FD980076D7EDAFFF8C780490180023F13F0D907FEC86C7FD90FF86F13FE49486F7F02C0
+6F80D93FF86F80D97FFE816E6C8390B56C6F7FA26F6F7F5A6F838587A385876C5CA26D5B
+A26D5BD90FFEC9FCEB03F890CBFCA90603B6FC051FB7FC040FB8FC93B9FC030FECFC0F03
+7F14000203B512E0021F91C7FC027F13F849B512E0010714804949C8FC013F5B495B90B5
+5A485C485C485C4891C9FCA2485BA2485BF507E0485BA3B5FC5C61A461193B197B806C18
+F3806CDD01E3EC800F6EDB03C116C06C6D15076CDD0F80ECC01F6F4A489138E03F806C02
+E0023E6D9038F07F0000016E02FC92B5FC6C02FCD903F86D5C013F9027FF803FF06D5C01
+0F91B500C06D5C010393C700035CD9007F02FC6E14C0020F02F06E6C90C7FCDA003F90C9
+EA0FF8635F79DD6C>97 D[<ED7F8090B6FCB7FCA7EA003F130F7F7FB3B3A2F1FFF8061F
+EBFFC095B612FC050315FF050F16C094273FFC007F13F0DDFFC0010F13FCDC83FEC70001
+13FFDC87F86E80DC8FF0033F13E0DC9FC06F7FDCBF806F7F04FFC96C7F4C707F4C707F5E
+4C70804C854C717FA2767FA2767FA28AA2767FA38AA4761480A51FC0B11F80A6521400A3
+66A3525BA266A2525BA2525BA299B55A7061705E7096C7FC515B4B6C4C5BDBFC7E4C5BDB
+F87F4C5B4B6C6C4B5B9226E01FE04B5B9226C007F04AB5C8FCDC03FC02075B4B6CB4021F
+13F892C7267FF001B512E04A021FB712804A02074BC9FC4A020115F04A6E6C91CAFC90CA
+000313E0>106 144 122 270 120 I<933801FFFC043FEBFFE00303B612FE031F6F7E03
+7F16E04AB5D8C00313F8020701FCC7EA3FFE4A01F0EC03FF023F01C0020013C04A49ED3F
+E049B5C96C7E494916074949EE3FF84949EEFFFC49491503494D7F5D49495D90B5844B5D
+5A4891C9FCA25A5C5A735B5A4A705BA248725B070013E0F23F8097C8FC5A5CA5B5FCB07E
+A380A37EA36C7FA37E6EF00FC07E1B1F6C6E1880A26C6E173F1C006C6E5F6D197E6F17FE
+6D6D4C5A6D6D4C5A7F6D6D4C5A6D6D4C5A6D02C04B5A6D6EED7F80023F01F84BC7FC6E6D
+EC03FC0207D9FF80EB0FF8020102F8EBFFE06E6C90B65A031F93C8FC030315F8DB003F14
+C0040101F8C9FC525F79DD60>I<933803FFF8047FEBFFC00307B612FC033F15FF92B812
+C00203DA807F13F04A9026FC000F13FC021F01E001037F4A4901007F91B5C86C7F49496F
+7F49496F7F49496F7F49496F7F49498349834949838590B54883488492CA14805A7413C0
+485BA2481BE04A835AA21CF05AA2865C5A1CF8A4B5FCA391BBFCA402F8CDFCAA7EA4807E
+A37EA2807EA2F301F86C7F1B036C1BF06C801B076C6E18E06D190F6FEF1FC06D1A806D6D
+173F6D6DEF7F006D6D17FE6D6D4C5A6D6D4C5A6D6E4B5A6E01E0ED1FE0021F01F8ED7FC0
+6E01FE4A485A0203D9FFC0D907FEC7FC020002FCEBFFFC033F90B612F0030F16C003014B
+C8FCDB001F14F0040091C9FC555F7ADD62>101 D[<943801FFF0057F13FE0407B67E043F
+8193B712F003039138007FF8030F01F8804B01E0497E037F495A92B5C6487F4A495B5C4A
+494914804A5B4A5BA24A5BA25C5E91B56E1400A2725B4C6D5B499338007FF0F11FC096C8
+FCB3A8BAFCA7D8000102C0CAFCB3B3B3B3A6007FB812F0A7>73 144
+122 271 66 I<F41FE093263FFF80913801FFF80307B500FC020F13FE037FDAFFC0013F
+7F4AB700F090B612800207D9F803D9FC0313C3021F902AC0007FFF07FC0713C0027F90C7
+001FEBCFE0DAFFFC0207EBFF000103496E495B49496E497F498449496E7F4B6F16804973
+6C130049736C5A4B6FEC003890B57290C7FCA2488692C97E4886A44886AB6C62A46C626F
+5D6C62A26D616F5D6D616D96C9FC6F92B5FC6D6D4A5B6D606D6D4A5B6D6D4A13E003FF02
+1F5BD903DF01C0017F90CAFCD907879039F803FFFCD90F8190B612F0DA007F15C0490107
+02FCCBFCDB003F1380013E91CEFCA2137EA313FEA37FA280A28080A214F880ECFF8092B7
+12FC6DEFFFF8F2FF801BF06D19FC1BFF6D1AC01CF06D866D1AFE6D867F6D876E8691BC7E
+1307011F87017F90C912072601FFFCDC001F804801F017034849EF007F4849727F481A0F
+484984A24890CC6C7F87A2485A87A76D616C64A26E606C646E606C646C6D4E5B6C6D4E5B
+6C6D4E5B6C6D4E90C7FC6C6D4E5A6D6C4D5B011F01C0040713F06D01F0041F5B010301FE
+93B512800100D9FFC0020749C8FC021F01FE91B512F0020790B812C0DA007F04FCC9FC03
+0716C0DB000F02E0CAFC62887ADD6C>I[<ED7F8090B6FCB7FCA7EA003F130F7F7FB3B3A2
+F13FFF0603B512F0060F14FE063F6E7E95B712E04D010014F8DD07F8011F7FDD0FC06D7F
+4D486D7F053EC7FC4D6E804D6E80EE81F04D83DC83C080EE878089048FC9FC168E049E82
+169C04BC8416B816F8A25EA35EA55EB3B3B1B9011FB812E0A7>107
+143 121 270 120 I[<EC7F80903801FFE0497F497F497F497F497FA24980A86D91C7FC
+A26D5B6D5B6D5B6D5B6D5B9038007F8091C9FCB3A9ED7F80017FB5FCB7FCA7EA003F1307
+A27FB3B3B3B3A2B812FCA7>46 144 121 271 60 I[<ED7F8090B6FCB7FCA7EA003F1307
+A27FB3B3B3B3B3B3B0B812FEA7>47 143 121 270 60 108 D<DB7F80DA1FFF943801FF
+F090B64AB500F8041FEBFF80B7020F02FF93B612F0063F03C0020315FC95B700F0020F15
+FF4DD9807F6D91261FF80780942707F8001F01FE91267F800114E0DD0FE001076D02FEC7
+6C7FDD1F806D91268001F86E7FD8003F4BC74C5A010F037C6E9126C007C06E7F6D4B7148
+48826DDA81F06E4BC87E4DDDF01E83DC83C06F4A810487197C4DDDF87884048FC95DA204
+9E70D9F9E081049C6104BC06FF8504B86116F8A24C96C9FCA34C60A54C60B3B3B1B9010F
+B800F090B9FCA7A85D79DCB5>I<DB7F80EC3FFF90B60203B512F0B7020F14FE063F6E7E
+95B712E04D010014F8DD07F8011F7FDD0FC06D7F4D486D7FD8003F033EC7FC010F4B6E80
+6D4B6E806DEC81F04D83DC83C080EE878089048FC9FC168E049E82169C04BC8416B816F8
+A25EA35EA55EB3B3B1B9011FB812E0A76B5D79DC78>I<DB7F80ECFFF890B6021FEBFFC0
+B791B612FC050315FF050F16C094263FFC0014F0DDFFC0011F13FCDC83FEC7000713FFDC
+87F8020180D8003FDA8FF06E14E0010FDA9FC06F7F6DDABF806F7F6D02FFC96C7F4C707F
+4C707F5E4C70804C70804C85878A888AA2767FA28A88A28AA288A21F80A57614C0B11F80
+64A51F0064A266A26466A2525BA26699B5FC666366704C5C705E7096C7FC515B704C5B70
+4C5B704C5B7192B55ADCDFE04A5CDCC7F0020791C8FCDCC3FC4A5BDCC1FF027F13F89327
+C07FF003B512E0051FB7128005074BC9FC050115F0716C91CAFC060313E095CDFCB3AEB9
+FCA76A857ADC78>112 D<03FFEC1FF890B691B5FCB7010314E0050F804D14FC94393FF0
+0FFE94397F003FFF05FE491380DC01F890B5FCD8003F4A484814C0010F15E06D4A484814
+E06D1580160F17005E161E5EA27214C05E72148004706E130004F06E5AF10FF84C91C8FC
+A55EA65EB3B3AEB912E0A74B5D7ADC57>114 D<92263FFF80EB0380020FB500FC130702
+7F02FF131F49B7EAE03F0107EEF07F011F903AC0007FFCFFD97FFCC7000FB5FCD9FFE014
+0148496E7E4890C97E484882000F83498248488284123F4982007F187FA3193F12FF7FA2
+191F7F7F7F80806E93C7FC14F86C13FF15F0EDFF806C15FCEEFFE06C16FEEFFFC06C17F0
+6C17FC18FF6C846C18E06C84013F836D830107836D8301001880143F020717C0DA007F16
+E01507DB001F15F01600050F14F81701717E8400FC050F13FC84846C83A284A26C187FA2
+193F7FA26D18F8A27FA26D18F0197F7F6D18E019FF6D18C06D5E6E4B13806E4B130002F0
+4B5A6E4B5AD9E7FEED7FF89026C1FF8049485A018001F8011F13C026FE003FB75A48010F
+4BC7FC48010315F0480100158048020701F0C8FC465F79DD55>I[<ED03F0A81507A5150F
+A4151FA3153FA2157FA215FFA25CA25C5CA25C5C5C5C91B5FC13035B131F017F91B7FC00
+07BAFCBBFCA5C702F0C9FCB3B3ACF107E0B2190F6E17C082A280F11F80826EEE3F00826E
+167E6E7F6E5E6E6E485A6EECE0036F9038F80FF0031F90B512C003075D030192C7FCDB00
+3F13FC040113E0>67 132 124 258 84 I<DB7FC0EF0FF890B6041FB5FCB7031FB6FCA7
+D8003FEF0007010F18016D846D85B3B3B298B5FCA462A362A26D19BF1A071B3F1A0F6D6E
+151EA26E173C1A786E05F88070DA01F0806E6DDA03E06E7E6E6DDA0FC0EDFFE06E01FFEC
+3F8002019139E001FF006E91B512FC033F5D030715E0030092C7FC040701F804E0C7FC6B
+5E79DC78>I<B800FC033FB61280A7D8000702C0CAEC800070DD1FF8C7FC6DF20FE0A26D
+6E601C1F6D6E60A270173F6E97C8FC646E6D177E1CFE826E617115016E611B036E6E5E1B
+07836E611B0F6E6E5E1B1F6E6E5E1B3F836F95C9FC636F6D157E1BFE6F6D5DA27213016F
+5F1A036F6E5C1A076F6E5CA272130F6F5F1A1F6F6E5C1A3F847093CAFC725B70157E1AFE
+706D5B19011981705D198370ECC3F019C770ECE7E019EF19FF705DA2705DA27191CBFCA3
+715BA2715BA2715BA3715BA2715BA3715BA2715BA272CCFCA2695D7CDB72>I<007FB802
+0FB712C0A7C702FCC96C01FCC7FC70040790C8FC6EF003FC6E6D4C5A6E6E5E71150F6E4E
+5A6E6E4B5A714B5A6E96C9FC6E6E5D6E6E4A5A714A5A6F4C5A6F6D5D6F6E495A72131F6F
+4C5A6F6E495A6F6E91CAFC7213FE6F15016F6E485A706D485A06FF5B704A5A70149FF1FF
+C0705D7092CBFC705CA2705C82717F85837180718086837180864D805F864D804D81EF7F
+9FDDFF0F8005FE8104017F4C486C804C486C80DC0FF0814D7E4C486D7F043F6E7F4C4882
+4CC77E4C6E804B486E800303844B48804B486E804C834B486E80033F824B486F7F4BC981
+4A48824B7080020371804A48854A48824A487080DA7FF87080010FB585B700FC4AB812FC
+A76E5C7EDB72>120 D<0007BB12FEA503F0C814FC92C84814F802F85D02E018F048494B
+14E091C95A4919C04E1480495E494C1400624993B55A5F49604D5C5F49604D5C5F624D91
+C7FC001F5E495F94B55A5E614C5C5E61C9485C5E614C91C8FC5E6093B55A5D604B5C5D60
+4B5C5D604B91C9FC5D5F92B55A5C4D153F4A5C5C5F4A5C5C4D157E4A91C9FC5C5E91B55A
+5B5E494A16FE5B5E495C4918015E4991C9EA03FC5B5D90B548160748190F485C4B161F48
+4A163F48197F4BED01FF484A5D48181F92C9B5FC4849031F14F8BCFCA5505C7ADB60>
+122 D[<94B5FC043F14F04BB612FE03076F7E031F16E0037FD9F0017F4AB53980001FF8
+4A49C7EA03FE4A4914014A49EC007F4A496F7E4A844C151F4A717E5E91B5160787491803
+5EA287491801B263A21A03A4631A07A2631A0F963803FF80193FB792B5C8FC06035B4E13
+F84E48C9FCF01FF84E5A187FD800035F18FF615FA24D5BA55FA685A385A285A285717FF1
+FF801AFCF2FFC01BF87115FE757E7182887215F8887281A272817216807216C084060016
+E085071F15F01903F1001F080114F8F2003F87877513FC87DD07E080A287A272157FA31C
+3FA4841DF8A484F47FF0A2841DE07215FF1DC0735B51138073491300B76F495A07F8495A
+07FEEBFFF806F9B65A06F015C0DEC07F91C7FCDE801F13F8CAD900031380>94
+145 122 271 108 255 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fn ecbx1095 10.95 68
+/Fn 68 256 df<DB7FF8EB3FE0913B0FFFFE03FFF8027FD9FF8F13FE903C01FFC01FFFF0
+FF902707FE000713C1D91FFC011F491380D93FF0491303495A17FE495A17FC48496F1300
+041FEB007C040F91C7FCABBAFCA40001902780000FFCC8FCB3AE007FD9FE03B512FCA441
+407EBF3D>27 D<ED7FF891380FFFFE027F6D7E903A01FFC01FC0903A07FE0003E0D91FFC
+497ED93FF0EB1FF84948133FA2495A4C7E48496D5AA3705A705AEE038093C8FCA6923803
+FFFCB8FCA40001903880000FB3AE007FD9FE03B512F0A434407EBF3A>I<1407140F143E
+147C14F8EB01F01303EB07E0EB0FC0EB1F80A2EB3F005B137E13FE485AA2485AA212075B
+120FA25B121FA25B123FA4127F5BA512FFB0127FA57F123FA4121F7FA2120F7FA212077F
+1203A26C7EA26C7E137E137F7FEB1F80A2EB0FC0EB07E0EB03F01301EB00F8147C143E14
+0F1407185A77C328>40 D<12E07E127C7E7E6C7E7F6C7E6C7E6C7EA26C7E7F137E137FEB
+3F80A2EB1FC0A214E0130F14F0A2130714F8A2130314FCA414FE1301A514FFB014FEA513
+0314FCA414F81307A214F0130FA214E0131F14C0A2EB3F80A2EB7F00137E13FE5B485AA2
+485A485A485A5B48C7FC123E5A12F05A185A7AC328>I<B612E0A81B087F9723>45
+D<EA0780EA1FE0EA3FF0EA7FF8EAFFFCA6EA7FF8EA3FF0EA1FE0EA07800E0E798D1D>I<
+1606160E161E161CA2163C163816781670A216F016E0150116C015031680A2150716005D
+150EA2151E151C153C1538A21578157015F05DA214015D14035D140792C7FCA25C140E14
+1E141CA2143C143814781470A214F05C13015CA213035C130791C8FC5B130EA2131E131C
+133C1338A21378137013F05BA212015B12035BA2120790C9FC5A120E121E121CA2123C12
+3812781270A212F05AA2275B7AC334>I<ECFFE0010713FC011F13FFD97FE013C09039FF
+803FE03A01FE000FF000038148486D7E491303000F81001F81A348486D1380A3007F16C0
+A500FF16E0B3A2007F16C0A5003F1680A26D5B001F1600A2000F5D6D130700075D6C6C49
+5A6C6C495A6C6D485A90397FE0FFC0011FB5C7FC010713FC010013E02B3D7CBB34>I<14
+0F5C147F495A130F48B5FCB6FCA213F7EAFE071200B3B3AA003FB612F8A4253C79BB34>
+I<903803FF80013F13F890B512FE00036E7E2607F80F7F260FC00113F048486C7F48C76C
+7ED87FC06D7E7F486C6D7E7FA26F1380A46C5AA2EA1FC00007C7FCC814005DA25E153F5E
+4B5A5E4B5A4A5B5E4A90C7FC4A5AEC0FF84A5A5DEC3F804AC8FC14FED901F8EB0780495A
+495A4948EB0F00495A013EC7FC5B495C485A90B7FC485D5A5A5A5A5AB7FC5EA3293C7BBB
+34>I<ECFFE0010F13FC013FEBFF80D9FF0113E03A01F8007FF0D803E06D7E484880D80F
+F06D7E13FC486C80A47F5BA2120F6C485CD803F0133FC85BA24B5A5E4B5A4A5B4A90C7FC
+EC0FFC903807FFF05D15FE90390001FF809138007FE0ED3FF86F7E826F7E17806F13C0A3
+D8078015E0EA1FE0EA7FF8A2487EA417C0A2495B007F1680491500D83FC05B001F4A5AD8
+0FF0495A3A07FE01FFF06CB65AC61580011F01FCC7FC010113C02B3D7CBB34>I<ED01F0
+A215031507150F151FA2153F157F15FFA25C5C5CEC0FBF153F141E143C147C147814F0EB
+01E0130314C0EB0780EB0F005B133E133C5B5B12015B485A485A120F48C7FC121E5A5A12
+F8B812F8A4C8387FF000AB49B612F8A42D3C7DBB34>I<000E1518D80FC014F801FC131F
+90B65AA25E5E5E93C7FC15FC5D15E092C8FC14F80180C9FCA9903881FFC0018F13F801BF
+13FE9039FF01FF809039F8007FE001E06D7E4980496D7E6CC7FCC87F150F82A31780A212
+0FEA3FC0487E487EA41700A25B6C48495A5B007CC75B6C143F003F5D6C6C495AD80FE049
+5A2607FC075B0001B6C7FC6C14FC013F13F0010790C8FC293D7BBB34>I<EC03FE91383F
+FFC091B512F0903903FE01F890390FF8007CD93FE07F90397FC001FE4948487E485C4813
+005B1207120F5B001F6E5A6F5A003F91C8FCA25B127FA3EC3FFC00FF49B47E01F9B57E90
+39FBC03FF09138800FF8D9FF007F6F7E49806F13805B17C0A34915E0A5127FA5123FA217
+C0121F7F000F16805D6C6C150000035D6D495A6C6D485A6C9038E07FF0013FB55A010F14
+80010349C7FC9038007FE02B3D7CBB34>I<121E121F13F090B712F0A35A17E017C01780
+17005EA2485D007CC7EA01F84B5A00784A5A5E150F4B5A484AC7FC157E5DC85A14014A5A
+4A5AA24A5A141F5D143FA24AC8FCA25CA2495AA21303A313075CA2130FA5131FAA6D5A6D
+5A6D5A2C3F7ABD34>I<ECFFE0010713FE011F6D7E90397F803FE09039FC000FF0D801F0
+6D7E48486D7E00076E7E491300000F8182A2487EA27F7F7F01FF14FE14C0ECE0016C9038
+F803FC02FE5B9138FF87F06CECDFE0EDFF806C4AC7FC6C806C816D14E0011F8016FC017F
+80EA01FE2603F83F7F2607F00F148048487E261FC00114C0003F6D7E4848011F13E090C7
+7E150348140048157F163F161FA2160FA217C07E7E6DEC1F806C6C15005ED81FF0147E6C
+6C495A3A07FF801FF8000190B512E06C6C1480011F49C7FC010113E02B3D7CBB34>I<EC
+FFE0010F13FC013F13FF90397FC07FC04848C66C7E48486D7E00076E7E484880001F1407
+003F814980007F80A2178012FFA217C0A517E0A5007F5CA3123F5D6C7E000F5C6C7E0003
+143B3901FF807B39007FFFF3011F13C30107018313C090C71203A317805DA2D807F01500
+487E486C5C150F5EA24B5A4B5A49495A6C48495AD9C0015B2607F80790C7FC6CB512FC6C
+14F06C6C13C0D90FFCC8FC2B3D7CBB34>I<16F84B7EA24B7EA34B7EA24B7FA34B7FA24B
+7FA34B7F157D03FD7F15F8A2020180EDF07F020380EDE03FA2DA07C07F82020F814B7E02
+1F811500824A81023E7F027E81147C8202FC814A7F0101825C91B7FC4982A2498202C0C7
+123F83010F834A80011F8391C8FC834983013E81017E83137C83D801FE83B500FC49B612
+F8A4453F7CBE4E>65 D<B812F8EFFF8018F018FC26003FFCC7EA3FFEEF0FFF7113807113
+C019E08319F0A27113F8A74D13F0A34D13E019C04D13804D13004D5AEFFFF891B712E095
+C7FC18F002FCC7EA3FFE943807FF807113C07113E07113F0F07FF819FCA2F03FFEA219FF
+A819FEA2187F19FCF0FFF85F4D13F04D13E0053F13C0BA120018FC18F095C7FC403E7DBD
+4A>I<922607FF80131C92B500F8133C020702FE137C023F9138FF80FC91B538003FE101
+0301F0EB07F74901C0EB01FF011F90C8FCD93FFC153F4948151F495A4849150F48170748
+4915035C48170191C9FC481700A2485AA2197C127FA2491700A212FFAC127FA27F193C12
+3FA36C7E197C6C1878806C18F86E16F06C6D15016CEF03E06C6DED07C06D6C150FD93FFE
+ED1F806D6CED3F00010701C014FE6D01F0EB03F8010001FFEB1FF0023F90B512C0020792
+C7FC020014F8030713803E407ABE4B>I<B812F8EFFF8018F018FC26003FFEC76CB4FC05
+0F13C005037F05007FF03FF8727E727E85721380841AC0A27213E0A21AF084A21AF8A41A
+FCAD1AF8A41AF0A2601AE0A24E13C0A24E13801A00604E5A4E5AF0FFF84D13E0050F5B05
+7F5BB948C7FC18F818C005F8C8FC463E7DBD50>I<B912FEA426003FFEC7EA3FFF170717
+01838484841980180FA21807A3EE078019C01803A395C7FC160FA2161F163F16FF91B6FC
+A44AC6FC163F161F160FA204071478A319F0A393C8FCA2180119E0A21803A21807A2180F
+F01FC0183F18FF1703173FBAFC1980A33D3E7DBD44>I<B912F8A426007FFCC713FC171F
+170717011700A2187C187E183EA2181EA4041E131F180FA31800A2163EA2167E16FE1503
+91B5FCA4ECFC031500167E163EA2161EA693C8FCAEB712C0A4383E7CBD41>I<922607FF
+C0130E92B500F8131E020702FF133E023FEDC07E91B539801FE0FE499039F80003FB0107
+01C0EB00FF011F90C8127F4948153F4948151FD9FFF0150F481707484915034A1501485B
+48170091CAFC48187EA2485AA2193E127FA24994C7FCA212FFAB0407B612FC127FA27F93
+C7383FFE00123FA36C7EA26C7FA26C7F7E806C7F6C7F6D6C157F6D7E6D6C15FF010701C0
+5B010101F85B6D9039FF801FF1023F90B5EAC07E0207ED001E020002FC1306030701C090
+C7FC46407ABE52>I<B600FE017FB6FCA426007FFCC8383FFE00B3A691B8FCA402FCC812
+3FB3A8B600FE017FB6FCA4483E7CBD51>I<B71280A426003FFEC7FCB3B3B2B71280A421
+3E7DBD27>I<B600FE91387FFFFEA426007FFCC83803FE00F001F84E5A4E5AF01F804EC7
+FC187E604D5AEF07F0EF0FC04D5A4DC8FC177E5FEE03F04C5A4C5A4C5A4CC9FC16FF5D4B
+7F4B7F4B7F153F4B7F92B57EDAFDF97FECFFF04B6C7E03807F4B6C7F4A7F4A6D7F84707F
+82707F84707F177F717E8583717F85717F83717F85717F187FF1FF80B600FE011FB6FCA4
+483E7CBD51>75 D<B712C0A426007FFCC9FCB3AF1878A418F0A41701A31703A2EF07E0A2
+170F171F173F17FF1603161FB912C0A4353E7CBD3E>I<B500FE051FB512E06E5FA26F5E
+D8003FF28000A2013D6D16F7A2013C6DED01E7A26E6CED03C7A26E6CED0787A36E6CED0F
+07A26E6C151EA26E6C153CA26E6D1478A36E6D14F0A26E6DEB01E0A26F6CEB03C0A26F6C
+EB0780A36F6CEB0F00A26F6C131EA26F6C5BA26F6D5AA36F6D5AA26FEBE1E0A293387FF3
+C0A270B45AA37090C7FCA2705AA2705AA2017E6E5AB6041FB612E0A2705A705A5B3E7DBD
+62>I<B500FE033FB5FC8081A2C66C6D9138003F006F151E81017B7F01797F8113786E7E
+6E7F6E7F6E7F82806E7F6E7F6E7F6F7E6F7F83816F7F6F7F6F7F6F7F8381707E70138070
+13C07013E07013F018F8827013FC7013FEEF7FFF71139E19DE7113FE8383838383A2187F
+183F181F180F1807A21803180101FC1600B500FC167E193E191EA2483E7CBD51>I<B812
+F017FF18E018F828003FFE00017F9338003FFE94380FFF80837113C019E0A27113F0A319
+F8A719F0A34D13E0A219C04D13804D1300EF3FFE4CB45A91B712F018C005FCC7FC4ACAFC
+B3A6B77EA43D3E7DBD47>80 D<ED3FFE0203B512E0021F14FC913AFFF007FF8049D9C001
+7F010790C7EA7FF0D90FFCEC1FF8D93FF8EC0FFE49486E7E49486E7F48844A8048496E7F
+4884488491C9127F4884A249163F003F84A3007F844982A300FF1980AD007F1900A36D5E
+003F60A3001F606D167F6C60ED07F06C9026801FFC495A6C4A6C5C9139C07C1F016C9027
+E07007835B6C9126F003C35B90287FF0E001E790C7FCD93FF8ECEFFED91FFC6DB45A9026
+07FFF014F06D4A5B0100D9FC071380021FB548C712800207EE01C09139003FFE7F92C713
+8094383FC003F0F01F95B5FCA2711480A31A0083A2715B61715B715B715BF03F8042517A
+BE4E>I<B812C017FCEFFF8018F028003FFE000113FC9338003FFE717E05077F85717FA2
+717FA285A761A24D5BA24D5B61DD1FFEC8FC4D5A933803FFF091B712C04DC9FCA2913AFE
+000FFF80040313E004007F717E84173F84171F84A685A5F20180F203C019C083A2719038
+E00780A2B76C6C9038F00F0071EBFC3F9439007FFFFE061F13F8CC13E04A3F7DBD4E>I<
+903A01FF8001C0011FEBF803017FEBFE0748B6128F489038007FDFD807F8EB0FFF484813
+0348487F4848EB007F163F127F49141F160F12FF1607A27FA26D1403A27F01FC91C7FC13
+FF6C13F8ECFF8015FC6CECFF806C15E016F86C816C816C816C16806C6C15C0131F010715
+E0EB007F020314F0EC001F1503030013F8167F163F12F0161FA2160FA27EA217F07E7EEE
+1FE07E6DEC3FC013E06DEC7F8001FE903801FF003AFEFFE007FED8FC3FB512F8D8F80F5C
+D8F003148027E0001FFCC7FC2D407ABE3A>I<003FB912F8A4903BFC007FFC007F01E016
+0FD87F80EE03FC90C71501007E1700A2007C187CA20078183CA548181EA5C81600B3B101
+1FB712F0A43F3D7CBC48>I<B600FC021FB51280A4C601FCC9387FC0006D6C041FC7FC61
+013F173E6E167E6D177C8119FC6D6D5D18016D5F6F14036D5F6F14076D5F81180F6D5F6F
+141F027F93C8FC6F5C023F153E81187E6E6D137C18FC6E5DEEC0016E5D16E017036E01F0
+5B17076E5DEEF80F6E5D16FC171FDB7FFE90C9FC5F033F133EEEFF7E6F137C17FCA26F5B
+A26F5BA26F5BA26F5BA36F5BA270CAFCA2163E493F7EBD4E>86 D<B6D8FC03B600E09038
+7FFFFCA4C601F8C7000701E0C8EAFE006E6E173C017F715DA26E6E17F8013F715D6E801C
+016D715D6F027F15036D715D18FF6F18076D4B6D5D816D50C7FC4D806F02CF5D6D72131E
+EF07876F183E6D030F6E133C6F1403027F715B171F6FD91E0115F8023F023E6E5B6FEB3C
+001B016E027C02FC5BDC8078017F13036E05FE5B4D133F04C016076E01C103FF5BDCE1E0
+7F6E4EC8FC04E3168FDCF3C06D139F6E18DEDCF7807F04FF16FE6E6094C77E6F5FA24C80
+033F5F4C80A2031F5F4C157F030F5F4C153FA203075F4C151F030394C9FC4C81663F7EBD
+6B>I<003FB812C0A49126C0001F138049C75A01F8160001E04A5A4914FF495D90C7485B
+485C007E5E4B5B007C5C5F4B5B5D007893C7FC5D5E4B5AC75A5E4A5B5C5E4A5B5C5E4A90
+C8FCA24A5A14FF5D495B5B4BEB01E0495B5B5D495B49150392C713C05B5C494814075A5C
+4849140F5A4A141F4849143F48167F4A14FF4890C75A48030F138049147FB9FCA4333E7A
+BD3F>90 D<007FB912F8BA12FCA46C18F83E06776851>95 D<903807FF80013F13F048B5
+12FC3903FC03FF2607E00013C0D80FF86D7E001F6E7E7F6F7EA26F7EA26C5A6C5AEA01C0
+C8FCA3EC03FF49B5FC130F017F138F3901FFF00F00071380481300EA1FFC485A127F5B12
+FF5BA3151FA26D133F127F6D49B4FC273FFC01F713FC391FFE07E30007B5128100019038
+FE007F26001FF890C7FC2E2B7DA932>97 D<13FFB5FCA412077EB0ED7FE0913807FFFC02
+1F13FFDA7F0013C002F8EB3FF04A6D7E4A6D7E02806D7E8391C77E1880A218C082A318E0
+AA18C0A35E1880A24C13006E5C6E130F6E5CD9FDF0495AD9F8F8EB7FE0903AF07F01FFC0
+D9E01FB5C7FCD9C00713F8C813C033407DBE3A>I<EC7FF00103B5FC011F14C090397FE0
+1FE09039FF8003F0489038000FF8484814FC0007141F485A121F5B123FED0FF8007FEC07
+F049EB01C092C7FC12FFAB127FA27FA2003F151E7F001F153E000F153C6D147C6C6C14F8
+6C90388001F0C69038C003E090397FF00FC0011FB51200010713FC9038007FE0272B7DA9
+2E>I<EE07F8ED07FFA4ED003F161FB0EC7FE0903803FFFC011F13FF90397FF00FDF9039
+FFC003FF000390C7FC4848147F000F153F49141F121F485AA2127F5BA312FFAA127FA37F
+123FA2121F6D143F000F157F6C6C14FF6C6C497F6CD98007EBFFE03A007FE01F9F90391F
+FFFE1F010713F89026007FC0EBE00033407DBE3A>I<ECFFE0010713FC013F13FFD97FE0
+13803A01FF803FC0489038001FE04848EB0FF0484814F8ED07FC485A003FEC03FEA3485A
+16FFA200FF80A390B7FCA301F0C8FCA5127FA36C7E160F121F6D141F000F151E6C6C143E
+0003157C6C6C14F86C9038C003F090397FF01FE0011FB512C00107EBFE009038007FF028
+2B7DA92F>I<EC07FCEC7FFF49B512C0903907FE1FE090381FF83F90393FF07FF0EB7FE0
+A2EBFFC0A2481380ED3FE0ED0F8092C7FCABB612E0A400010180C7FCB3AE007FEBFF80A4
+24407DBF20>I<903A03FF8003F0013F9038F81FFC90B538FE7FFE0003903801FFFC3A07
+FC007FE1000F15E04848EB3FF0003FEDF87C49011F1300A2007F81A7003F5DA26D133F00
+1F5D6C6C495A00075D9039FF01FF80DAFFFEC7FCD80F3F13F801031380001ECAFCA2121F
+A37F7F90B6FC6C15F016FC6C15FF17806C16C017E0120F271FC0000113F04848EB001F48
+C8EA0FF8160712FE1603A46C15076C16F06D140F6C6CEC1FE06C6CEC3FC0D80FF8ECFF80
+3B03FF800FFE00C690B512F8011F14C0010101FCC7FC2F3D7DA834>I<13FFB5FCA41207
+7EB0ED3FF0EDFFFE02036D7EDA0FC07F91391E007FE04A6D7E5C5C4A6D7E5CA25CA391C7
+FCB3A5B5D8FC07B512E0A4333F7CBE3A>I<EA01F8487E487E487E481380A66C13006C5A
+6C5A6C5AC8FCA913FFB5FCA412077EB3ADB512F8A415407CBF1D>I<13FFB5FCA412077E
+B1923803FFFEA4030013804CC7FC4B5AED03F04B5AED1FC04B5A037EC8FC5DEC03F8EC07
+E04A7E4A7EEC7FFC14FF818102E77F02837F1401496C7F826F7E6F7E151F6F7E826F7F6F
+7F816F7F83B5D8F807EBFFC0A4323F7DBE37>107 D<13FFB5FCA412077EB3B3B1B512FC
+A4163F7CBE1D>I<D801FED93FF049B47E00FFDAFFFE010713F002039026FF801F13FCDA
+0FC09039C07E07FE913C1E007FE0F003FF00074990273FF1E0011380000349ECF3C04AEC
+F7806D486DB4C713C04A5CA24A5CA391C75BB3A5B5D8FC07B5D8E03F13FFA450297CA857
+>I<D801FEEB3FF000FFECFFFE02036D7EDA0FC07F91391E007FE00007496D7E00035B5C
+6D486D7E5CA25CA391C7FCB3A5B5D8FC07B512E0A433297CA83A>I<EC7FF0903803FFFE
+011FEBFFC090397FE03FF09039FF800FF848496C7E48486D7E48486D7E48486D1380001F
+16C0A2003F16E049147F007F16F0A400FF16F8AA007F16F0A46C6CECFFE0A2001F16C000
+0F16806D5B6C6C4913006C6C495A6C6D485A3A007FE03FF0011FB512C0010791C7FC9038
+007FF02D2B7DA934>I<01FFEB7FE0B53807FFFC021F13FFDA7F0113C09139F8007FF000
+07496D7E6C496D7E02806D7E8391C77E18808218C0A38218E0AA18C05EA34C1380A21800
+6E495A6E131F6E5C6E495A6EEBFFE0DA7F035B021FB5C7FC020713F8020013C092C9FCAD
+B512FCA4333B7DA83A>I<DA7FE01378902603FFFC13F8011FEBFE0190397FF81F819039
+FFE007C34890388001E3000790C712F716FF4848147F4848143F123F161F5B127FA25B12
+FFAA127F7FA3123F7F001F153F6C6C147F16FF6C7E6CEB80036C9038C007DF3A007FF03F
+9F90391FFFFE1F010713F89038007FC091C7FCAD0307B512E0A4333B7DA837>I<3901FE
+01FC00FF903807FF804A13E091383F1FF0143C00079038783FF8000313F014E013FF14C0
+ED1FF09138800FE0ED038092C7FCA291C8FCB3A4B6FCA425297DA82B>I<90381FF80E48
+B5123E000714FE380FE007381F800148C7FC007E147E007C143E12FC151EA27E7E6D90C7
+FC13E013FF6C13FCECFF806C14E06C14F86C80000380C680133F01031480EB000F020113
+C000F0EB007F153F6C141FA2150F7EA26C1580151F6C15006D5B01E0137E9038F803FC00
+FCB512F0D8F03F13C026E007FEC7FC222B7DA929>I<EB0780A5130FA4131FA3133F137F
+A213FF5A1207001FEBFFFCB6FCA30001EB8000B3A2151EA96C143C14C0A290387FE07890
+383FF0F090381FFFE0010713C0010013001F3B7EB928>I<01FFEC07F8B5EB07FFA40007
+EC003F6C151FB3A6163FA3167F6C15FFA26E487F6C913907DFFFE090397FE01F9F90391F
+FFFE1F010713F8010001E0EBE000332A7CA83A>I<B500F890381FFFC0A4000301809038
+03F8006CED01E06E13036C5E80017F4A5A80160F013F92C7FC6E5B011F141E6E133E010F
+143C6E137C010714786E13F86D5C15816D5C15C16DEBC3C015E315E7027F5B15FF6E90C8
+FCA26E5AA26E5AA26E5AA26E5AA26E5A32287EA737>I<B53CF83FFFF801FFFCA4000390
+C7903980001F80F10F006E017F5C6C70131E16FF6C6D6E5BA26E48157C017F6F13785DD9
+3FF0D9CFF85BA29126F807871301011F03FC5B150FD90FFC903903FE03C0A29126FE1E01
+1307010703FF5B153E902703FF3C00018FC7FCA203F8EB7F9F6D16DEA26D49EB3FFCA24B
+131F027F5DA26E486D5AA24B1307021F5DA26EC76C5A46287EA74B>I<B5D8F801B5FCA4
+00019039C0003FC06C93C7FC6D6C137E6E137C6D6C5B6D6C485A6D6C485A6D6C485A6D49
+5A6D139F03FFC8FC6D5B6E5A6E5A141F6E7E81814A7F4A7F147E91387C7FE002F87F4948
+6C7E49486C7E49486C7E90380F8007011F6D7ED93F0080017E6D7F017C6D7FD801FC6E7E
+B5D88003B512C0A432287EA737>I<B500F890381FFFC0A400030180903803F8006CED01
+E06E13036C5E80017F4A5A80160F013F92C7FC6E5B011F141E6E133E010F143C6E137C01
+0714786E13F86D5C15816D5C15C16DEBC3C015E315E7027F5B15FF6E90C8FCA26E5AA26E
+5AA26E5AA26E5AA26E5AA214035D14075D000C130F003F91C9FC486C5A38FFC01E143E14
+3C5C14F8387F81F0495A383E0FC06CB45A6C48CAFCEA03F8323B7EA737>I<003FB612FC
+A39039F0003FF801C0EB7FF090C712FF003E4913E016C0484913805C4A130000785C4A5A
+143F4A5A5DC7485A5B495B5D4990C7FC5B4948133C5C495A137F494813785C485B5A4849
+13F891C7FC48481301001F14034848130749EB0FF04848137FB7FCA326287DA72E>I<03
+F8EB0F80DA03FEEB3FE04A6C497E4A6D487EA316C1A21680A36E496C5A6E486D5ADA00F8
+EB0F8092CCFCA5B76C90B61280A426003FFEC96CC7FC193EB3B3A5011F5FA2806D17FC61
+6D6D1401616D6D4A5A6D16076D6DEC1FC0DA7FF84A5ADA3FFE49B4C8FC913A0FFFC00FFC
+020390B55A020015E0031F1480030101F8C9FC49527DD050>220
+D<017EEB07E09039FF801FF0486D487E4881ECE07F4881A46C5DECC03F6C5D6C496C5A90
+397E0007E090CAFCA6903807FF80013F13F048B512FC3903FC03FF2607E00013C0D80FF8
+6D7E001F6E7E7F6F7EA26F7EA26C5A6C5AEA01C0C8FCA3EC03FF49B5FC130F017F138F39
+01FFF00F00071380481300EA1FFC485A127F5B12FF5BA3151FA26D133F127F6D49B4FC27
+3FFC01F713FC391FFE07E30007B5128100019038FE007F26001FF890C7FC2E3F7DBD32>
+228 D<D907C0137C90391FF001FF496C487F496C487FA36E5AA24A7EA36D486C5B6D486C
+90C7FC903907C0007C90CBFCA701FFEC07F8B5EB07FFA40007EC003F6C151FB3A6163FA3
+167F6C15FFA26E487F6C913907DFFFE090397FE01F9F90391FFFFE1F010713F8010001E0
+EBE000333F7CBD3A>252 D<EC7FF8903803FFFE010F6D7E90393FF00FE090397FC003F0
+01FF130048497F167891C7127C48153CAB5EA2ED07F8ED1FF0B5EB7FC003FCC7FC5D1401
+00035C1403A581A28115FF16F86E13FEEEFF806E14C017E06F13F081030F13F815039238
+001FFC16071603913803C001A21600A281A217F881160117F0B5EBF8039238FC0FE092B5
+12C003CF1300C7EB83F82E417DBF35>255 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fo ecbx1200 12 58
+/Fo 58 253 df<DB0FFFEB03FF4AB5D8C03F13C0020F02F1B512E0027F91B612F0902701
+FFF8039038FE1FF849018002F813FC010F4948EBF03F49484913E0495A4A15C0495AF11F
+F801FF16804A6DEC07E070EC018096C7FCABBA12F0A5C69026E000030180C7FCB3B0007F
+D9FFC1B67EA546467EC541>27 D<ED0FFF4AB512C0020F14F0027F80903A01FFF803FC49
+9038C000FE010FEB00034948497E49485B5C495A4C138001FF6E13005CA3705AEE01F893
+C8FCA74BB51280B9FCA5C69038E00003B3B0007FD9FFC1B6FCA538467EC53E>I<B612F8
+A91D097F9A25>45 D<EA07C0EA1FF0EA3FF8EA7FFCEAFFFEA7EA7FFCEA3FF8EA1FF0EA07
+C00F0F788E1F>I<EC03C01407141F147FEB03FF133FB6FCA413C3EA0003B3B3ADB712FC
+A5264177C038>49 D<ECFFE0010F13FE013F6D7E90B612E0000315F82607FC0313FE3A0F
+E0007FFFD81F806D138048C7000F13C0488001C015E001F07F00FF6E13F07F17F881A46C
+5A6C5A6C5AC9FC17F05DA217E05D17C04B13804B1300A2ED1FFC4B5A5E4B5A4B5A4A90C7
+FC4A5A4A5AEC0FF04A5AEC3F804AC7127814FE495A494814F8D907E014F0495A495A49C8
+FC017C140149140348B7FC4816E05A5A5A5A5AB8FC17C0A42D417BC038>I<ECFFF00107
+13FF011F14C0017F14F049C66C7ED803F8EB3FFED807E06D7E81D80FF86D138013FE001F
+16C07FA66C5A6C4815806C485BC814005D5E4B5A4B5A4B5A4A5B020F1380902607FFFEC7
+FC15F815FF16C090C713F0ED3FFCED0FFEEEFF80816F13C017E0A26F13F0A217F8A3EA0F
+C0EA3FF0487EA2487EA217F0A25D17E06C5A494913C05BD83F80491380D81FF0491300D8
+0FFEEBFFFE6CB612F800015D6C6C14C0011F49C7FC010113E02D427BC038>I<163FA25E
+5E5D5DA25D5D5D5DA25D92B5FCEC01F7EC03E7140715C7EC0F87EC1F07143E147E147C14
+F8EB01F0EB03E0130714C0EB0F80EB1F00133E5BA25B485A485A485A120F5B48C7FC123E
+5A12FCB91280A5C8000F90C7FCAC027FB61280A531417DC038>I<0007150301E0143F01
+FFEB07FF91B6FC5E5E5E5E5E16804BC7FC5D15E092C8FC01C0C9FCAAEC3FF001C1B5FC01
+C714C001DF14F09039FFE03FFC9138000FFE01FC6D7E01F06D13804915C0497F6C4815E0
+C8FC6F13F0A317F8A4EA0F80EA3FE0487E12FF7FA317F05B5D6C4815E05B007EC74813C0
+123E003F4A1380D81FC0491300D80FF0495AD807FEEBFFFC6CB612F0C65D013F1480010F
+01FCC7FC010113C02D427BC038>I<4AB47E021F13F0027F13FC49B6FC01079038807F80
+90390FFC001FD93FF014C04948137F4948EBFFE048495A5A1400485A120FA248486D13C0
+EE7F80EE1E00003F92C7FCA25B127FA2EC07FC91381FFF8000FF017F13E091B512F89039
+F9F01FFC9039FBC007FE9039FF8003FF17804A6C13C05B6F13E0A24915F0A317F85BA412
+7FA5123FA217F07F121FA2000F4A13E0A26C6C15C06D4913806C018014006C6D485A6C90
+38E01FFC6DB55A011F5C010714C0010191C7FC9038003FF02D427BC038>I<121E121F13
+FC90B712FEA45A17FC17F817F017E017C0A2481680007EC8EA3F00007C157E5E00785D15
+014B5A00F84A5A484A5A5E151FC848C7FC157E5DA24A5A14035D14074A5AA2141F5D143F
+A2147F5D14FFA25BA35B92C8FCA35BA55BAA6D5A6D5A6D5A2F447AC238>I<EE1F80A24C
+7EA24C7EA34C7EA24B7FA34B7FA24B7FA34B7F169F031F80161F82033F80ED3E07037E80
+157C8203FC804B7E02018115F0820203814B137F0207815D173F020F814B7F021F8292C7
+7EA24A82023E80027E82027FB7FCA291B87EA2498302F0C8FCA20103834A157F0107834A
+153FA249488284011F8491C97E4984133E017E82B6020FB612F0A54C457CC455>65
+D<B9FC18F018FE727E19E026003FFCC700077F05017F716C7E727E727EA2721380A37213
+C0A74E1380A24E1300A24E5A4E5A4E5A4D5B05075B94B5128091B700FCC7FC18F018FF19
+E002FCC7000113F8716C7EF01FFE727E7213801AC07213E0A27213F0A31AF8A71AF0A260
+1AE0604E13C0604E138095B5120005075BBA12F86119C04EC7FC18E045447CC350>I<DC
+FFF01470031F01FF14F04AB6EAE0010207EDF803023FEDFE0791B539E001FF0F4949C7EA
+3F9F010701F0EC0FFF4901C0804990C87E4948814948814948167F4849163F4849161F5A
+4A160F485B19074890CAFC19035A5BA2007F1801A34994C7FC12FFAE127F7F1AF0A2123F
+A27F6C18011AE06C7F19036C6D17C06E16077E6C6DEE0F806C6DEE1F006D6C5E6D6C167E
+6D6C6C5D6D6D4A5A6D01F0EC07F0010101FEEC1FE06D903AFFF001FF80023F90B6C7FC02
+0715FC020115F0DA001F1480030001F8C8FC44467AC451>I<B9FC18F018FE727E19E026
+003FFEC7001F13F805017F9438003FFF060F7F727F727F727F84737E737EA2737EA2737E
+A21B80A2851BC0A51BE0AD1BC0A51B8061A21B006162193F624F5A19FF624E5B06075B4E
+5B063F90C7FC4DB45A050F13F8BA5A19C04EC8FC18F095C9FC4B447CC356>I<BA12F8A4
+85D8001F90C71201EF003F180F180318011800A2197E193EA3191EA21778A285A405F890
+C7FCA316011603161F92B5FCA5ED001F160316011600A2F101E01778A2F103C0A494C7FC
+1907A21A80A2190FA2191FA2193FF17F0061601807181F4DB5FCBBFC61A443447DC34A>
+I<BA1280A419C026003FFEC7121F1701EF007F183F181F180F180719E01803A31801A3EE
+01E0F000F0A419001603A31607160F167F91B6FCA59138FE007F160F16071603A31601A6
+93C9FCAFB712F0A53C447CC346>I<DCFFF01470031F01FF14F04AB6EAE0010207EDF803
+023FEDFE0791B539E001FF0F4949C7EA3F9F010701F0EC0FFF4901C0804990C87E494881
+4948814948167F4849163F4849161F5A4A160F485B19074890CAFC19035A5BA2007F1801
+A34994C8FC12FFAD057FB612F0127F7FA3003FDC0001EBF000A27F7EA26C7FA26C7F807E
+6C7F6C7F6D7E6D6C5D6D6C7E6D6D5C6D01F05C010101FE143F6D903AFFF001FF9F023F90
+B6120F0207EDFC030201EDF000DA001F02C01330030001FCC9FC4C467AC458>I<B7D880
+03B612FEA526003FFEC9EBF800B3A791B9FCA54AC9FCB3AAB7D88003B612FEA54F447CC3
+58>I<0107B7FCA590C7001F1300B3B3A9EA1FE0487E487EA2487EA44B5AA26C48495A49
+5C6C4813FF6C48485B260FFC0713C06CB65A6C4AC7FCC66C13F8010F138030457DC33A>
+74 D<B76C0103B512F8A526003FFEC93807E0004F5A4F5A077EC7FC614E5A4E5A4E5AF0
+1F804EC8FC187E604D5AEF07F0EF0FC04D5A4DC9FC177E4C5AEE03F04C5A4C5A4C7EEE7F
+F04C7E5D4B7F4B7F4B7FED3F3FDB7E1F7F03FC806E486C7F4B7E4B6C7F0380804B6C7F4A
+7F717E84717F83717F85717F83717F85717F187F727E86727F84727F86727F84B76C90B6
+12FCA54E447CC358>I<B712F0A526003FFECAFCB3B1F00780A4180F1900A460A360A218
+7EA218FE170117031707171F177FEE03FFB95AA539447CC343>I<B500FE067FB512806E
+95B6FCA26F5EA2D8003F50C7FC013D6DEE03DFA2013C6DEE079FA26E6CEE0F1FA26E6C16
+1EA26E6C163CA36E6C1678A26E6C16F0A26E6DEC01E0A26E6DEC03C0A36E6DEC0780A26F
+6CEC0F00A26F6C141EA26F6C5CA36F6C5CA26F6C5CA26F6D485AA26F6D485AA26F6D485A
+A3706C48C7FCA293383FF81EA2706C5AA2706C5AA3706C5AA2705BA2705BA2705BA2B605
+7FB6128071C7FCA2173E171C61447CC36A>I<B64BB512FE8181A281D8003F6D91C7EA78
+0081013D7F81133C6E7E6E7F6E7F6E7F6E7F82806E7F6E7F6F7E6F7F83816F7F6F7F6F7F
+6F7F6F7F8382707F707F707F707F8482707F707F717E7113807113C019E0837113F07113
+F87113FC7113FE19FF847213F884848484A28484197F193F191FA2190F1907B616031901
+19001A78A24F447CC358>I<B9FC18F018FE727E19E0D8001F90C7000F7F05017F716C7E
+727E727E721380A21AC084A21AE0A91AC0A24E1380A21A00604E5A4E5A4D485A050F5B92
+B712C096C7FC18FC18C092CBFCB3A7B712E0A543447DC34D>80 D<B812F8EFFFC018F818
+FE727ED8001F90C7003F13E005037F05007F727E727E727EA28684A286A762A24E90C7FC
+A24E5A61187F943801FFF005075B053F138092B7C8FC18F818E018F892C77FEF3FFF050F
+7F717F717FA2717FA2717FA785A61B0F85A2187F73131F72141EB700E06DEB803E72EBE0
+FC72EBFFF8060114F0726C13E0CC0007138050457DC354>82 D<DAFFE0131C010701FE13
+3C013F9038FF807C90B6EAE0FC4815F9489038801FFF3907FC00014848EB007F4848143F
+4848140F491407007F15035B1601160012FF177CA27FA26D153C7F7F6D92C7FC6C7EEBFF
+E014FE6CEBFFF015FF6C15E016FC6C816C6F7E6C826C826C6C81011F810107811300020F
+80140003077FED007F82040F1380828212F082A282A27EA218007EA26C5D6C5E6D14036D
+5D6D140701F84A5A01FFEC3FF002F8EBFFE0486CB65AD8FC1F92C7FCD8F80714FC48C614
+F0480107138031467AC43E>I<003FBA12E0A59026FE000FEB8003D87FE09338003FF049
+171F90C71607A2007E1803007C1801A300781800A400F819F8481978A5C81700B3B3A201
+07B8FCA545437CC24E>I<B76C010FB512F8A526003FFEC93803E000B3B3A9011F170762
+80190F6D606F151F6D95C7FC6D6D5D197E6D6D5D6D6D1403DA7FFC4A5A6EB4EC3FF0020F
+9039F003FFE06E90B61280020193C8FC6E6C14FC030F14E09226007FFEC9FC4D457CC356
+>I<B792B6FCA526003FFECAEAFC00806D606F15016D608119036D606F15076D606F150F
+6D6081191F6D6D93C7FC61027F163E6F157E023F167C8119FC6E6D5C18016E5E7013036E
+5E8218076E6D5C180F6E5E70131F6E93C8FC705B037F143E82187E033F147C7013FC6F5C
+17816F5C17C117C36F5C17E76F5C17FF6F5CA36F91C9FCA2705AA2705AA3705AA2705AA2
+705AA250457EC355>I<007FB6D8C003B61280A5D8000F01E0C7D801F8C7FC6D4C5A6F14
+076D6D5D6D6D4A5A4E5A6D6D143F6E6C92C8FC6E157E705B6EEBC0016E01E05B4D5A6E6D
+485A6EEBF80F6E01FC5B4D5A6E6D48C9FC6F6C5A6F137E5F6F5B815F816F7F81836F7F70
+7E93B5FC844B805D4B8004E77FDB0FC37FED1F83DB3F817F04007F037E137F4B8002016E
+7F4B6D7F4A5A4A486D7F020F6E7F4B7F4A48814AC76C7F717F147E4A6F7E0101707F4A81
+49488349486F7F010F707FB600E00103B612FCA54E447DC355>88
+D<001FB812FEA59126F8000113FC028015F801FCC75A494A13F04916E0495C494A13C048
+4816805E90C84813005F003E15FF4B5B5F003C5C4B5B5F5D4B5BC85C4B90C7FC5D5E4B5A
+5C5E4A5B5C5E4A5B5C5E4A90C8FC5C5D4A48140F5B5D495B5B4949141F5D49161E495B92
+C8FC49163E495A5C48177E485B4A15FE481601484914034A140748160F4849143F91C8EA
+FFFC48150FB9FCA538447AC344>90 D<903801FFE0011F13FE017F6D7E48B612E03A03FE
+007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA40203B5FC
+91B6FC1307013F13F19038FFFC01000313E0481380381FFE00485A5B127F5B12FF5BA35D
+A26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01FC66CEB80
+07D90FFCC9FC322F7DAD36>97 D<EB7FC0B5FCA512037EB1ED0FF892B57E02C314E002CF
+14F89139DFC03FFC9139FF000FFE02FCEB03FF4A6D13804A15C04A6D13E05CEF7FF0A218
+F8173FA318FCAC18F8A2177F18F0A3EFFFE06E15C06E5B6E491380027C491300496C495A
+903AFC1FC07FFC496CB512F0D9F00314C049C691C7FCC8EA1FF036467DC43E>I<EC3FFC
+49B512C0010F14F0013F14FC90397FF003FE9039FFC001FF0003495A48494813805B120F
+485AA2485A6F1300007F6E5AED00784991C7FCA212FFAC6C7EA3123F6DEC03C0A26C6C14
+07000F16806D140F6C6DEB1F006C6D133E6C01F05B3A007FFC03F86DB55A010F14C00103
+91C7FC9038003FF82A2F7CAD32>I<EE03FEED07FFA5ED001F160FB1EC3FE0903803FFFC
+010FEBFF8F013F14CF9039FFF807FF48EBC00148903880007F4890C7123F4848141F4914
+0F121F485AA3127F5BA212FFAC127FA37F123FA26C6C141FA26C6C143F0007157F6C6C91
+B5FC6CD9C00314FC6C9038F01FEF6DB5128F011FEBFE0F010713F89026007FC0EBF80036
+467CC43E>I<EC3FF80103B57E010F14E0013F8090397FF83FF89039FFC007FC48496C7E
+48496C7E48486D1380485A001FED7FC05B003FED3FE0A2127F5B17F0161F12FFA290B7FC
+A401F0C9FCA5127FA27FA2123F17F06C7E16016C6C15E06C6C14036C6DEB07C06C6DEB0F
+806C01F0EB3F0090397FFE01FE011FB55A010714F0010114C09026001FFEC7FC2C2F7DAD
+33>I<EDFF80020F13E0027F13F049B512F849EB8FFC90390FFE0FFE90381FFC1F14F813
+3FEB7FF0A2ED0FFCEBFFE0ED03F0ED00C01600ABB612F8A5C601E0C7FCB3B0007FEBFFE0
+A527467DC522>I<DAFFE0137E010F9039FE03FF80013FEBFF8F90B812C048D9C07F133F
+489038001FF84848EB0FFC4848903907FE1F80001F9238FF0F00496D90C7FCA2003F82A8
+001F93C7FCA26D5B000F5D6C6C495A6C6C495A6C9038C07FF04890B55A1680D8078F49C8
+FC018013E0000F90CAFCA47F7F7F90B612C016FC6CEDFF8017E06C826C16FC7E00038200
+0F82D81FF0C77ED83FC014074848020113808248C9FC177FA46D15FF007F17006D5C6C6C
+4A5A6C6C4A5AD80FFEEC3FF83B07FFC001FFF0000190B612C06C6C92C7FC010F14F8D900
+7F90C8FC32427DAC38>I<EB7FC0B5FCA512037EB1ED07FE92383FFF8092B512E002C114
+F89139C7F03FFC9138CF801F9139DF000FFE14DE14FC4A6D7E5CA25CA35CB3A7B60083B5
+12FEA537457CC43E>I<137C48B4FC4813804813C0A24813E0A56C13C0A26C13806C1300
+EA007C90C7FCAAEB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>I<EB7FC0B5FCA512
+037EB293387FFFE0A593380FE0004C5A4CC7FC167E5EED03F8ED07E04B5A4B5A037FC8FC
+15FEECC1FCECC3FE14C7ECDFFF91B57E82A202F97F02E17F02C07FEC807F6F7E826F7E81
+6F7F836F7F816F7F83707E163FB60003B512F8A535457DC43B>107
+D<EB7FC0B5FCA512037EB3B3B3A3B61280A519457CC420>I<90277F8007FEEC0FFCB590
+263FFFC090387FFF8092B5D8F001B512E002816E4880913D87F01FFC0FE03FF8913D8FC0
+0FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C130F02BC5D02F86D496D7EA24A
+5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>I<90397F8007FEB590383FFF
+8092B512E0028114F8913987F03FFC91388F801F000390399F000FFE6C139E14BC02F86D
+7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>I<EC1FFC49B512C0010714F0011F14
+FC90397FF80FFF9026FFC0017F48496C7F4848C7EA3FE000078248486E7E49140F001F82
+A2003F82491407007F82A400FF1780AA007F1700A46C6C4A5AA2001F5E6D141F000F5E6C
+6C4A5AA26C6C6CEBFFE06C6D485B27007FF80F90C7FC6DB55A010F14F8010114C0902600
+1FFCC8FC312F7DAD38>I<90397FC00FF8B590B57E02C314E002CF14F89139DFC03FFC91
+39FF001FFE000301FCEB07FF6C496D13804A15C04A6D13E05C7013F0A2EF7FF8A4EF3FFC
+ACEF7FF8A318F017FFA24C13E06E15C06E5B6E4913806E4913006E495A9139DFC07FFC02
+CFB512F002C314C002C091C7FCED1FF092C9FCADB67EA536407DAC3E>I<90387F807FB5
+3881FFE0028313F0028F13F8ED8FFC91389F1FFE000313BE6C13BC14F8A214F0ED0FFC91
+38E007F8ED01E092C7FCA35CB3A5B612E0A5272D7DAC2E>114 D<90391FFC038090B512
+87000314FF120F381FF003383FC00049133F48C7121F127E00FE140FA215077EA27F01E0
+90C7FC13FE387FFFF014FF6C14C015F06C14FC6C800003806C15806C7E010F14C0EB003F
+020313E0140000F0143FA26C141F150FA27EA26C15C06C141FA26DEB3F8001E0EB7F0090
+38F803FE90B55A00FC5CD8F03F13E026E007FEC7FC232F7CAD2C>I<EB01E0A51303A413
+07A2130FA2131FA2133F137F13FF1203000F90B51280B7FCA4C601E0C7FCB3A3ED01E0A9
+150302F013C0137F150790393FF80F8090391FFC1F006DB5FC6D13FC01015B9038003FE0
+23407EBE2C>I<D97FC049B4FCB50103B5FCA50003EC000F6C81B3A85EA25EA25E7E6E49
+1380017FD901F713FE9138F807E76DB512C7010F1407010313FE9026007FF0EBFC00372E
+7CAC3E>I<B6903803FFFCA5000101E09038003E006C163C80017F5D8017F8013F5D6E13
+01011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15C05E6DEBE01E163E6D143CEDF0
+7C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5BA26E90C8FCA26E5AA26E5AA215
+78362C7EAB3B>I<B5D8FE1FB539801FFFF0A500019027C0003FE0C7EA7C007114786E17
+F86C6F6C5C6E1601017F6E6C5CA26E011F1403013F6F5C6E013F1407011F6F5CA26E0179
+140F010F048090C7FC6E01F95C6D02F0EBC01E15806D902681E07F5B18E003C3157C6D91
+39C03FF07815E76DDA801F5B18F803FF14F96E9039000FFDE018FF6E486D5BA36E486D5B
+A26E486D90C8FCA24B7F02075DA26E48147C4B143C4C2C7EAB51>I<B500FE90383FFFF0
+A5C601F0903803E0006D6C495A6D6C495A011F4AC7FC6E5B6D6C137E6DEB807C6D6D5A6D
+EBC1F0EDE3E06DEBF7C06EB45A806E90C8FC5D6E7E6E7F6E7FA24A7F4A7F8291381F3FFC
+EC3E1F027C7F4A6C7E49486C7F01036D7F49487E02C08049486C7F49C76C7E013E6E7E01
+7E141FB500E090B512FCA5362C7EAB3B>I<B6903803FFFCA5000101E09038003E006C16
+3C80017F5D8017F8013F5D6E1301011F5D6E1303010F5D6E13076D5DED800F6D92C7FC15
+C05E6DEBE01E163E6D143CEDF07C027F1378EDF8F8023F5B15FD021F5B15FF6E5BA36E5B
+A26E90C8FCA26E5AA26E5AA21578A215F85D14015D001F1303D83F805B387FC007D8FFE0
+5B140F92C9FC5C143E495A387FC1F8EB07F06CB45A6C5B000790CAFCEA01FC36407EAB3B
+>I<001FB71280A49026FC001F130001E0495A5B49495A90C7485A48495B123E4A5B4A5B
+003C495BA24A90C7FC4A5A4A5AC7FC4A5A495B495BA2495B499038800780491300A2495A
+4948130F49481400A2485B48495B485BA248495B4890C75A48485C15034848EB1FFEB7FC
+A4292C7DAB32>I<D91F8013FC90397FC001FF496C487F486D487F6E5A4882A56C5E4A7E
+6C496C5B6D486C90C7FC90391F8000FC90CBFCA7903801FFE0011F13FE017F6D7E48B612
+E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090C7FCA4
+0203B5FC91B6FC1307013F13F19038FFFC01000313E0481380381FFE00485A5B127F5B12
+FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF86CECE01F
+C66CEB8007D90FFCC9FC32457DC336>228 D<D903F0EB1F80D90FF8EB3FE0496C497E49
+6C497E6E5AA24981A36D5DA24A7E6D486D5A6D486D5AD903F0EB1F8090CBFCA8D97FC049
+B4FCB50103B5FCA50003EC000F6C81B3A85EA25EA25E7E6E491380017FD901F713FE9138
+F807E76DB512C7010F1407010313FE9026007FF0EBFC0037457CC33E>252
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fp ecrm1095 10.95 94
+/Fp 94 256 df<001C1307007FEB1FC039FF803FE0A201C013F0A3007F131F001CEB0730
+00001300A500011470491360A2000314E090C712C048130100061480000E1303000C1400
+001C5B48130E485B006013181C1B7FBE1E>17 D<001C1307007FEB1FC039FF803FE0A201
+C013F0A3007F131F001CEB073000001300A500011470491360A2000314E090C712C04813
+0100061480000E1303000C1400001C5B48130E485B006013181C1B7F881E>I<BE1280A2
+590280985A>22 D<DA03FFEB0FE0021F9038C07FF8913AFE00F1F81CD901F890383BE07E
+D907E090387FC0FF90390FC001FFD91F805CD93F005C5B017E167E01FE6D48130049147E
+AEB91280A3D800FCC7007EC7FCB3AE486C14FF277FFFF83F13FFA338407FBF35>27
+D<EC03FE91381FFFC09138FE01E0903901F80078D907E0131C4948137C494813FE90383F
+00015B137E13FE496D5A167893C7FCAB167EB712FEA33900FC00011500167EB3AC486C14
+FF277FFFF83F13FCA32E407FBF32>I<EC03FF021F13EE9138FE00FEEB01F8903807E001
+EB0FC0EB1F80EB3F005B017E130001FE147E5BAEB712FEA3D800FCC7127EB3AE486C14FF
+277FFFF83F13FCA32E407FBF32>I<DA03FE49B4FC91271FFF800F13E0913BFE01E07F00
+F0902801F80078FC133CD907E0D91BF0130E4948D97FE0133E4948484848137FD93F004A
+5B5B017E92C7FC13FE494A147EDB007E143C96C7FCAB193FBBFCA3D800FCC7007EC7FC85
+85B3AC486C02FFEC7F80277FFFF83F9039FC1FFFFEA347407FBF4B>I<121C127FEAFF80
+A9EA7F00AC123EAC121CACC7FCA9121C127FEAFF80A5EA7F00121C094178C019>33
+D<013F1603D9FFC0ED07802601E0E0150F2607C070151F48486CED3F00D9001E157E001E
+6D15FE003E02C0EB03FCDA06F0EB0FF8003CD9073F13FD007C903A030FFFF1F00300EB03
+E00078ED000700F86E5C02014A5A171F95C7FC173E177E177C5F16015F0203495A0078EC
+0007007C5E4C5A003C49131F003E010691C8FC020E133E001E010C137E6C011C137C6D48
+5B3907C070012601E0E05B6CB448485A90263F0007147E90C79039C001FF80923A0F8003
+C1C0031F90380F80E09339001F0070033E011E1338037E491318037C017C131C4B150C02
+010278130E4B01F813064A5A02075CDBC0011407DA0F801503141F1500143E147E147C5C
+13015C494816070107020014064A80495A011F0378130E91C8007C130C013E171C017E03
+3C1318017C6F133849031F1370000193380F80E049923803C1C049923801FF806C489238
+007E0040497BC34B>37 D<EC0F80EC3FE0ECF870903801E03001031338903807C018A290
+380F801C150CA2131F1400A21480A2151C15181538153015705D5DEB0FC1ECC38002C7CA
+FC14C602EE91383FFFF8EB07FC5C4A020713800103923801FC00715A6E5D60496C4A5A01
+0F5ED91CFE1403013893C7FCD9707F5C01E0150E48486C6C130CD803806D131C0007011F
+141848486C6C1338486E5B02071460003E6E13E0007E6D6C5B0201130100FE6E485A6E6C
+48C8FC157FED3F8E16DCDB1FF814306C6E5A15076C6E6C14706D6E1460003F4A6C14E06D
+D90F7F14C06C6C90393C3F80016C6C903AF81FE007803D07F807E007F81F000001B539C0
+03FFFE6C6C48C713F8D90FF0EC1FE03D437CC046>I<121C127FEAFF80A213C0A3127F12
+1C1200A512011380A2120313005A1206120E120C121C5A5A12600A1B78BE19>I<143014
+7014E0EB01C0EB0380EB07005B131E5BA25B5BA2485AA2485AA212075B120FA290C7FC5A
+A2121E123EA3123C127CA6127812F8B21278127CA6123C123EA3121E121FA27E7FA21207
+7F1203A26C7EA26C7EA213787FA27F7F7FEB0380EB01C0EB00E014701430145A77C323>
+I<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378A27FA2133E131E131FA27F1480
+A2130714C0A3130314E0A6130114F0B214E01303A614C01307A31480130FA214005BA213
+1E133E133CA25BA25BA2485A485AA2485A48C7FC120E5A5A5A5A5A145A7BC323>I<EB03
+C0A2805CA600F0140F00FC143F00FE147F00FF14FF393FC3C3FC390FE187F03903F18FC0
+3900FDBF00EB3FFCEB0FF0EB03C0EB0FF0EB3FFCEBFDBF3903F18FC0390FE187F0393FC3
+C3FC39FF03C0FF00FE147F00FC143F00F0140F00001400A6805CA220277AC32D>I<1506
+B3ABBA12E0A2C80006C9FCB3AB3B3C7BB446>I<121C127FEAFF80A213C0A3127F121C12
+00A512011380A2120313005A1206120E120C121C5A5A12600A1B788819>I<B512FEA517
+057F951E>I<121C127FEAFF80A5EA7F00121C0909788819>I<16C0A215011680A2150316
+005D1506A2150E150CA2151C1518A215381530A21570156015E05DA214015DA2140392C7
+FCA25C1406140E140CA2141C1418A214381430A214701460A214E05C13015CA2130391C8
+FCA25B1306A2130E130CA2131C131813381330A213701360A213E05BA212015B120390C9
+FCA25A1206A2120E120CA2121C1218A21238123012701260A212E05AA2225B7BC32D>I<
+EB03FC90381FFF8090383E07C09038F801F048486C7E4848137C49133C0007143E48487F
+A248C7EA0F80A24815C0A4007EEC07E0A500FE15F0B3A3007E15E0A4007F140F6C15C0A4
+6C15806D131F000F1500A26C6C133EA26C6C5B6C6C5B6C6C485A90383E07C06DB45AD903
+FCC7FC243F7CBC2D>I<14C013031307131F137FEA07FFB5FC139FEAF81F1200B3B3ACEB
+7FF0B612F8A31D3D78BC2D>I<EB07FC90383FFF8090B512E03901F00FF839078003FC48
+486C7E000E6D7E48EC7F8048EC3FC012300070EC1FE01260A200FEEC0FF07E7FA56CC7FC
+121CC813E0151FA216C0153F1680157F160015FE4A5AA24A5A4A5A4A5A5D4A5A023EC7FC
+5C5C495A495A5C495A49C71230131E5B5B491460485A485A485A90C812E048B6FC5A5A48
+15C0B7FCA3243D7CBC2D>I<EB07FC90383FFF8090B512E03901F807F83907C003FC48C6
+6C7E000E6D7E48EC7F80EA1F80486CEB3FC07FA56C5A0007C7FCC81380157FA216005D5D
+4A5A4A5A5DEC0FC0023FC7FCEB1FFCECFF809038000FE0EC03F86E7E6E7E157F1680ED3F
+C0A216E0A2151F16F0A2120C123F487E487EA4ED3FE05B6CC713C01270ED7F807E6CECFF
+00000F495A3907C003FC3903F80FF0C6B55A013F1380D907FCC7FC243F7CBC2D>I<150E
+A2151E153EA2157E15FEA214011403A21406140E140C141814381430146014E014C0EB01
+80130314001306130E130C5B133813305B13E05B485A120390C7FC1206120E120C5A1238
+12305A12E0B8FCA3C8EAFE00AC4A7E49B6FCA3283E7EBD2D>I<00061403D807C0130F01
+F813FE90B55AA215F05D5D92C7FC38063FF890C9FCADEB01FE90380FFF8090383E03E090
+387001F8496C7ED807C0137E497F90C713800006141FC813C0A216E0150FA316F0A4123E
+127F487EA490C713E048141F12E0006015C012700030EC3F8012386CEC7F00001E14FE6C
+495A3907C003F83903F00FE0C6B55A013F90C7FCEB07F8243F7CBC2D>I<EC1FE0ECFFF8
+010313FE90380FF01F90391F80078090383F0003017EEB0FC049131F4848133F485AA248
+5A000FEC1F8049EB0F00001F91C7FCA25B123FA3127F90C9FCEB01FE903807FF8039FF0E
+03E0496C7E90383800FC49137E0160133E01E0133F49EB1F8016C05B16E0150FA290C713
+F0A67EA56C7E16E0A2121FED1FC07F000F1580153F6C6C14006C6C137E6C6C5B6C6C485A
+90387E07F06DB45A010F1380D903FCC7FC243F7CBC2D>I<12301238123E003FB612FCA3
+16F85A16F016E00070C8FC0060EC01C0ED038016005D48140E150C151C5DC8123015705D
+4A5A5D14034AC7FCA2140EA25CA2143C14381478A214F85C1301A31303A313075CA3130F
+A5131FAA6D5A6D5A26407BBD2D>I<EB03FC90381FFF80017F13E09038FC03F83901E000
+FC4848133E48487F48C77E000E1580001E1407001C15C0003C1403A3123EA2123F15076D
+1480D81FE0130F6D140001FC131E6C6C5B6D6C5A6C6D5A6CEBF1E06CEBFF806C91C7FC13
+3F6D13C06D7F4913F801787F48486C7E3903C01FFF48486C1380260F000313C0487F001E
+9038007FE048143F007C140F0078EC07F0150312F8481401A21500A46C15E000781401A2
+007C15C06C1403001EEC0780001FEC0F00D80FC0131E6C6C137C3901FC03F86CB512E001
+1F1380D903FCC7FC243F7CBC2D>I<EB03FCEB1FFF4913C09038FE07F03901F801F84848
+6C7E4848137C000F147E48487F5B003FEC1F80A2127F90C713C0A25AED0FE0A516F0A66C
+141FA27F123F153F121F6C6C137F0007146F6D13EF3903F001CF3900F8038F90387C070F
+D91FFE13E0EB07F890C7FC151FA216C0A3ED3F80A2000F1500486C5B486C137EA25D4A5A
+138049485A001C495A001EEB1FC0260FC07FC7FC3803FFFE6C13F838003FC0243F7CBC2D
+>I<121C127FEAFF80A5EA7F00121CC7FCB3A3121C127FEAFF80A5EA7F00121C092778A6
+19>I<121C127FEAFF80A5EA7F00121CC7FCB3A3121C127FEAFF80A213C0A3127F121C12
+00A512011380A2120313005A1206120E120C121C5A5A12600A3978A619>I<BA12E0A2CD
+FCB0BA12E0A23B147BA046>61 D<12E01278121EEA07C0EA01F0EA003C130FEB03C0EB00
+F0143EEC0F80EC01E0EC0078151EED0780ED01F0ED007C160FEE03C0EE00F0173CEF0F80
+EF03E0EF0078181EA21878EF03E0EF0F80EF3C0017F0EE03C0040FC7FC167CED01F0ED07
+80031EC8FC1578EC01E0EC0F80023EC9FC14F0EB03C0010FCAFC133CEA01F0EA07C0001E
+CBFC127812E0373279AF46>I<1507A34B7EA24B7EA34B7EA34B7E156FA2EDCFF815C7A2
+91380187FC1583A291380301FEA391380600FFA2020E80020C137FA2021C800218133FA2
+4A80161FA24A80160FA24A6D7EA349486D7E91B6FC4981A291C712014981010680A24982
+177FA24982173FA2496F7EA21370717E13F0000183487ED80FFEED3FFEB500C00107B512
+F8A33D417DC044>65 D<B712FCEEFFC017F0C69039C0000FFC6D48EB03FEEE00FFEF7F80
+EF3FC018E0171F18F0170F18F8A718F0171F18E0173F18C0EF7F80EFFF00EE03FEEE0FF8
+EE7FE091B6C7FC17E09139800003FCEE00FEEF7F80EF3FC0EF1FE0EF0FF018F8170718FC
+1703A218FEA718FC1707A2EF0FF818F0171FEF3FE0EF7FC0933801FF80496C90380FFE00
+B85A17E094C7FC373E7DBD40>I<DB3FF0130C912603FFFE131C021FEBFF80913A7FE00F
+C03C913AFF0001F07CD903FCEB0078D907F0EC3CFCD91FE0140F494814074948140349C8
+FC4848150149150012034848167CA24848163CA24848161CA2123F5B180C127FA3491600
+12FFAC127F7F180CA2123FA27F001F171C18186C7EA26C6C163818306C6C167000011760
+6D16E06C6CED01C06D6CEC03806D6C14076D6CEC0F00D907F0141ED903FC5CD900FF14F0
+91397FE007E0021FB51280020349C7FC9138003FF036427BBF41>I<B712FCEEFF8017E0
+C69039C0001FF86D48EB03FEEE00FFEF3F80717E717E717E717E717EA2717E8484198018
+3F19C0A319E0181FA419F0AB19E0A4183F19C0A21980187FA2190018FEA24D5A4D5A1707
+4D5A4D5A4D5A05FFC7FCEE03FE496CEB1FF8B85A178004FCC8FC3C3E7DBD45>I<B912C0
+A3C69038C000016D48EB001FEF0FE01703A217011700A31860A418301630A41800A21670
+A216F01501150791B5FCA3EC8007150115001670A21630A21806A3180C93C7FCA4181C18
+18A21838A21878A218F0170117031707171F496CEB01FFB912E0A3373E7DBD3D>I<B912
+80A3C69038C000036D48EB003FEF1FC017071703A21701A31700A41860A21630A31800A3
+1670A216F01501150791B5FCA3EC8007150115001670A21630A693C8FCAFEBFFE0B612F0
+A3333E7DBD3B>I<DB3FF0130C912603FFFE131C021FEBFF80913A7FE00FC03C913AFF00
+01F07CD903FCEB0078D907F0EC3CFCD91FE0140F494814074948140349C8FC4848150149
+150012034848167CA24848163CA24848161CA2123F5B180C127FA34993C7FC12FFAB041F
+B512F0127F7F9339000FFE00EF03FC123FA27F121FA26C7EA26C7EA26C7E6C7EA26C7E6D
+6C14076D7E6D6C140FD907F8141C6D6CEC387CD900FFECF03C913A7FF007E01C021FB5EA
+800C020349C8FC9138003FF03C427BBF47>I<B6D8C01FB512F8A3C601C0C7381FF8006D
+486E5AB3A691B7FCA30280C7120FB3A9496C4A7EB6D8C01FB512F8A33D3E7DBD44>I<B6
+12C0A30001EBE00038007F80B3B3B23801FFE0B612C0A31A3E7DBD21>I<010FB512F8A3
+D900071300EC01FEB3B3A7123FEA7F80EAFFC0A44A5A1380D87F005B006C130700705C6C
+495A6C495A000F495A2603C07EC7FC3800FFF8EB3FC025407DBD2E>I<B600C090380FFF
+F8A3C601C0C7000313806D48913801FC006018E04D5A604DC7FC170E5F5F17F0EE01C04C
+5A4CC8FC160E5E5E5E5E4B5A4B5A15074B7E151F4B7E4B7E15FF913881CFF891388387FC
+EC870791388E03FE91389C01FF14B8DAF0007F4A6D7E1480707E707EA2707E707EA2707E
+707EA2707F717EA2717E717EA2717E84717E4D7E496C4A1380B600C090B512FCA33E3E7D
+BD46>I<B612F0A3C601E0C8FCEB7F80B3B01703A517071706A4170EA3171EA2173E177E
+17FEEE01FC1607496C133FB8FCA3303E7DBD38>I<B56C93381FFFF06E5EA2C6F1F000D9
+6FE0EE6FE0A2D967F016CFA3D963F8ED018FA2D961FCED030FA3D960FE1506A2027F150C
+A36E6C1418A36E6C1430A26E6C1460A36E6C14C0A26E6CEB0180A36E6CEB0300A26E6C13
+06A3037F5BA26F6C5AA36F6C5AA26F6C5AA36F6C5AA2923803F980A36FB4C7FCA26F5AA2
+13F0486C147CD807FE4D7EB500F00138011FB512F0A34C3E7DBD53>I<B56C91387FFFF8
+8080D8007F030313006EEC00FCD96FF815786E15301367EB63FE80136101607F6E7EA26E
+7E6E7EA26E7E6E7EA26E7E6E7EA26E7F6F7E82153F6F7E82150F6F7E8215036F7E6F1380
+A2EE7FC0EE3FE0A2EE1FF0EE0FF8A2EE07FCEE03FEA2EE01FF7013B018F0177F173FA217
+1F170F1707A2170301F01501487ED807FE1500B500F01570A218303D3E7DBD44>I<EDFF
+E0020713FC91393FC07F809139FE000FE0D901F8EB03F0D907E0EB00FC4948147E494880
+49C86C7E017E6F7E01FE8248486F7E48486F7EA248486F7EA248486F7E001F83A2498200
+3F1880A3007F18C049163FA300FF18E0AC007F18C06D167FA4003F18806D16FF001F1800
+A36C6C4B5AA26C6C4B5A00035F6D150700015F6C6C4B5A017F4B5A6D6C4A5A011F93C7FC
+D90FE014FE6D6C495AD901F8EB03F0D900FEEB0FE091393FC07F80912607FFFCC8FC0200
+13E03B427BBF46>I<B712F016FF17C0C69039C0003FF06D48EB07F8EE01FE707E831880
+EF3FC0A2EF1FE0A218F0A818E0A2EF3FC0A2EF7F80180017FEEE03FC4C5AEE3FE091B612
+8004FCC7FC0280C9FCB3A7497EB612C0A3343E7DBD3D>I<EDFFE0020713FC91393FC07F
+809139FE000FE0D901F8EB03F0D907F0EB01FCD90FC0EB007E49488049C86C7E498201FE
+6F7E48486F7E000383491503000783491501000F8348486F7EA34848EE7F80A3007F18C0
+A249163FA200FF18E0AC007F18C0A26D167FA3003F1880A26C6CEEFF00A36C6C4B5AA200
+07021F5C6C6C90397FC003F8EDE0706C6C48486C485A3C00FE0380180FE0017ED9001C5B
+013F91380C1F80D91F83D90E3FC7FCD90FC3EB067ED907F3EB07FC902601FB8013F06DB4
+6C485A91273FE07F8013600207B5FC020013E392380003C019E0831801933801F0039438
+F807C0EFFC0F94B5FCA2701480A271130060173FEF1FF8EF07E03B527BBF46>I<B712C0
+16FCEEFF80C69039C0007FE06D48EB0FF0EE03FC707E707E717E717EA284171F84A76017
+3F6060177F4DC7FCEE01FC4C5AEE0FE0EEFF8091B500FCC8FC5E91388000FFEE3FC0EE0F
+E0707E707E83707EA2707EA684A7190618C0177FA2190E496C91383FE00CB600C0011F13
+1C94380FF038943807F870CA3801FFE09438003F803F407DBD43>I<D907FC131890393F
+FF803890B512E03A01FC03F8783903F0007CD807C0EB1EF84848130F48C7120748140300
+3E1401007E1400A2007C157812FCA21638A36C1518A27EA26C6C14007F7FEA3FF813FF6C
+13F06C13FF15F06C14FC0001806CECFF80013F14C0010714E0EB007F020713F09138007F
+F8151FED0FFC15071503ED01FEA200C01400A3167EA27EA3167C7E16FC6C15F86C14016C
+15F06C14036DEB07E0D8FBE0EB0FC0D8F1F8EB1F80D8F07FEB7F0039E01FFFFC010713F0
+39C0007FC027427BBF32>I<003FB9FCA3D9E000EBC00190C7397F80003F007EEF1F8000
+7C170F0078170700701703A300601701A548EF00C0A5C81600B3B24B7E4A7F0107B612F8
+A33A3E7DBD41>I<B600C090387FFFF8A3C601C0C7000313006D48EC00FC18781830B3B3
+A4013F16706E1560A218E0011F5E6E1401130F6E4A5A01074BC7FC6D6C5C6D6C140E6D6C
+143C027F5C91393FC001F091390FF00FE00203B51280020049C8FCED1FF03D407DBD44>
+I<B500FE913803FFFEA3000301C09138007FE06C49ED1F806C90C913006E150E017F160C
+A26E151C013F161880011F5EA26E1570010F1660A26D6C5DA28001034B5AA26E14030101
+93C7FC806D1506A26F130E027F140CA26E6C5BA281021F5CA26F1370020F14608102075C
+A2EDFC0102035CA26E6C48C8FCA215FF6E1306A2168EED7F8C16CCED3FD8A216F86F5AA2
+6F5AA36F5AA36F5AA23F407EBD44>I<B500FE013FB56C48B5FCA3000701C0010101F0C7
+EA3FF86C90C8D87FC0EC0FE06CF207C0053FED03806C1B00A26E6E6C5C017F1906A26E4A
+7E013F61A26E4A7E011F03675DA2EFE7FC6D6C02C35DA204017F6D6C02815DA2846D6C49
+C65DA36D6C01066D6C485AA36E4990383FC0036D96C7FCA26F486D6C5A027F1706A26F48
+EB0FF0023F5FA2DBE07014F8021F016001075BA204E014FC6E6C4801035BA203F115FE91
+2607F98001015BA219FF6EB4C85BA36E486F5AA34B153F020094C8FCA24B810378151EA2
+0370150E0330150C58407EBD5D>I<007FB56C48B512E0A3C601FCC7383FFC00D93FF8EC
+1FE06D48EC0F8095C7FC6D6C140E6D6C140C171C6D6C5C6D6C14305F6D6D13E06E6C5B4C
+5A91383FE003DA1FF090C8FC160691380FF80E913807FC0C5E913803FE38913801FF305E
+6E13E06F5AA26F7E6F7EA26F7E4B7EA2ED33FEED71FF156103C07F02016D7E15804A486C
+7E4A6D7E14064A6D7E021C6D7E5C02306D7E02706D7E5C4A6D7F49486E7E130391C86C7E
+496F7E130E011E6F7E013E8201FF82000701C0EC3FFFB500F049B512FEA33F3E7EBD44>
+I<B692B51280A3000101F092383FF8006C49ED0FC0017F5F013F94C7FC6E150E011F160C
+6D6C5D6E1538010716306D6C157018606D6C5D6F13016D5E6E6C13036F91C8FC023F1406
+6E6C130E170C6E6C131C6F131802075C6E6C137017606E6C13E06E6D5AEE8180ED7FC304
+E3C9FCED3FE7ED1FF616FC150F6F5AB3A44B7E020FB512FCA3413E7FBD44>I<003FB712
+F0A349C7EA3FE013F001C0EC7FC090C8FC003EEDFF80003C4A1300A200384A5A00785D00
+7014074B5AA24B5A00604A5AA24B5AA24B5AC74890C7FCA24A5A5D14074A5AA24A5A4A5A
+A24A5AA24A5A4990C8FCA2495A5C01071518495AA2495A495AA2495A1738495A4890C8FC
+A2485A4915701207484815F0A24848140148481403160F4848143FED01FFB8FCA32D3E7B
+BD37>I<EAFFFEA2EAFC00B3B3B3B3AFEAFFFEA20F5B78C319>I<EAFFFEA2EA007EB3B3B3
+B3AFEAFFFEA20F5B7FC319>93 D<007FB812FCB912FEA26C17FC3704796E46>95
+D<EB1FF0EBFFFC3803E03F390F000FC0001C6D7E001F6D7E486C6C7E6D6C7EA3157E6C5A
+6CC7FCC8FCA4EC1FFEEB03FF90381FF87EEB7F803801FC00EA07F0485A485A485A127F90
+C7FC160312FEA315FEA21401007F14BE14033A3F80071F06261FC00E138E3A0FF03C0FFC
+3A03FFF007F83A003FC003E0282A7CA82D>97 D<EA01F812FFA3120712031201B1EC07F8
+EC1FFF9138780FC09039F9E003F09039FB8001F801FFC77E49147E4980EE1F805B17C016
+0F17E0A2160717F0AA17E0160FA317C0161F17806DEC3F007F01F6147E01F75C9039E380
+01F89039C1C003E09039C0F81F809026803FFEC7FCC7EA07F02C407EBE32>I<49B4FC01
+0F13E090383F00F8017C131E484813074848131F4848EB3F804848137FA2485AA248C7EA
+3F00151E4891C7FCA2127E12FEAB127FA36C15C07F001F14016D1480000F14036C6CEB07
+006C6C13066C6C131E6C6C133890383F01F090380FFFC0D901FEC7FC222A7DA828>I<ED
+01F815FFA3150715031501B114FF010713C190381F80F190387C00394848131D4848130F
+4848130748481303A248481301123F90C7FC5AA3127E12FEAA127E127FA27E7F001F1403
+A26C6C13076C6C130F6C6CEB0DFC6C6CEB3DFE6C6C903871FFF090383F01E190380FFF81
+903A01FE01F8002C407DBE32>I<EB03FC90381FFF8090387E07E09038F801F048486C7E
+4848137C48487F000F143F48487F168048C7FC150F5A16C0127EA212FEA2B7FCA248C9FC
+A6127E127FA36C15C07F001F14016C6C148015036C6CEB07006C6C130E6C6C5B6C6C5B90
+383F01F090380FFFC0D901FEC7FC222A7DA828>I<EC1FC0ECFFF0903803F038903807C0
+FC90380F81FE131FEB3F01133E137EEC00FC491300AFB6FCA3D800FCC7FCB3AE487E387F
+FFFEA31F407FBF1C>I<167E903903FC01FF903A0FFF07878090393E07CE0F9038FC03FC
+3901F801F83B03F000FC070049017CC7FC0007147EA248487FA86C6C137EA20003147C6D
+13FC6C6C485A6D485A9038BE07C026038FFFC8FCEB03FC48CAFCA47FA27F6C7E90B512F0
+6C14FE6F7E6C6C14E048B612F83907C0001FD81F80EB03FC48C87E003E157E48153E163F
+4881A56C5D007C153E007E157E6C5D6C6C495A6C6C495AD803F0EB0FC0D800FE017FC7FC
+90383FFFFC010313C0293D7EA82D>I<EA01F812FFA3120712031201B1EC03FC91380FFF
+8091383C0FC09138F003E0D9F9C07F9039FB8001F8140001FF6D7E5BA25BA25BB3A6486C
+497EB539F07FFFF8A32D3F7EBE32>I<EA01C0EA07F0487EA56C5AEA01C0C8FCACEA01F8
+127FA3120712031201B3AC487EB512E0A3133D7EBC19>I<1470EB01FCEB03FEA5EB01FC
+EB00701400AC14FE133FA313011300147EB3B3A6123C007E137CB413FCA214F8130100FE
+13F0387803E0383E07C0380FFF00EA01FC175084BC1C>I<EA01F812FFA3120712031201
+B292387FFF80A392381FFC00ED0FE016804BC7FC151C5D5D5DEC03C04AC8FC140E141E14
+3E147F9038F9FF809038FB9FC0EBFF0F496C7E01FC7FEBF8036E7E816E7E157E8182151F
+6F7E826F7EA282486C14FEB539F03FFFE0A32B3F7EBE30>I<EA01F812FFA31207120312
+01B3B3B1487EB512F0A3143F7EBE19>I<2701F803FCEB01FE00FF903B0FFF8007FFC091
+3B3C0FC01E07E0913BF003E07801F02607F9C0D9F0E07F3D03FB8001F9C000FC00010100
+5C01FFD900FF147E4992C7FCA2495CA2495CB3A6486C496C14FFB528F07FFFF83F13FCA3
+46287EA74B>I<3901F803FC00FF90380FFF8091383C0FC09138F003E02607F9C07F3A03
+FB8001F80001130001FF6D7E5BA25BA25BB3A6486C497EB539F07FFFF8A32D287EA732>
+I<EB01FE90380FFFC090383F03F090387C00F8D801F0133E48487F4848EB0F80A24848EB
+07C0001F15E090C712034815F0A2007EEC01F8A400FE15FCA9007E15F8A3007F14036C15
+F0A26C6CEB07E0000F15C06D130F000715806C6CEB1F006C6C133ED800FC13FC90383F03
+F090380FFFC0D901FEC7FC262A7DA82D>I<3901F807F800FFEB1FFF9138780FC09039F9
+E003F03A03FB8001F86CB4C77E49147E49147FEE3F8049141F17C0A2EE0FE0A317F01607
+A9EE0FE0A4EE1FC0A2EE3F806D15006D5C16FE6D495A9039FB8003F89039F9C007E09039
+F8F81F80DA3FFEC7FCEC07F091C9FCAD487EB512F0A32C3A7EA732>I<02FF130C0107EB
+C01C90381F80F090387E003849EB1C3CD803F8130E4848EB077C491303484814FC001F14
+01485A150048C8FCA412FEA97E7EA36C7E15016C7E000F14037F000714076C6C130E6C6C
+131CD8007E137890383F01E090380FFFC0903801FE0090C8FCAD4B7E92387FFFF8A32D3A
+7DA730>I<3903F00FC000FFEB3FF0ECF0F89038F1C3FC00071383EA03F33801F70313F6
+EC01F89038FE0060491300A45BB3A4487EB512F8A31E287EA723>I<90387FC0603903FF
+F8E03807C03D381E000F481303481301A20070130012F01560A27EA27EB41400EA7FC013
+FE383FFFE06C13FC00077F6CEBFF80C66C13C0010713E0EB003FEC0FF000C01303EC01F8
+14007E1578A27EA27E15F07EEC01E06C14C039F780078039F1E01F0038E0FFFC38C01FE0
+1D2A7DA824>I<1318A61338A41378A213F8A2120112031207001FB512C0B6FCA2D801F8
+C7FCB3A21560A96C6C13E015C0A2EB7E0190383F038090381F8700EB07FEEB01F81B397E
+B723>I<D801F814FC00FF147FA3000714030003140100011400B3A51501A3150312006D
+1307ED0EFE017C497E6D4913F890381F80F0903807FFE00100903800FC002D297EA732>
+I<B539C007FFE0A32707FC000113006C48EB007C1678000115707F00001560A2017E5CA2
+017F13016D5CA26D6C48C7FCA26E5A010F1306A26D6C5AA2ECF01C01031318A26D6C5AA2
+ECFC7001001360A2EC7EC0A2147F6E5AA26EC8FCA3140EA22B287EA630>I<B53B87FFFC
+03FFF0A33D0FFC003FE0007FC0D807F06D48EB3F0000036E48131E70131C6C7E03071418
+826C6C010F5CA26D6E1370017E01191460A2017F6E13E06D01305CA20280EBFC01011FD9
+607C5BA290280FC0E07E03C7FCEDC03EA2D907E1EB3F06ED801F1786D903F3148CED000F
+17CCD901FEEB07D8A217F86D486D5AA302786D5AA302306D5A3C287EA641>I<3B7FFFC0
+0FFFE0A3000390390007FE00C6EC03F86D14E06D5C02805B6D6C48C7FC010F130E903807
+E00C6E5A903803F83801015B6D6C5A6E5AEC7F80143F141F6E7E81141FEC3BF0EC71F8EC
+E1FCECC0FE903801807E01037FD907007F010E6D7E010C130F011C6D7E498001F86D7E00
+0181D80FFC497EB590381FFFF8A32D277FA630>I<B539C007FFE0A32707FC000113006C
+48EB007C0001157816707F000015607F017E5CA26D495AA2EC8003011F91C7FCA290380F
+C006A2ECE00E0107130CA26D6C5AA2ECF8380101133014FC01005BA2EC7EC0A2147F6E5A
+A26EC8FCA3140EA2140CA2141C1418A25CA25C1238007C13E000FE5B13015C49C9FCEA7C
+07EA700EEA383CEA1FF8EA07E02B3A7EA630>I<001FB61280A29038E0007F90C7130000
+1E14FE001C495A140300185C0038495A4A5A0030131F5D4A5A4AC7FCA2C712FE495A1303
+5C495A495A131F9138C00180EB3F80EB7F00A213FE485A000314035B48481400485A001F
+5C495B485A48C7123F4849B4FC90B6FCA221277EA628>I<020FEB078091393F800FE0ED
+C01F027F80A3023F5CED800F91390F00078091CBFCA41507A34B7EA24B7EA34B7EA34B7E
+156FA2EDCFF815C7A291380187FC1583A291380301FEA391380600FFA2020E80020C137F
+A2021C800218133FA24A80161FA24A80160FA24A6D7EA349486D7E91B6FC4981A291C712
+014981010680A24982177FA24982173FA2496F7EA21370717E13F0000183487ED80FFEED
+3FFEB500C00107B512F8A33D4E7DCD44>196 D<020FEB078091393F800FE0EDC01F027F
+80A3023F5CED800F91390F00078091CBFCA7B600C090387FFFF8A3C601C0C7000313006D
+48EC00FC18781830B3B3A4013F16706E1560A218E0011F5E6E1401130F6E4A5A01074BC7
+FC6D6C5C6D6C140E6D6C143C027F5C91393FC001F091390FF00FE00203B51280020049C8
+FCED1FF03D507DCD44>220 D<01E013703903F801FC486C487EA56C486C5A3900E00070
+90C9FCA9EB1FF0EBFFFC3803E03F390F000FC0001C6D7E001F6D7E486C6C7E6D6C7EA315
+7E6C5A6CC7FCC8FCA4EC1FFEEB03FF90381FF87EEB7F803801FC00EA07F0485A485A485A
+127F90C7FC160312FEA315FEA21401007F14BE14033A3F80071F06261FC00E138E3A0FF0
+3C0FFC3A03FFF007F83A003FC003E0283C7CBA2D>228 D<01701338D801FC13FE486C48
+7EA56C486C5AD80070133890C9FCA9EB01FE90380FFFC090383F03F090387C00F8D801F0
+133E48487F4848EB0F80A24848EB07C0001F15E090C712034815F0A2007EEC01F8A400FE
+15FCA9007E15F8A3007F14036C15F0A26C6CEB07E0000F15C06D130F000715806C6CEB1F
+006C6C133ED800FC13FC90383F03F090380FFFC0D901FEC7FC263C7DBA2D>246
+D<010FEB078090393F800FE0ECC01F017F80A3013F5CEC800F90390F00078090CAFCAAD8
+01F814FC00FF147FA3000714030003140100011400B3A51501A3150312006D1307ED0EFE
+017C497E6D4913F890381F80F0903807FFE00100903800FC002D3C7EBA32>252
+D<14FF010313C090380FC0F090383F0038017E7F017C7F01FC1306A2491307000180AA5D
+1506A3157EEC01F800FFEB07804AC7FC141E1201141C143CA5143EA2143F6E7E15F015FF
+6E13C06E13E06E13F0020013F8153FED01FC1500167E0230133EA3161E1438A4023C131C
+163CA20003013E137800FF013F13F0ED81E0913839FFC0C738307E0027417EBF2D>255
+D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fq ecrm1440 14.4 28
+/Fq 28 253 df<BA12E0A4C601F0C712076D489138007FF0013F161F180F180718031801
+1800A31978A31938A6191CA21770A21900A517F0A31601A21607161F91B6FCA49138E000
+1F16071601A21600A31770A794C8FCB3497EEBFFFCB7FCA43E527AD14A>70
+D<B7FCA4C601FCCAFCEB7FF06D5AB3B3A919E0A5F001C0A61803A318071980A2180FA218
+1F183F187F18FF5F1707017F151F496C49B51200BAFCA43B527AD147>76
+D<B500E0037FB5FC8080A226003FFC030313E0060013806EEE7F00D93BFF163E191C0139
+7F01387FA26E7EA26E7E6E7EA26E7EA26E7E6E7EA26E7FA26E7F6F7EA26F7E6F7EA26F7E
+A26F7E6F7EA26F7FA26F7F707EA2707E83161F707EA2707E707EA2701380A27013C0EF7F
+E0A2EF3FF0A2EF1FF8EF0FFCA2EF07FEEF03FFA271139CA27113DCF07FFCA2183FA2181F
+180FA21807A21803017C160113FE486C1600000701C0167CB512FE193CA2191C48527AD1
+55>78 D<B8FC17F017FE717EC69026F0000313E06D489038003FF8013FED07FC71B4FC05
+007F727E727EA2727E85180F85A2180785A861180F61A24E5A61183F614EC8FCEF01FE4D
+5AEF0FF0EF3FC0DC03FFC9FC91B612F817E09139E00003FCEE00FFEF3FC0717EEF0FF871
+7E717E170184717FA3727EA885A81B38A2727EA3061F1478496C701370496C150FB600F8
+020714E0727E953901FE01C09539007F0780CC381FFF00F103FC4D547AD154>82
+D<DA7FE01306902603FFFE130E010FEBFF80013FECE01E90397FC01FF03B01FE0001FC3E
+4848EB007E4848EC3F7E49EC0FFE48481407484814035B003F150190C9FC5A177E127E00
+FE163EA3171EA37E170EA27FA26C6C92C7FC7FA26C7E13FC6C7EEBFFC06C13FC6CEBFF80
+6C14F86CECFF806C15F06D14FC011F14FF6D81010181D9003F80020380DA003F7F03037F
+ED007FEE1FFE707E1603A270138082177F18C0A200E0163FA3171FA37EA318807E173F7E
+18006C5E6C167E6D15FE5F01E014016D4A5AD8FDF84A5AD8F8FE4A5AD93FC0EB3FC026F0
+1FFCEBFF800107B548C7FCD8E0015CD9003F13E048010390C8FC32567AD33F>I<49B4FC
+010F13F090383F01FC9038F8007FD801E0EB1F8048486D7E48488048C76C7E01C06D7EEA
+1FF06F7E7FA26F7EA36C5AEA03C0C9FCA4151FEC0FFFECFFF8903807FE00EB1FF0EB7FC0
+49C7FCEA03FE485A485A485AA2485A485AEF01C0A2485AA31501A315036D147E007F1407
+6C6CD90E3E138092381C3F036C6C01381400D807F89038F01F873B01FE03C00FFE3B007F
+FF8007FC903A07FC0001F032367BB439>97 D<EA01FE12FFA4120712011200B3A6ED3FE0
+913801FFFC913807C03F91391E000FC04A6D7E0270EB03F84A6D7E6D486D7E4A147F1880
+91C8123FEF1FC04916E0A2EF0FF0A318F8A21707A218FCAB18F8A2170FA218F0A2EF1FE0
+A218C06D153F18806EEC7F0017FED9FDC05CD9F9E0495AD9F8F0495A0278495AD9F01EEB
+1F8091260F807EC7FC9039E003FFF890C7EA7FC036547CD23F>I<EC0FF891B5FC903903
+F807E090390FE000F8D91F80133C49C77E01FE804848EC0780161F4848147F484815C000
+0F15FFA2485AA2485AEE7F80EE1E00007F92C7FCA25B12FFAC127F7FA3123F17E07F001F
+150117C06C7E000715036D15806C6CEC070000015D6C6C141E017F5CD91F805B90390FE0
+01F0903903F80FC00100B5C7FCEC0FF82B367CB433>I<EE03FCED01FFA4ED000F160316
+01B3A6EC0FF8EC7FFF903901F807C1903907E000F1D91F80137949C7123D017E141F4914
+0F0001150748481403485A000F15015B121FA2485AA2127FA25BA212FFAB127FA27FA212
+3FA36C7EA2000F15036C7E6D14070003150F6C6C141F6C6CEC1DFE017F913839FF80D91F
+8001F113FC90390FC001E1903903F00F81903900FFFE01DA1FF0EBFE0036547CD23F>I<
+EC1FF091B5FC903903F01FC090390FC007E090391F8003F890397F0001FC01FE6D7E4848
+147F485A0007ED3F805B000FED1FC05B001F16E05B003F150FA2007F16F0A25BA212FFA2
+90B7FCA20180C9FCA8127FA27FA2123F17706C7E17F0000F16E07F0007ED01C06C6C1403
+6C6C158000001507017EEC0F006D141E6D6C5BD907E013F0903901F807C09026007FFFC7
+FCEC0FF82C367DB433>I<EC01FC91380FFF8091383F03C091387E01F0ECFC07903901F8
+0FF8EB03F01307EB0FE0A290391FC007F0ED03E092C7FC495AB3A2B612FCA426003F80C7
+FCB3B3A580EBFFE0003FEBFFE0A425547ED323>I<173F913A3FC001FF80903B01FFF807
+C3C0903B07E07E0E07E090391F801F9C903A3F000FF80F017E903807F00749010314C000
+019238F8010048486D6CC7FCA2000781491300A2000F81A800075DA26D130100035DA26C
+6C495A00005D017E495A017F495A496C485A2701C7E07EC8FC9038C1FFF89038803FC000
+0390CAFCA67FA27F7F7F6CB612C06C15FCEEFF806D15E0011F81017F15FCD801F8C7EA3F
+FED807C014034848EC00FF48C9EA7F80003E163F007E161F007CEE0FC012FC481607A600
+7CEE0F80A26CEE1F00003F5E6C6C157E6C6C5DD803E0EC01F0D801F8EC07E0D8007EEC1F
+8090271FE001FEC7FC0103B512F0D9003F90C8FC334E7DB439>I<EA01FE12FFA4120712
+011200B3A6ED1FF0EDFFFE913803E03F913907001FC0021E6D7E02386D7E143002706D7E
+5C5C01FF6E7E5CA291C7FCA35BB3AD2603FF80EB07FFB5D8FE01B512FCA436537CD23F>
+I<EA01F0487E487E487EA56C5A6C5A6C5AC8FCB113FE12FFA4120312011200B3B3A4EA03
+FFB512FCA416507CCF20>I<EA01FE12FFA4120712011200B3A74BB512E0A49239007FFE
+0017F0EE3FC04CC7FC167E16F85EED03E04B5A4B5A4BC8FC153E5D15F04A5A4A7E1407EC
+1FF84A7E147DECF8FE6D487E4A7E9138803F8002007F49131F6F7E826F7E1503826F7E15
+0082707E163F83707E160F8383832603FF8049B4FCB500FE017F13F8A435537CD23C>
+107 D<EA01FE12FFA4120712011200B3B3B3B13803FF80B512FEA417537CD220>I<D801
+FEEB1FF000FFECFFFE913803E03F913907001FC0021E6D7E000701386D7E000113300000
+01706D7E5C5C01FF6E7E5CA291C7FCA35BB3AD2603FF80EB07FFB5D8FE01B512FCA43634
+7CB33F>110 D<EC0FFC91387FFF80903901F807E0903907E001F890391F80007E49C77E
+017E6E7E496E7E48486E7E48486E7E000782491401000F82491400001F82A2003F82A248
+48ED7F80A400FF17C0AB007F1780A36D15FF003F1700A2001F5E6D1401000F5EA26C6C4A
+5A00035E6C6C4A5A6C6C4A5A017E4A5A6D4AC7FC6D6C137E903907E001F8903903F807F0
+9039007FFF80DA0FFCC8FC32367DB439>I<D801FEEB3FE000FF903801FFFC913807C07F
+91391E001FC04AEB07E000030170EB03F80001496D7E6C6C48804A6D7EEF7F8091C8FCEF
+3FC04916E0171F18F0A2170F18F8A3170718FCABEF0FF8A418F0171F18E0173F18C06D15
+7F18806EECFF005F6E495A6E495A496C495A0278495A021EEB3F8091260F80FEC7FC9138
+03FFF89138007FC092C9FCB13803FF80B512FEA4364B7CB33F>I<D801FC137E00FF9038
+01FF8091380783C091380E0FE091381C1FF000071338000113700000136014E09138C00F
+E001FDEB07C04AC7FC13FF91C8FCA55BB3AA7F00037FB67EA424347CB32C>114
+D<90390FFC018090387FFF833901F803E73907C000FF48C7127F001E143F003E141F003C
+140F127C0078140712F8A21503A27EA27E7E6C6C90C7FC13E0EA3FFCEBFFE06C13FE6CEB
+FFC06C14F00001806C6C13FE011F7F01011480D9000F13C01400ED3FE000E0141F150FED
+07F07E1503A215017EA37E16E06C1403A26C15C0ED07806D130FD8F9C0EB1F00D8F0F013
+3C90387C01F839E01FFFE026C003FEC7FC24367CB42D>I<EB0380A81307A5130FA3131F
+A2133FA2137F13FF5A4890B51280121FB7FCA226003F80C7FCB3A716E0AD90391FC001C0
+A390390FE0038013079138F007006D6C5A903800FC1EEC3FF8EC0FE0234B7EC92C>I<D8
+01FEEC03FC00FFEC01FFA40007EC000F0001150300001501B3AC1603A41607A2017E140F
+017F140D161D6DEC39FE6D6C903831FF806E01F113FC903907E001C1903903F807819039
+00FFFE01DA1FF8EBFE0036357CB33F>I<B500FC903807FFFEA400030180010013E06C90
+C8EA7F806CEE3F006D153E173C80013F1538A26D6C5CA26E14F0010F5DA26D6C495AA26E
+130301035DA26E1307010192C7FCA26D6C130EA26E131E6E131CA26E6C5AA2EDC078021F
+1370A2EDE0F0020F5B15F0913807F1C0A215FB02035BA26EB4C8FCA36E5AA2157CA31538
+37347EB23C>I<B5D8F80FB590381FFFF8A40007902780003FF0010313C0D801FEC76C48
+6D130070486D5A000070147C1A78017F14071A704C7E6D6C5FA24C7E6D6C011D4A5AA2EE
+3DFC6D6C01384A5AA2EE78FE6D6CD9707E49C7FCA2EEF07F6D6C496C130EA203011480D9
+01FCD9C01F5BA2030314C0D900FED9800F5B18E01507027FD900075B18F05DDA3F8E0103
+5B18F8159EDA1FDC903801F9C018FD15FC6E486DB45AA36E486EC8FCA36E48143EA36E48
+141C4D347EB252>I<267FFFFC90380FFFFEA4000101F06D13E06C6C486D90C7FC011F15
+FC17F06D6C5C6D6C5C01034A5A6E49C8FC6D7E6D6C131E6E5B6F5A91383FC07091381FE0
+F091380FE1E0EDF3C0913807FB80EC03FF6E90C9FC6E5A816F7EA24B7E4A7FEDCFF0EC03
+C791380783F891380F03FC91381E01FE15004A137F4A804A6D7E4A131F01016E7E494880
+49486D7E010F1403011F81017F6E7E01FF8100076D010713C0B56C011FEBFF80A439337F
+B23C>I<001FB712C0A201FCC7127F01E015800180ECFF0090C7485A1503001E5D4B5A00
+1C140F003C5D4B5A4B5A0038147F5E4BC7FC5C5D4A5AC7485A140F5D4A5A143F5D4A5A4A
+C8FC5B5C495A0107EC01C05C495A495A133F4AEB0380495A13FF91C7FC485A4848140712
+075B4848140F001F151F49143F4848EC7F004848495A00FF140F90B7FCA22A337DB233>
+122 D<D903C0130FD90FF0EB3FC0496C497EA26E13FFA34A137FA26D486D5AD903C0010F
+C7FC90CBFCAED801FEEC03FC00FFEC01FFA40007EC000F0001150300001501B3AC1603A4
+1607A2017E140F017F140D161D6DEC39FE6D6C903831FF806E01F113FC903907E001C190
+3903F80781903900FFFE01DA1FF8EBFE00364E7CCC3F>252 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fr ecxc1728 17.28 3
+/Fr 3 83 df<BB12C01AFEF2FFC01BF81BFED8000149C800016D7EDF003F13E0747F0807
+7F7413FE747F748087757F898789757FA3757FA86563A265636563515B6598B5C7FC505B
+505B080F13F0505B087F13804F4848C8FC071F13F892B912C050C9FCF2FFC01BFC4BC96C
+B4FC080F13E008037F7413FC7413FF093F7F757F89757F757F898789757FA21E8087A21E
+C0A91E80A2631E0063656365515B63515B515B98B55A08035C5049C7FC081F5B4FB512F0
+BD12C099C8FC1BFC1BE008FCC9FC626279E174>66 D<BB12C01AFCF2FFC01BF01BFED800
+0191C8000F6D7EDF007F13E0080F7F080313FC08007FF33FFF7513C0757F09037F757F75
+7F767EA2767E767F8A88767F8A888AA2767FA28A888AA31F8089A31FC0A51FE0AE1FC0A5
+1F80A29AB5FC1F00A3666466A2525BA2525BA2525B6664665290C7FC525A525A515B515B
+515B515B093F5B98B5C8FC080313FC080F5B087F13E00707B51280BC48C9FC1BF81BC050
+CAFC1AC06B6279E17D>68 D<BA12C019FF1AF01AFE747ED8000191C7000114E0DE000F13
+F8070113FE736C7E7413C0080F7F747F747F88747FA2747F89A28987A289A865A298B5FC
+65A29AC8FC505B64505B64505B505B083F5BE0FFFEC9FC070313F8070F5B4EB5128093B7
+48CAFC1AF0621AFC93C7000713FFDE007F13C0071F7F7313F8737F737F737F7380868886
+88A2747FAA88A91F1C76143EA286A2746D147E1F7C747F7416FC9A388001F8B800FE6E02
+C013F0093FEBE007759038F81FE0090790B512C009011500CF003F5B0A0013F06F6479E1
+78>82 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fs eccc2074 20.74 11
+/Fs 11 85 df<F003C0A24E7EA34E7EA34E7EA34E7EA24E7E1877A2F0F7FF18E3A2DD01
+C37F18C105038018811880050780F0007FA2050E80193FA24D80191F053C800538130FA2
+05788005701307A24D80850401825F850403824D7FA24CC87F1A7FA2040E821A3F041E82
+041C151FA2043C820438150FA24C821A0704F0825E860301844C81A24B488386A24BCA7F
+1B7F4B84030E173FA2031E84031FB9FCA24B84A20338CA120F4B841B0703F0844B83A24A
+488587A24A48858702078692CC127FA24A86020E193FA24A861C1FA24A861C0F02788602
+701907A24A8688A20101884A85010388A2010786010F88497E013F88497E48486C4F13FC
+000F01FE070F13FFB600C04DB7FCA470797AF87D>65 D<BA12F8F1FFC01AF81AFEC66C01
+80C8381FFF80010F90C9000313E04A040013F80107F03FFC747E973807FF80747F747F74
+7FA2757E757EA2757E8887A21D8087A21DC0AA1D80A2631D00A2515AA2515AA2515A515A
+505B505B505B5090C7FC505A505AF2FFF0070313C0071F90C8FCF1FFFC91B912E0621AFE
+4AC93807FFC0070013F0F21FFCF207FF747F080013E0757E757E757E757E887513807513
+C0A27513E01DF0871DF81C7FA21DFCA21C3F1DFEAB1DFC1C7FA21DF81CFFA25113F0A251
+13E0A25113C051138051130063515A515A505B505B080F13C0010F063F5B6E4CB448C7FC
+017F6D030F13F8BC12E01B8008FCC8FC1A805F7674F576>I<BA12F8F1FF801AF01AFEC6
+6C0180C86C6C7E010F90C9000713E04A040013F80107F03FFCF20FFF08037F08007F757E
+F33FF8757E757E757E87757F757F767E891C3F767E891C0F89767EA2761380A27613C0A3
+7613E0A21EF01D7FA21EF8A21D3F1EFCA41EFE1D1FA61EFFB01EFEA51D3F1EFCA41EF81D
+7FA31EF01DFF1EE0A2641EC0A2521380A2521300A2525A651C1F65525A1C7F525A65515B
+5190C7FC515A515A515AF37FF0515A08035B5090C8FCF21FFE010FF0FFF86E040713E001
+7F6D037F1380BB48C9FC1AF81A8007F8CAFC687674F57F>68 D<BD12FEA4C66C0180C9FC
+010F90CA00037F4AEF007F0107191F1B078787878888F41F80A21C0FA31C07A31C031DC0
+A31C01A61DE01C00A2191CA21D00A7193CA4197CA219FC18011803180F18FF91B8FCA44A
+C8FC180F180318011800197CA2193CA4191CA51D0EA496C9121CA61D3C1D38A41D78A31D
+701DF0A31C01A21C031DE01C07A21C0F1C1FA21C3FF47FC0F301FF631B0F010F197F6E05
+03B5FC017F6D167FBE1280A45F7674F572>I<B712F0A4C66CEBE000011F13806D90C7FC
+6D5AB3B3B3B3B3AE497E497F017F13E0B712F0A4247674F53D>73
+D<B712FEA4C66C01F0CCFC010F138092CDFC6D5AB3B3B3AE1CE0A5F301C0A71B03A41C80
+1B07A31B0FA31B1FA21B3FA2F37F0063A262621A0F626297B5FC010F17036E161F017F6D
+0203B55ABCFCA4537674F568>76 D<B60907B512F8A36F62C66CF6F00090260F7FC0081D
+1380A201079BC7FC6E6C1A39A36E6C1A71A36E6C1AE1A26E6CF101C1A36E6CF10381A36E
+6CF10701A26E6D180EA36F6C181CA36F6C1838A36F6C1870A26F6C18E0A36F6CEF01C0A3
+6F6CEF0380A26F6CEF0700A36F6D160EA3706C5EA3706C5EA2706C5EA3706C5EA3706C4B
+5AA2706C4B5AA3706C4BC7FCA3706D140EA3716C5CA2716C5CA3716C5CA3716C5CA2716C
+495AA3716C495AA3716C49C8FCA371EB800EA2726C5AA3726C5AA3726C5AA2726C5AA395
+3807FDC0A372B45A497EA2496C6F90C9FCA2D97FF06F484C7F497E000701FF091F13F0B6
+00F8037C033FB612F8A319387D7673F598>I<F0FFF8051FEBFFC04CB612FC040F903980
+0FFF80DC3FF8C713E0DCFFC0EC1FF8030390C8EA07FEDB0FFC923801FF80DB1FF06F6C7E
+DB7FC0EE1FF04B48707E4A90CA6C7E4A48717EDA0FF8943800FF804A48727E4A48727E02
+7F864A48727E4949727E92CC12074948737E0107874948737FA24948737F4948747EA249
+48747E01FF884A1A1F4889A24849747EA2488991CE7EA2481E804987A2001F1EC0A24987
+003F1EE0A4007F1EF0A24987A400FF1EF8B06D63007F1EF0A5003F1EE06D63A4001F1EC0
+6D63A26C1E80A26C6D501300A36C6D505AA26C656E1A3F6C656E1A7F017F646E1AFF013F
+646D6C4F5BA26D6C4F5B6D6C4F90C7FC6D636F180F6D6D4E5A6D6D4E5A027F626E6C4E5A
+6E6C4E5A6E6C4D5B6E6C4D90C8FCDA01FFEF07FC6E01C0EE1FF86F6C4C5ADB1FF8EEFFC0
+6F6C4B5BDB03FFDB07FEC9FC030001C0EC1FF8DC3FF8ECFFE093270FFF800F1380040190
+B500FCCAFCDC001F14C0050001F8CBFC6D7A76F782>79 D<BA12E019FF1AF01AFCC66C01
+80C813FF010F90C9000F13C04A040113F00107716C7EF21FFEF207FF747F747F747F757E
+757E881B1F88757EA2751380A31DC0A2871DE0AA1DC0A263A21D80A21D0063641B1F6451
+5AA2515A515A505B505B5090C7FCF21FFCF27FF8963801FFE0070F1380DFFFFEC8FC91B9
+12F81AC007FCC9FC4ACEFCB3B3AD497EA2017F13E0B712F0A45B7674F572>I<B912FCF0
+FFE019FEF1FFC0C66C0180C7001F13F0010F90C9EA7FFC4AEE0FFF0107050313C0070013
+F0F23FF8747E74B4FC08037F88747F86757E881B3F88881B1FA288A28789A99AC8FC63A2
+64A2515AA2641B7F64515A505B505B5090C9FC505AF21FF8505AF2FFC007035BDF0FFECA
+FCF1FFF8061F13C091B848CBFC19E0854AC8EA1FFCF001FF9538007FC0F11FF0737EF103
+FC737E736C7E1A7F747E87747E747EA2871A0787A21A0387A588A588A588A6881F101F38
+8688A21F78867614701B7F756C14F0496C1CE0756C1301017F01E071EC03C0B700F07090
+388007800901EBC00F759038F03F0099383FFFFCCF00075B9938007FC06D7874F57B>82
+D<001FBE12FCA402FCC7000301F0C7120F02806E4914004848C949ED3FFE01F81B0F01E0
+1B03491B01491B0090CA187EA2003E1D3EA2003C1D1EA300381D0E00781D0FA4007089A8
+48F50380A6CB95C7FCB3B3B3B34D7FA24D7F053F13FF0303B812F0A4697679F578>84
+D E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 1202 566 a Fs(DIPLOMARBEIT)1633 961 y Fr(DRBD)936
+1286 y Fq(F)-9 b(estplattenspiegelung)36 b(\374b)s(ers)i(Netzw)m(erk)
+1805 1399 y(f\374r)577 1549 y(die)f(Realisierung)f(ho)s(c)m(h)m(v)m
+(erf\374gbarer)i(Serv)m(er)f(un)m(ter)i(Lin)m(ux)972
+2200 y Fp(ausgef\374hrt)31 b(am)f(Institut)h(f\374r)f(Computersprac)m
+(hen)774 2313 y(Abteilung)h(f\374r)g(Programmiersprac)m(hen)j(und)d
+(\334b)s(ersetzerbau)1207 2426 y(der)f(T)-8 b(ec)m(hnisc)m(hen)34
+b(Univ)m(ersit\344t)d(Wien)1477 2751 y(un)m(ter)h(Anleitung)f(v)m(on)
+1022 2864 y(o.)41 b(Prof.)g(Dipl.-Ing.)g(Dr.)f(Manfred)31
+b(Bro)s(c)m(khaus)1801 2977 y(und)1141 3090 y(Univ.-Ass.)39
+b(Dipl.-Ing.)i(Dr.)g(An)m(ton)31 b(Ertl)779 3203 y(als)f(v)m(eran)m(t)m
+(w)m(ortlic)m(h)k(mit)m(wirk)m(enden)f(Univ)m(ersit\344tsassisten)m
+(ten)1765 4179 y(durc)m(h)1495 4504 y Fo(Philipp)i(Reisner)1542
+4617 y Fp(Diehlgasse)c(33/21)1667 4730 y(1050)g(Wien)382
+5376 y(Wien,)g(am)f(18.)h(Mai)f(2000)p eop
+%%Page: 2 2
+2 1 bop 1596 539 a Fn(Kurzfassung)382 751 y Fp(Diese)44
+b(Arb)s(eit)f(zeigt,)48 b(da\377)c(Ho)s(c)m(h)m(v)m(erf\374gbark)m
+(eits-Cluster)j(auc)m(h)e(ohne)f(teure)h(Sha-)382 864
+y(red)37 b(Devices)g(implemen)m(tiert)j(w)m(erden)e(k)m(\366nnen.)62
+b(Es)37 b(w)m(erden)i(das)d(Design)i(und)f(die)382 977
+y(Implemen)m(tierung)e(eines)e(Ger\344tetreib)s(ers)h(\(=DRBD\))f
+(f\374r)f(Lin)m(ux)i(gezeigt,)h(der)e(das)382 1090 y(Spiegeln)j(v)m(on)
+f(F)-8 b(estplatten)37 b(\374b)s(er)e(das)f(Netzw)m(erk)i(erlaubt.)55
+b(Um)35 b(so)m(w)m(ohl)h(gute)g(Lei-)382 1203 y(stung)c(als)h(auc)m(h)g
+(Un)m(terst\374tzung)h(f\374r)e(Journaling-Filesysteme)j(bieten)e(zu)f
+(k)m(\366nnen,)382 1316 y(wurde)j(ein)f(Algorithm)m(us)i(en)m(t)m(wic)m
+(k)m(elt,)i(der)c(dem)h(Disk-Sc)m(heduler)h(b)s(eim)e(Sc)m(hreib)s(en)
+382 1429 y(die)23 b(gr\366\377tm\366glic)m(he)i(F)-8
+b(reiheit)24 b(einr\344um)m(t,)j(Bl\366)s(c)m(k)m(e)c(umzuordnen,)j
+(dab)s(ei)d(ab)s(er)g(die)g(Rei-)382 1542 y(henfolge,)31
+b(die)g(das)f(Filesystem)g(v)m(orgibt,)i(nic)m(h)m(t)g(v)m(erletzt.)382
+1704 y(Das)g(Ger\344t)h(erreic)m(h)m(t)i(zwisc)m(hen)e(50)g(\045)g(und)
+g(98)g(\045)f(der)h(theoretisc)m(h)h(m\366glic)m(hen)h(Lei-)382
+1817 y(stung.)76 b(W)-8 b(eiters)43 b(geb)s(e)f(ic)m(h)h(einen)g(\334b)
+s(erblic)m(k)g(dar\374b)s(er,)j(wie)d(sic)m(h)f(DRBD)g(in)g(die)382
+1930 y(anderen)31 b(Clustering-K)m(omp)s(onen)m(ten)k(un)m(ter)c(Lin)m
+(ux)h(eingliedert.)1678 4098 y Fn(Abstract)382 4310 y
+Fp(This)37 b(w)m(ork)h(sho)m(ws)g(that)f(it)h(is)f(p)s(ossible)g(to)g
+(implemen)m(t)i(high-a)m(v)-5 b(ailabilit)m(y)40 b(clusters)382
+4423 y(without)c(exp)s(ensiv)m(e)e(shared)h(devices.)54
+b(A)34 b(description)i(of)e(the)h(design)g(and)g(the)g(im-)382
+4536 y(plemen)m(tation)c(of)d(a)h(device)f(driv)m(er)i(for)e(Lin)m(ux)i
+(is)e(pro)m(vided,)i(whic)m(h)g(allo)m(ws)f(harddisk)382
+4649 y(mirroring)d(via)f(the)g(net)m(w)m(ork.)41 b(In)24
+b(order)i(to)f(b)s(e)f(able)i(to)f(o\033er)g(go)s(o)s(d)f(p)s
+(erformance)i(and)382 4762 y(supp)s(ort)37 b(for)f(journaling)h
+(\034lesystems)g(an)f(algorithm)i(w)m(as)f(dev)m(elop)s(ed)h(whic)m(h)f
+(giv)m(es)382 4875 y(the)k(disk)f(sc)m(heduler)i(maxim)m(um)h(freedom)e
+(during)h(the)f(write)g(pro)s(cess)g(to)f(reorder)382
+4988 y(blo)s(c)m(ks)30 b(without)i(compromising)g(the)e(order)h(imp)s
+(osed)g(b)m(y)f(the)h(\034lesystem.)382 5150 y(The)42
+b(device)h(reac)m(hes)g(b)s(et)m(w)m(een)h(50)e(\045)g(and)h(98)f(\045)
+g(of)g(the)g(maxim)m(um)i(theoretical)382 5263 y(p)s(erformance.)c
+(Apart)29 b(from)e(that,)i(this)f(w)m(ork)h(giv)m(es)e(an)h(o)m(v)m
+(erview)i(of)d(ho)m(w)i(DRBD)e(is)382 5376 y(in)m(tegrated)32
+b(in)m(to)g(the)e(other)h(clustering)h(compnen)m(ts)g(under)f(Lin)m
+(ux.)p eop
+%%Page: 1 3
+1 2 bop 382 1244 a Fm(Inhaltsv)-6 b(erzeic)g(hnis)382
+1821 y Fn(1)83 b(Einleitung)2334 b(4)382 2065 y(2)83
+b(Clustering)2330 b(6)517 2220 y Fp(2.1)93 b(Wissensc)m(haftlic)m(he)32
+b(Cluster)85 b(.)46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(7)517 2374 y(2.2)93
+b(Lastv)m(erteilung)106 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143
+b(7)725 2528 y(2.2.1)105 b(hohe)31 b(CPU-Last)48 b(.)e(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143
+b(7)725 2682 y(2.2.2)105 b(hohe)31 b(Netzw)m(erk-Last)86
+b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)143 b(7)517 2836 y(2.3)93 b(Hohe)31 b(V)-8 b(erf\374gbark)m
+(eit)112 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143 b(8)725 2990 y(2.3.1)105
+b(V)-8 b(erf\374gbark)m(eit)56 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)143
+b(9)725 3145 y(2.3.2)105 b(HA-Cluster)67 b(.)45 b(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+98 b(11)725 3299 y(2.3.3)105 b(Beispielk)m(on\034guration)47
+b(.)e(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)98 b(12)382 3543 y Fn(3)83 b(DRBD)34 b(Design)2097
+b(16)517 3698 y Fp(3.1)93 b(DRBD)30 b(im)h(Kernel)48
+b(.)e(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(17)725 3852 y(3.1.1)105
+b(Seman)m(tik)m(en)67 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(18)725 4006 y(3.1.2)105 b(Single)31 b(P)m(oin)m(ts)h(of)e(F)-8
+b(ailure)24 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)g(.)f(.)98 b(20)517 4160 y(3.2)93 b(Die)31 b(Protok)m(olle)g(.)
+46 b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(21)725 4314
+y(3.2.1)105 b(Protok)m(oll)32 b(A)58 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(22)725 4469 y(3.2.2)105 b(Protok)m(oll)32 b(B)62 b(.)45
+b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)98 b(22)725 4623 y(3.2.3)105 b(Protok)m(oll)32
+b(C)61 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(23)517 4777 y(3.3)93
+b(Sc)m(hreib)s(op)s(erationen)56 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(23)725 4931 y(3.3.1)105 b(Abh\344ngigk)m(eiten)47 b(.)f(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+98 b(24)517 5085 y(3.4)93 b(Sync)m(hronisation)42 b(.)j(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)98 b(26)725 5240 y(3.4.1)105 b(Sc)m(hnelle)32
+b(Sync)m(hronisation)38 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)h(.)f(.)h(.)g(.)f(.)98 b(26)725 5394 y(3.4.2)105
+b(Datensic)m(herheit)48 b(.)e(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(27)1854
+5622 y(1)p eop
+%%Page: 2 4
+2 3 bop 382 262 a Fl(INHAL)-8 b(TSVERZEICHNIS)931 b(INHAL)-8
+b(TSVERZEICHNIS)p 382 299 2989 4 v 382 539 a Fn(4)83
+b(Lin)m(ux)2491 b(28)517 700 y Fp(4.1)93 b(GPL)56 b(.)46
+b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(28)517 861 y(4.2)93 b(Ger\344tetreib)s(er)68 b(.)46
+b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(28)725 1022 y(4.2.1)105
+b(Zeic)m(henorien)m(tierte)34 b(T)-8 b(reib)s(er)65 b(.)46
+b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(29)725 1183 y(4.2.2)105 b(Blo)s(c)m(k)m(orien)m(tierte)33
+b(Ger\344te)93 b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)98 b(31)517 1345 y(4.3)93 b(P)m(arallelausf\374hrung)72
+b(.)45 b(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)
+h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(34)725 1506 y(4.3.1)105
+b(Ausf\374hrungsk)m(on)m(texte)39 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(35)725
+1667 y(4.3.2)105 b(Sync)m(hronisationsprimitiv)m(e)66
+b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(36)517 1828 y(4.4)93 b(Threads)64 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)
+h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)98 b(38)725 1989 y(4.4.1)105 b(Kernel-Threads)49
+b(.)d(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)98 b(38)517 2150 y(4.5)93 b(Mo)s(dule)c(.)46
+b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(39)382
+2402 y Fn(5)83 b(Implemen)m(tierung)1974 b(40)517 2563
+y Fp(5.1)93 b(Struktur)47 b(.)f(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)98 b(40)517 2724 y(5.2)93 b(Kernel-Mo)s(dul)51 b(.)46
+b(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(41)725 2886 y(5.2.1)105
+b(Bu\033er-Cac)m(he)80 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(41)725
+3047 y(5.2.2)105 b(Threads)57 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(43)725 3208 y(5.2.3)105 b(Datenstrukturen)78 b(.)45
+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)98 b(45)725 3369 y(5.2.4)105 b(Protok)m(oll)87
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(47)517 3530 y(5.3)93
+b(Drb)s(dsetup)38 b(.)46 b(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(52)725 3691 y(5.3.1)105 b(K)m(on\034guration)47 b(.)f(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+98 b(52)725 3853 y(5.3.2)105 b(Steuerung)32 b(im)e(Betrieb)c(.)45
+b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)98 b(54)517 4014 y(5.4)93 b(P)m(erformance)36 b(.)45
+b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(55)725 4175
+y(5.4.1)105 b(Durc)m(hsatz)51 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(55)725 4336 y(5.4.2)105 b(Dateisystem)35 b(.)45 b(.)h(.)g(.)f(.)h(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+98 b(59)382 4588 y Fn(6)83 b(HA)36 b(un)m(ter)e(Lin)m(ux)2019
+b(62)517 4749 y Fp(6.1)93 b(Cluster)31 b(Managemen)m(t)57
+b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)h(.)f(.)h(.)g(.)f(.)98 b(62)725 4910 y(6.1.1)105
+b(Struktur)40 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(62)725 5071 y(6.1.2)105 b(Cluster-Managemen)m(t-Soft)m(w)m(are)37
+b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(65)517 5233 y(6.2)93 b(Filesysteme)68 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)98 b(69)725 5394 y(6.2.1)105 b(ext2)69
+b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(69)1854
+5622 y(2)p eop
+%%Page: 3 5
+3 4 bop 382 262 a Fl(INHAL)-8 b(TSVERZEICHNIS)931 b(INHAL)-8
+b(TSVERZEICHNIS)p 382 299 2989 4 v 725 539 a Fp(6.2.2)105
+b(ext3)69 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(70)725 701 y(6.2.3)105 b(ReiserFS)26 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)98 b(70)725 864 y(6.2.4)105 b(XFS)60 b(.)45 b(.)h(.)f(.)h(.)f(.)h
+(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)
+f(.)h(.)g(.)f(.)98 b(71)725 1027 y(6.2.5)105 b(JFS)82
+b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)
+f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(71)725
+1189 y(6.2.6)105 b(LinLogFS)62 b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f
+(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(72)725 1352 y(6.2.7)105 b(GFS)57 b(.)45 b(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)
+g(.)f(.)98 b(72)517 1515 y(6.3)93 b(Implemen)m(tierung)73
+b(.)46 b(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)
+f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98 b(73)725 1678 y(6.3.1)105
+b(Struktur)40 b(.)45 b(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f
+(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)98
+b(73)725 1840 y(6.3.2)105 b(Ergebnisse)30 b(.)46 b(.)f(.)h(.)g(.)f(.)h
+(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)
+f(.)98 b(74)725 2003 y(6.3.3)105 b(Heartb)s(eat)31 b(Erw)m(eiterungen)
+88 b(.)46 b(.)g(.)f(.)h(.)f(.)h(.)g(.)f(.)h(.)f(.)h(.)f(.)h(.)g(.)f(.)
+98 b(75)382 2256 y Fn(7)83 b(Zusammenfassung)1927 b(79)382
+2509 y(A)57 b(Me\377ergebnisse)2089 b(81)382 2762 y(Literaturv)m
+(erzeic)m(hnis)1980 b(85)1854 5622 y Fp(3)p eop
+%%Page: 4 6
+4 5 bop 382 1202 a Fk(Kapitel)62 b(1)382 1657 y Fm(Einleitung)382
+2143 y Fp(Unsere)29 b(Gesellsc)m(haft)h(ist)f(auf)g(dem)h(W)-8
+b(eg)30 b(in)f(das)g(Informationszeitalter.)42 b(Eines)30
+b(der)382 2256 y(vielen)41 b(Anzeic)m(hen)i(daf\374r)e(ist)f(das)h
+(enorme)h(W)-8 b(ac)m(hstum)42 b(des)f(In)m(ternets,)k(das)40
+b(\374b)s(er)382 2369 y(100)e(\045)f(im)h(Jahr)g(liegt.)62
+b(Dies)37 b(stellt)h(sogar)f(die)h(enorm)g(hohen)g(W)-8
+b(ac)m(hstumszahlen)382 2482 y(der)31 b(gesam)m(ten)g(ED)m(V-Branc)m
+(he)i(in)d(den)h(Sc)m(hatten.)382 2635 y(In)23 b(den)h(v)m(ergangenen)h
+(Jahrzehn)m(ten)h(dien)m(te)f(das)f(In)m(ternet)g(haupts\344c)m(hlic)m
+(h)i(dem)e(\(ak)-5 b(a-)382 2748 y(demisc)m(hen\))33
+b(Informationsaustausc)m(h.)43 b(Durc)m(h)32 b(die)g(rasan)m(te)g(En)m
+(t)m(wic)m(klung)i(hat)d(sic)m(h)382 2861 y(das)g(Netz)h(auc)m(h)g(in)g
+(Ric)m(h)m(tung)h(k)m(ommerzieller)g(An)m(w)m(endung)h(ge\366\033net,)e
+(w)m(ahrsc)m(hein-)382 2974 y(lic)m(h)25 b(ist)e(ab)s(er)h(auc)m(h)h
+(die)f(K)m(ommerzialisierung)j(ein)d(Grund)g(f\374r)g(das)f(hohe)i(W)-8
+b(ac)m(hstum.)382 3087 y(Zu)20 b(den)h(p)s(opul\344rsten)g(k)m
+(ommerziellen)i(An)m(w)m(endungen)g(geh\366ren)e(heute)g(Online-Shops)
+382 3199 y(und)31 b(T)-8 b(elebanking.)382 3353 y(Do)s(c)m(h)40
+b(wir)h(sind)f(no)s(c)m(h)g(nic)m(h)m(t)i(abh\344ngig)f(v)m(on)g(k)m
+(ommerziellen)h(An)m(w)m(endungen,)j(die)382 3466 y(\374b)s(er)39
+b(das)g(In)m(ternet)h(angeb)s(oten)h(w)m(erden,)i(wie)c(wir)h(v)m(on)f
+(anderen)h(Errungensc)m(haf-)382 3579 y(ten)33 b(des)f(F)-8
+b(ortsc)m(hritts)34 b(abh\344ngig)g(sind.)47 b(Nac)m(h)33
+b(ein)f(paar)h(T)-8 b(agen)34 b(ohne)f(Autobahnen)382
+3692 y(w\374rde)40 b(z.B.)g(die)f(\366\033en)m(tlic)m(he)i(V)-8
+b(ersorgung)41 b(zusammen)m(brec)m(hen,)k(w)m(\344hrend)c(ein)f(T)-8
+b(o-)382 3804 y(talausfall)44 b(des)g(In)m(ternets)h(v)m(on)f(einem)h
+(gro\377en)g(T)-8 b(eil)45 b(der)f(Bev)m(\366lk)m(erung)i(gar)e(nic)m
+(h)m(t)382 3917 y(w)m(ahrgenommen)33 b(w)m(erden)f(w\374rde.)382
+4071 y(Do)s(c)m(h)26 b(wie)h(die)g(Gesc)m(hic)m(h)m(te)h(zeigt,)g(w)m
+(erden)f(die)g(neuen)g(tec)m(hnisc)m(hen)h(Errungensc)m(haf-)382
+4184 y(ten)k(allm\344hlic)m(h)i(in)e(das)g(t\344glic)m(he)i(Leb)s(en)e
+(in)m(tegriert,)j(und)d(wir)g(w)m(erden)i(zunehmend)382
+4297 y(v)m(on)h(ihnen)g(abh\344ngig.)54 b(Es)34 b(ist)g(sic)m(her)i(n)m
+(ur)f(eine)g(F)-8 b(rage)35 b(der)g(Zeit,)h(bis)e(sic)m(h)h(die)g(Ab-)
+382 4409 y(h\344ngigk)m(eit)k(v)m(on)f(funktionierenden)h
+(Informationssystemen,)g(wie)f(sie)f(sc)m(hon)h(jetzt)382
+4522 y(in)e(kleinen)h(T)-8 b(eilb)s(ereic)m(hen)39 b(existiert,)e(auc)m
+(h)h(auf)e(einen)g(Gro\377teil)h(der)g(Bev)m(\366lk)m(erung)382
+4635 y(ausdehn)m(t.)382 4789 y(V)-8 b(or)43 b(allem)g(das)f(Finanz-)h
+(und)g(V)-8 b(ersic)m(herungsw)m(esen)45 b(so)m(wie)e(viele)f
+(isolierte)i(Ec)m(h)m(t-)382 4902 y(zeitsteuerungssysteme)36
+b(sind)e(f\374r)h(uns)g(v)m(on)g(so)f(gro\377er)i(Wic)m(h)m(tigk)m
+(eit,)i(da\377)d(wir)g(ihre)382 5015 y(fortlaufende)24
+b(F)-8 b(unktion)24 b(un)m(ter)g(allen)f(Umst\344nden)h(sic)m
+(herstellen)g(m)m(\374ssen.)38 b(F\374r)23 b(diese)382
+5127 y(Bereic)m(he)32 b(gibt)f(es)f(b)s(ereits)g(en)m(tsprec)m(hende)j
+(L\366sungen.)382 5281 y(Erh\366h)m(t)22 b(sic)m(h)f(jedo)s(c)m(h)f
+(die)h(Abh\344ngigk)m(eit)h(der)f(Gesellsc)m(haft)f(v)m(on)h(Online-An)
+m(w)m(endungen)382 5394 y(w)m(eiter,)40 b(so)c(m)m(u\377)i(hier)f(no)s
+(c)m(h)h(an)e(deutlic)m(hen)j(V)-8 b(erb)s(esserungen)38
+b(gearb)s(eitet)g(w)m(erden,)1854 5622 y(4)p eop
+%%Page: 5 7
+5 6 bop 382 262 a Fl(KAPITEL)31 b(1.)71 b(EINLEITUNG)p
+382 299 2989 4 v 382 539 a Fp(denn)21 b(heute)g(ist)g(es)f(nic)m(h)m
+(ts)i(Un)m(\374blic)m(hes,)i(w)m(enn)e(In)m(ternetan)m(w)m(endungen)j
+(wie)c(das)f(Elek-)382 652 y(tronisc)m(he)25 b(T)-8 b(elefon)m(buc)m(h)
+27 b(\(www.etb.at\),)h(T)-8 b(elebanking)26 b(o)s(der)e(der)g(Wiener)h
+(Stadtplan)382 764 y(f\374r)30 b(mehrere)i(Stunden)f(o)s(der)g(T)-8
+b(age)31 b(einfac)m(h)g(nic)m(h)m(t)h(funktionieren.)382
+927 y(Auc)m(h)41 b(in)g(Klein-)h(und)f(Mittelb)s(etrieb)s(en,)j(w)m(o)e
+(v)m(or)f(allem)g(auf)g(PC)g(basierte)h(ED)m(V-)382 1040
+y(L\366sungen)32 b(gesetzt)f(wird,)h(k)-5 b(ann)31 b(der)g(Ausfall)g
+(des)g(ED)m(V-Systems)g(gra)m(vierende)i(F)-8 b(ol-)382
+1153 y(gen)35 b(f\374r)g(das)g(Un)m(ternehmen)i(hab)s(en.)55
+b(So)m(w)m(ohl)37 b(der)e(Ausfall)g(der)g(Pro)s(duktivit\344t)h(im)382
+1266 y(Zeitraum)j(des)f(ED)m(V-Ausfalls)h(als)f(auc)m(h)h
+(Regre\377sanspr\374c)m(he)h(der)e(Kunden,)j(w)m(enn)382
+1379 y(w)m(egen)24 b(eines)f(ED)m(V-Ausfalls)g(v)m(erein)m(barte)i
+(Leistungen)f(nic)m(h)m(t)h(erbrac)m(h)m(t)g(w)m(erden)f(k)m(\366n-)382
+1492 y(nen,)31 b(k)m(\366nnen)g(f\374r)f(das)g(Un)m(ternehmen)j
+(existenzb)s(edrohend)f(w)m(erden.)382 1654 y(Es)24 b(w)m(erden)j
+(Systeme)d(b)s(en\366tigt,)j(die)e(garan)m(tiert)i(zur)e(V)-8
+b(erf\374gung)25 b(stehen.)39 b(Im)25 b(Un)m(ter-)382
+1767 y(sc)m(hied)35 b(zu)f(Ec)m(h)m(tzeitan)m(w)m(endungen)40
+b(d\374rfen)34 b(kurze)g(Un)m(terbrec)m(h)m(ungen)k(\(im)c(Bereic)m(h)
+382 1880 y(v)m(on)21 b(Min)m(uten\))i(auftreten,)h(w)m(enn)e(dadurc)m
+(h)h(die)e(K)m(osten)h(des)f(Systems)g(in)g(den)g(Bereic)m(h)382
+1993 y(herk)m(\366mmlic)m(her)38 b(Systeme)e(gebrac)m(h)m(t)i(w)m
+(erden)g(k)m(\366nnen.)58 b(Es)35 b(m)m(\374ssen)i(also)e(Systeme)382
+2106 y(gebaut)40 b(w)m(erden,)i(die)e(den)f(Ausfall)f(einzelner)i(K)m
+(omp)s(onen)m(ten)i(tolerieren)e(k)m(\366nnen.)382 2219
+y(Diese)35 b(Systeme)h(m)m(\374ssen)g(aus)f(herk)m(\366mmlic)m(hen)j
+(Computern)f(b)s(estehen,)g(da)f(n)m(ur)g(so)382 2332
+y(die)31 b(K)m(osten)g(gering)g(gehalten)h(w)m(erden)g(k)m(\366nnen.)
+382 2495 y(Diese)26 b(Arb)s(eit)g(gibt)h(zuerst)f(einen)h(\334b)s
+(erblic)m(k)f(\374b)s(er)h(existierende)g(L\366sungen,)h(die)e(v)m(or)
+382 2608 y(allem)40 b(mit)g(Hilfe)f(sp)s(ezieller)h(Hardw)m(are)h(arb)s
+(eiten;)k(ansc)m(hlie\377end)d(wird)e(eine)g(neue)382
+2720 y(L\366sung)31 b(v)m(orgestellt,)h(die)e(ohne)h(sp)s(ezielle)g
+(Hardw)m(are)h(ausk)m(omm)m(t.)382 2883 y(In)e Fn(Kapitel)35
+b(2)c Fp(wird)f(der)h(Begri\033)37 b Fn(Clustering)31
+b Fp(erl\344utert;)h(der)f(Sc)m(h)m(w)m(erpunkt)i(liegt)382
+2996 y(b)s(ei)d(existierenden)i(Clusterl\366sungen,)g(die)e(hohe)h(V)-8
+b(erf\374gbark)m(eit)32 b(bieten.)382 3159 y(In)k Fn(Kapitel)43
+b(3)37 b Fp(wird)g(das)g Fn(Design)42 b(v)m(on)f(DRBD)35
+b Fp(\026)i(die)h(zen)m(trale)g(K)m(omp)s(onen)m(te)382
+3272 y(des)31 b(Ho)s(c)m(h)m(v)m(erf\374gbark)m(eits-Clusters,)j(der)d
+(ohne)h(sp)s(ezielle)f(Hardw)m(are)i(ausk)m(omm)m(t)f(\026)382
+3385 y(v)m(orgestellt.)382 3547 y(In)k Fn(Kapitel)42
+b(4)37 b Fp(w)m(erden)g(f\374r)g(die)f(Implemen)m(tierung)j(v)m(on)e
+(DRBD)f(relev)-5 b(an)m(te)37 b Fn(T)-9 b(eile)382 3660
+y(des)35 b(Lin)m(ux)f(Kernels)c Fp(v)m(orgestellt.)382
+3823 y Fn(Kapitel)37 b(5)30 b Fp(b)s(ehandelt)j(die)e
+Fn(Implemen)m(tierung)k(und)f(erzielte)j(Leistung)f(v)m(on)382
+3936 y(DRBD)p Fp(.)382 4099 y(In)20 b Fn(Kapitel)25 b(6)c
+Fp(wird)g(gezeigt,)j(wie)e(mit)f(dem)g(DRBD-Ger\344t)g(und)h(anderer)g
+(frei)f(erh\344lt-)382 4211 y(lic)m(her)32 b(Soft)m(w)m(are)h(ein)e
+Fn(Ho)s(c)m(h)m(v)m(erf\374gbark)m(eits-Cluster)k(implemen)m(tiert)c
+Fp(w)m(erden)382 4324 y(k)-5 b(ann.)1854 5622 y(5)p eop
+%%Page: 6 8
+6 7 bop 382 1208 a Fk(Kapitel)62 b(2)382 1669 y Fm(Clustering)382
+2160 y Fp(Wie)46 b(b)s(ereits)g(erw)m(\344hn)m(t)j(k)m(\366nnen,)i
+(preisw)m(erte,)h(ho)s(c)m(h)m(v)m(erf\374gbare)d(Systeme)e(gebaut)382
+2273 y(w)m(erden,)41 b(indem)d(mehrere)h(herk)m(\366mmlic)m(he)h
+(Computer)g(zu)d(einem)i(Cluster)f(zusam-)382 2386 y(mengesc)m(hlossen)
+32 b(w)m(erden.)45 b(Da)31 b(der)g(Begri\033)g(Clustering)i(ab)s(er)e
+(mehr)h(b)s(einhaltet)g(als)382 2499 y(Systeme)44 b(f\374r)f(hohe)i(V)
+-8 b(erf\374gbark)m(eit,)49 b(geb)s(e)43 b(ic)m(h)i(in)f(diesem)g
+(Kapitel)h(zuerst)f(einen)382 2612 y(\334b)s(erblic)m(k)c(\374b)s(er)f
+(v)m(ersc)m(hiedene)j(Cluster)e(und)f(gehe)h(danac)m(h)h(sp)s(eziell)f
+(auf)f(Cluster)382 2725 y(f\374r)30 b(hohe)h(V)-8 b(erf\374gbark)m(eit)
+32 b(ein.)382 2884 y(Un)m(ter)d(einem)g(Cluster)g(v)m(ersteh)m(t)g(man)
+g(den)g(Zusammensc)m(hlu\377)h(mehrerer)g(unabh\344n-)382
+2997 y(giger)35 b(Computer,)i(um)d(eine)h(Aufgab)s(e)f(zu)g(l\366sen.)
+53 b(Ein)34 b(Cluster)h(un)m(tersc)m(heidet)i(sic)m(h)382
+3110 y(dadurc)m(h)29 b(v)m(on)f(einem)g(Netzw)m(erk)h(v)m(on)f
+(Computern,)i(das)d(eine)h(v)m(erteilte)h(Applik)-5 b(ation)382
+3223 y(ausf\374hrt,)31 b(da\377)f(er)h(in)f(einem)h(b)s(estimm)m(ten)h
+(Asp)s(ekt)d(den)i(Eindruc)m(k)h(erw)m(ec)m(kt,)g(da\377)f(es)382
+3335 y(sic)m(h)g(um)f(einen)h(einzigen,)h(herk)m(\366mmlic)m(hen)h
+(Computer)f(handelt.)382 3495 y(Der)d(\022p)s(erfekte)f(Cluster\021)37
+b(w)m(\344re)30 b(ein)f(System,)g(das)g(sic)m(h)g(in)f(allen)i(Asp)s
+(ekten,)e(wie)h(z.B.)382 3608 y(A)m(dministration,)40
+b(Programmiermo)s(dell,)g(Repr\344sen)m(tation)e(im)f(Netzw)m(erk,)i
+(wie)d(ein)382 3720 y(einzelner)f(Computer)h(v)m(erh\344lt,)g(ab)s(er)e
+(mit)g(dem)h(Hinzuf\374gen)g(zus\344tzlic)m(her)g(Knoten)382
+3833 y(seine)25 b(Leistung)g(und)g(Ausfallsic)m(herheit)h(steigern)f(k)
+-5 b(ann.)39 b(Die)25 b(Sic)m(h)m(tbark)m(eit)i(des)e(Clu-)382
+3946 y(sters)30 b(als)g(eine)h(Einheit)g(wird)g(als)g(SSI)f(\(single)h
+(system)e(image\))j(b)s(ezeic)m(hnet.)42 b([P\03498)q(])382
+4105 y(Die)35 b(meisten)g(der)g(heutigen)h(Clustering-Ans\344tze)g
+(setzen)f(sic)m(h)g(ein)g(w)m(esen)m(tlic)m(h)j(b)s(e-)382
+4218 y(sc)m(heideneres)e(Ziel.)56 b(Sie)35 b(v)m(ersuc)m(hen,)j(das)d
+(SSI)g(f\374r)g(einen)h(b)s(estimm)m(ten)g(Zw)m(ec)m(k)h(auf-)382
+4331 y(rec)m(h)m(tzuerhalten.)44 b(V)-8 b(erl\344\377t)31
+b(man)g(b)s(ei)f(einer)h(Betrac)m(h)m(tung)i(solc)m(h)e(eines)g
+(Clusters)f(die)382 4444 y(Grenzen)37 b(des)e(SSI,)h(so)g(wird)g(die)g
+(T)-8 b(atsac)m(he,)40 b(da\377)c(es)f(sic)m(h)i(um)f(mehrere)h
+(Computer)382 4557 y(handelt,)31 b(wieder)h(sic)m(h)m(tbar.)382
+4716 y(Ein)h(F)-8 b(aktor,)33 b(der)g(viele)f(k)m(ommerzielle)i
+(Hersteller)f(v)m(on)f(ED)m(V-Infrastruktur)h(da)m(v)m(on)382
+4829 y(abgehalten)23 b(hat,)h(fortsc)m(hrittlic)m(he)h(Clustering-T)-8
+b(ec)m(hnologien)26 b(zu)c(en)m(t)m(wic)m(k)m(eln,)27
+b(ist)21 b(ih-)382 4942 y(re)33 b(eigene)g(Linzenzp)s(olitik.)50
+b(Wird)33 b(Soft)m(w)m(are)h(f\374r)f(mehrere)h(Computer,)g(auc)m(h)g
+(w)m(enn)382 5055 y(es)j(sic)m(h)h(um)g(Knoten)h(eines)e(Clusters)h
+(handelt,)j(v)m(erk)-5 b(auft,)39 b(so)e(ist)h(f\374r)f(jeden)h(Com-)
+382 5168 y(puter)i(eine)f(Lizenz)h(zu)f(erw)m(erb)s(en.)68
+b(Das)39 b(ist)f(ein)i(Grund,)h(w)m(eshalb)f(viele)f(Kunden)382
+5281 y(SMP-Computersysteme)30 b(v)m(orziehen,)g(da)e(hier)h(n)m(ur)g
+(Lizenzen)g(f\374r)f(einen)h(Computer)382 5394 y(erw)m(orb)s(en)40
+b(w)m(erden)g(m)m(\374ssen,)h(ab)s(er)e(trotzdem)h(die)f(Leistung)h
+(mehrerer)g(CPUs)e(zur)1854 5622 y(6)p eop
+%%Page: 7 9
+7 8 bop 382 262 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)80
+b(2.1.)71 b(WISSENSCHAFTLICHE)32 b(CLUSTER)p 382 299
+2989 4 v 382 539 a Fp(V)-8 b(erf\374gung)29 b(steh)m(t.)41
+b(Die)28 b(Nac)m(hfrage)i(der)e(Kunden)i(wiederum)g(b)s(eein\035u\377t)
+f(das)f(Ange-)382 652 y(b)s(ot)j(der)h(Hersteller)h([P\03498)q(,)f
+(Seite)g(511].)45 b(\(Eine)32 b(Ausnahme)h(bilden)f(jene)g(Lizenzen,)
+382 764 y(deren)f(Preis)g(v)m(on)f(der)h(Anzahl)g(der)g(maximal)g
+(erlaubten)h(Ben)m(utzer)g(abh\344ngt.\))382 927 y(Lin)m(ux)23
+b(ist)e(f\374r)g(den)h(Einsatz)h(in)f(gro\377en)g(Clustern)h(viel)e(b)s
+(esser)g(geeignet,)k(da)d(b)s(ei)f(Lin)m(ux)382 1040
+y(k)m(eine)45 b(Lizenzgeb\374hren)i(pro)e(Installation)h(anfallen.)83
+b(Im)45 b(folgenden)g(eine)g(kleine)382 1153 y(\334b)s(ersic)m(h)m(t)23
+b(\374b)s(er)g(die)g(v)m(ersc)m(hiedenen)h(Aufgab)s(enstellungen,)h
+(die)e(mit)g(Clustern)g(un)m(ter)382 1266 y(Lin)m(ux)31
+b(gel\366st)g(w)m(erden)h(k)m(\366nnen.)41 b([Sha00)q(])382
+1602 y Fj(2.1)130 b(Wissensc)l(haftlic)l(he)46 b(Cluster)382
+1855 y Fp(F\374r)31 b(aufw)m(endige)j(Sim)m(ulationen)g(wird)e(oft)f
+(eine)h(derart)g(gro\377e)g(Anzahl)g(an)g(Rec)m(hen-)382
+1968 y(op)s(erationen)25 b(b)s(en\366tigt,)g(da\377)f(ein)g(einzelner)h
+(Computer)g(viele)e(Jahre)i(b)s(en\366tigen)f(w\374r-)382
+2081 y(de,)h(um)f(die)g(gesam)m(te)h(Sim)m(ulation)g(durc)m
+(hzuf\374hren.)41 b(Es)23 b(gibt)h(in)g(diesem)g(Bereic)m(h)h(den)382
+2194 y(Ansatz,)33 b(eine)g(Applik)-5 b(ation)34 b(sp)s(eziell)e(f\374r)
+h(den)f(Einsatz)i(auf)e(einem)i(Cluster)f(zu)g(en)m(t-)382
+2306 y(wic)m(k)m(eln.)42 b(In)30 b(diesem)h(F)-8 b(all)32
+b(ist)e(der)h(En)m(t)m(wic)m(kler)i(selbst)d(f\374r)h(die)f(Aufteilung)
+h(der)g(Last)382 2419 y(auf)25 b(die)h(einzelnen)h(Knoten)f(des)f
+(Clusters)h(zust\344ndig.)40 b(Das)25 b(SSI)g(wird)h(hier)g(mit)g
+(Hilfe)382 2532 y(einer)f(Bibliothek)h(den)f(Applik)-5
+b(ationen)26 b(zur)f(V)-8 b(erf\374gung)26 b(gestellt.)39
+b(Die)25 b(b)s(ek)-5 b(ann)m(testen)382 2645 y(Bibliothek)m(en)32
+b(sind)e(PVM)h([Sun90)q(])f(und)h(MPI)f([MPI97].)382
+2981 y Fj(2.2)130 b(Lastv)l(erteilung)382 3237 y Fo(2.2.1)112
+b(hohe)38 b(CPU-Last)382 3459 y Fp(Ein)33 b(anderer)g(Ansatz)g(b)s
+(eruh)m(t)g(darauf,)g(die)g(T)-8 b(atsac)m(he,)35 b(da\377)d(es)g(sic)m
+(h)h(um)g(einen)g(Clu-)382 3572 y(ster)44 b(handelt,)49
+b(v)m(or)c(der)g(Applik)-5 b(ation)45 b(zu)g(v)m(erb)s(ergen.)84
+b(In)44 b(diesem)h(F)-8 b(all)45 b(m)m(u\377)g(die)382
+3685 y(Cluster-Soft)m(w)m(are)38 b(f\374r)d(die)h(Aufteilung)g(der)g
+(Last)f(auf)h(die)f(einzelnen)i(Knoten)g(sor-)382 3798
+y(gen.)47 b(Dies)32 b(wird)h(in)g(MOSIX,)f(einer)h(Cluster-Soft)m(w)m
+(are,)j(durc)m(h)e(die)f(Migration)g(v)m(on)382 3910
+y(An)m(w)m(endungsprozessen)28 b(erm\366glic)m(h)m(t.)42
+b(Hier)26 b(\034ndet)g(sic)m(h)h(das)e(SSI)h(in)g(der)g(Systemruf-)382
+4023 y(sc)m(hnittstelle)32 b(des)e(Lin)m(ux-MOSIX)h(Kernels)g(wieder.)
+382 4186 y(Auf)g(die)h(Grenzen)h(des)f(SSI)g(st\366\377t)g(der)g
+(MOSIX-Cluster)g(b)s(ei)g(Netzw)m(erkv)m(erbindun-)382
+4299 y(gen.)40 b(W)-8 b(enn)28 b(eine)h(Applik)-5 b(ation)28
+b(einen)h(IP-So)s(c)m(k)m(et)g(v)m(erw)m(endet,)h(k)-5
+b(ann)28 b(sie)f(nic)m(h)m(t)j(mehr)382 4412 y(migriert)h(w)m(erden.)
+382 4705 y Fo(2.2.2)112 b(hohe)38 b(Netzw)m(erk-Last)382
+4927 y Fp(V)-8 b(or)23 b(allem)g(f\374r)g(W)-8 b(ebserv)m(er)23
+b(mit)g(vielen)g(Zugri\033en)h(baut)f(man)g(Cluster,)i(b)s(ei)e(denen)g
+(die)382 5040 y(hereink)m(ommenden)32 b(Anforderungen)f(der)e(Clien)m
+(ts)h(auf)f(mehrere)i(W)-8 b(ebserv)m(er)30 b(aufge-)382
+5152 y(teilt)40 b(w)m(erden.)70 b(Auf)39 b(diesem)h(Gebiet)h(gibt)f(es)
+f(sp)s(eziell)h(in)g(letzter)g(Zeit)g(zahlreic)m(he)382
+5265 y(En)m(t)m(wic)m(klungen.)1854 5622 y(7)p eop
+%%Page: 8 10
+8 9 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fn(RDNS)44 b Fp(Die)24 b(ersten)f(L\366sungen)i
+(basierten)f(auf)f(RRDNS)f(\(round)i(robin)g(dns\),)h(w)m(ob)s(ei)609
+652 y(der)46 b(DNS)e(\(domain)j(name)f(system\))e(Serv)m(er)i(mit)g
+(gleic)m(her)h(V)-8 b(erteilung)46 b(die)609 764 y(IP-A)m(dressen)c
+(der)f(einzelnen)h(Cluster-Knoten)h(an)e(die)g(Clien)m(ts)h(w)m
+(eitergibt.)609 877 y(Der)33 b(gr\366\377te)h(Nac)m(h)m(teil)g(dieser)f
+(L\366sung)h(liegt)f(darin,)h(da\377)f(die)g(Last)g(un)m(ter)h(den)609
+990 y(Cluster-Knoten)42 b(meist)f(sc)m(hlec)m(h)m(t)h(v)m(erteilt)f
+(wird.)71 b(Die)40 b(Gr\374nde)h(daf\374r)f(sind)609
+1103 y(vielseitig,)26 b(einer)e(da)m(v)m(on)h(ist,)f(da\377)g(der)g
+(DNS-Serv)m(er)h(nic)m(h)m(t)g(k)m(on)m(trollieren)h(k)-5
+b(ann,)609 1216 y(wie)31 b(lange)g(die)g(IP-A)m(dresse)f(clien)m
+(t-seitig)i(gesp)s(eic)m(hert)g(wird.)382 1404 y Fn(Application)j(lev)m
+(el)g(Pro)m(xies)45 b Fp(Bei)35 b(dieser)h(L\366sung)g(wird)f(ein)h
+(Pro)m(xy-Serv)m(er,)i(wie)609 1517 y(er)22 b(v)m(on)g(der)g(Clien)m
+(t-Seite)i(b)s(ek)-5 b(ann)m(t)23 b(ist,)g(auf)f(der)g(Serv)m(er-Seite)
+i(eingesetzt.)38 b(Die-)609 1630 y(ser)d(Pro)m(xy)h(k)m(enn)m(t)h(die)f
+(Lastv)m(erteilung)h(im)f(Cluster)g(und)g(leitet)g(die)f(Anfrage)609
+1742 y(des)24 b(Clien)m(ts)h(an)g(den)f(Knoten)i(mit)e(der)h
+(geringsten)g(Last)g(w)m(eiter.)39 b(Diese)25 b(Arc)m(hi-)609
+1855 y(tektur)33 b(hat)g(jedo)s(c)m(h)g(den)g(Nac)m(h)m(teil,)i(da\377)
+e(die)f(maximale)i(Gr\366\377e)f(des)f(Clusters)609 1968
+y(durc)m(h)g(die)e(Leistungsf\344higk)m(eit)i(des)f(Pro)m(xys)f(b)s
+(egrenzt)h(ist.)382 2156 y Fn(IP)j(lev)m(el)h(Sc)m(heduling)45
+b Fp(Es)37 b(gibt)h(\026)f(eb)s(enso)g(wie)h(b)s(ei)f(b)s(ei)g(der)g
+(Pro)m(xy-L\366sung)i(\026)609 2269 y(einen)31 b(Computer,)g(der)f(die)
+g(Anforderungen)h(auf)e(die)h(Knoten)h(aufteilt;)g(aller-)609
+2382 y(dings)38 b(gesc)m(hieh)m(t)i(dies)f(durc)m(h)g(NA)-8
+b(T)38 b(\(net)m(w)m(ork)i(address)e(translations\).)65
+b(Ein)609 2495 y(V)-8 b(orteil)37 b(gegen)m(\374b)s(er)g(der)f
+(L\366sung)g(mit)g(dem)g(Pro)m(xy)g(ist,)g(da\377)g(nic)m(h)m(t)i
+(f\374r)d(jedes)609 2608 y(Protok)m(oll)j(ein)e(sp)s(ezieller)h(Pro)m
+(xy)g(en)m(t)m(wic)m(k)m(elt)i(w)m(erden)e(m)m(u\377.)59
+b(Die)37 b(maximale)609 2720 y(Gr\366\377e)h(des)g(Clusters)g(wird)h
+(zw)m(ar)g(w)m(eiterhin)g(durc)m(h)h(die)e(Leistungsf\344higk)m(eit)609
+2833 y(des)33 b(Rec)m(hners)g(b)s(egrenzt,)h(jedo)s(c)m(h)f(ist)f(NA)-8
+b(T)33 b(im)g(Kernel)g(implemen)m(tiert,)j(w)m(as)609
+2946 y(diesen)31 b(Nac)m(h)m(teil)h(et)m(w)m(as)g(en)m(tsc)m(h\344rft.)
+609 3059 y(Eine)e(andere)h(V)-8 b(arian)m(te)31 b(wird)f(mit)f(Hilfe)g
+(v)m(on)h(IP-T)-8 b(unnelling)32 b(implemen)m(tiert.)609
+3172 y(Hier)37 b(w)m(erden)h(die)e(IP-P)m(ak)m(ete)j(innerhalb)f
+(anderer)f(IP-P)m(ak)m(ete)h(zu)f(den)g(Kno-)609 3285
+y(ten)e(des)f(Clusters)g(b)s(ef\366rdert.)53 b(F\374r)34
+b(den)g(angespro)s(c)m(henen)j(Knoten)e(en)m(tsteh)m(t)609
+3398 y(der)30 b(Eindruc)m(k,)i(da\377)e(diese)g(Anforderung)h(direkt)f
+(v)m(om)g(Clien)m(t)h(k)m(omm)m(t,)h(daher)609 3511 y(sc)m(hic)m(kt)38
+b(er)f(die)g(An)m(t)m(w)m(ort)i(direkt)e(zum)g(Clien)m(t)h(zur\374c)m
+(k.)60 b(Im)37 b(Un)m(tersc)m(hied)h(zu)609 3624 y(den)24
+b(L\366sungen)g(mit)g(Pro)m(xy)g(und)f(NA)-8 b(T)24 b(ist)f(hier)h(die)
+f(Netzlast)h(f\374r)f(den)g(Knoten,)609 3737 y(der)31
+b(die)g(Aufteilung)f(der)h(Anforderungen)h(\374b)s(ernimm)m(t,)g(viel)e
+(kleiner.)382 3999 y(Im)k(Rahmen)g(des)g(Lin)m(ux)h(Virtual)g(Serv)m
+(er)g(Pro)5 b(jektes)34 b([ZJW99)q(])g(wurde)h(eine)g(lin)m(ux-)382
+4112 y(basierte)c(Implemen)m(tierung)i(des)d(IP-Lev)m(el-Sc)m
+(heduling-Ansatzes)k(gesc)m(ha\033en.)382 4275 y(So)m(w)m(ohl)41
+b(b)s(ei)d(diesem)i(Cluster,)h(wie)e(auc)m(h)h(b)s(ei)f(Clustern)h
+(f\374r)e(hohe)i(V)-8 b(erf\374gbark)m(eit,)382 4387
+y(wird)31 b(das)f(SSI)g(aussc)m(hlie\377lic)m(h)j(auf)d(Netzw)m(erk)m
+(eb)s(ene)i(erf\374llt.)382 4724 y Fj(2.3)130 b(Hohe)44
+b(V)-11 b(erf\374gbark)l(eit)382 4976 y Fp(F\374r)33
+b(viele)h(An)m(w)m(endungen)i(ist)d(hohe)h(V)-8 b(erf\374gbark)m(eit)34
+b(\(high)g(a)m(v)-5 b(ailabilit)m(y\))36 b(die)d(wic)m(h-)382
+5089 y(tigste)e(Eigensc)m(haft.)42 b(Beispiele)31 b(daf\374r)g(sind)g
+(File-,)g(Prin)m(t-,)h(Daten)m(bank-,)g(Gatew)m(a)m(y-)382
+5202 y(und)38 b(Applik)-5 b(ations-Serv)m(er)39 b(in)e(Un)m(ternehmen,)
+k(ab)s(er)d(auc)m(h)g(\366\033en)m(tlic)m(h)h(zug\344nglic)m(he)382
+5315 y(W)-8 b(eb-Serv)m(er.)1854 5622 y(8)p eop
+%%Page: 9 11
+9 10 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fo(2.3.1)112 b(V)-9 b(erf\374gbark)m(eit)382
+760 y Fp(V)h(erf\374gbark)m(eit)32 b(\(a)m(v)-5 b(ailabilit)m(y\))32
+b(wird)f(wie)g(folgt)f(de\034niert)i([K)m(op97)r(]:)1416
+1056 y Fi(A)26 b Fh(=)1821 994 y Fi(M)10 b(T)j(T)g(F)p
+1615 1035 712 4 v 1615 1118 a(M)d(T)j(T)g(F)33 b Fh(+)20
+b Fi(M)10 b(T)j(T)g(R)382 1352 y Fp(MTTF)185 b(Durc)m(hsc)m(hnittlic)m
+(he)42 b(Zeit)d(der)f(fehlerfreien)h(F)-8 b(unktion)40
+b(\(mean)f(time)f(to)839 1465 y(failure\).)382 1652 y(MTTR)177
+b(Durc)m(hsc)m(hnittlic)m(he)34 b(Dauer)d(einer)g(Reparatur)g(\(mean)g
+(time)g(to)g(repair\).)382 1840 y(MTBF)186 b(Die)39 b(durc)m(hsc)m
+(hnittlic)m(he)j(Zeit)d(zwisc)m(hen)h(zw)m(ei)g(Ausf\344llen)e(ist)g
+(de\034niert)839 1953 y(als)30 b Fi(M)10 b(T)j(B)5 b(F)38
+b Fh(=)25 b Fi(M)10 b(T)j(T)g(F)33 b Fh(+)20 b Fi(M)10
+b(T)j(T)g(R)30 b Fp(\(mean)h(time)g(b)s(et)m(w)m(een)h(failures\).)382
+2215 y(Dieser)d(Ausdruc)m(k)h(k)-5 b(ann)30 b(erst)f(am)h(Ende)g(der)g
+(Leb)s(ensdauer)h(eines)e(Systems)g(b)s(erec)m(h-)382
+2328 y(net)38 b(w)m(erden.)63 b(Betrac)m(h)m(tet)40 b(man)e(allerdings)
+g(die)g(V)-8 b(erf\374gbark)m(eit)39 b(eines)e(Systems)g(in)382
+2441 y(einem)h(Jahr,)i(so)e(ergibt)g(sic)m(h)g(folgende)g(T)-8
+b(ab)s(elle)39 b(f\374r)e(die)h(maximal)g(erlaubte)h(Aus-)382
+2554 y(fallszeit)30 b(eines)h(Systems.)p 931 2704 1891
+4 v 929 2817 4 113 v 981 2783 a(V)-8 b(erf\374gbark)m(eit)p
+1564 2817 V 101 w(erlaubte)32 b(Ausfallszeit)p 2468 2817
+V 100 w(Klasse)p 2820 2817 V 931 2820 1891 4 v 931 2837
+V 929 2950 4 113 v 1150 2916 a(99)f(\045)p 1564 2950
+V 586 w(88)g(h)p 2468 2950 V 520 w(2)p 2820 2950 V 931
+2953 1891 4 v 929 3066 4 113 v 1115 3032 a(99,9)g(\045)p
+1564 3066 V 574 w(9)f(h)p 2468 3066 V 543 w(3)p 2820
+3066 V 931 3069 1891 4 v 929 3182 4 113 v 1093 3148 a(99,99)h(\045)p
+1564 3182 V 478 w(52)g(min)p 2468 3182 V 470 w(4)p 2820
+3182 V 931 3185 1891 4 v 929 3298 4 113 v 1070 3264 a(99,999)g(\045)p
+1564 3298 V 479 w(5)f(min)p 2468 3298 V 493 w(5)p 2820
+3298 V 931 3302 1891 4 v 929 3414 4 113 v 1047 3381 a(99,9999)i(\045)p
+1564 3414 V 450 w(31)f(sec)p 2468 3414 V 487 w(6)p 2820
+3414 V 931 3418 1891 4 v 382 3609 a(V)-8 b(ergleic)m(h)m(t)35
+b(man)f(dies)f(mit)g(der)g(T)-8 b(atsac)m(he,)36 b(da\377)d(die)g
+(meisten)h(Lin)m(ux-Distributoren)382 3722 y(mindestens)i(4)g(mal)h(im)
+f(Jahr)g(neue)h(Distributionen)g(herausbringen,)j(so)35
+b(ist)h(es)f(er-)382 3835 y(sic)m(h)m(tlic)m(h,)27 b(da\377)c(eine)h(V)
+-8 b(erf\374gbark)m(eit)24 b(v)m(on)g(mehr)f(als)g(99)g(\045)h(n)m(ur)f
+(mit)h(zw)m(ei)g(Systemen)f(zu)382 3948 y(erreic)m(hen)j(ist,)f(v)m(on)
+f(denen)h(ein)g(System)f(in)g(Pro)s(duktion)h(bleib)s(en)f(k)-5
+b(ann,)26 b(w)m(\344hrend)g(auf)382 4061 y(dem)e(anderen)g(W)-8
+b(artungsarb)s(eiten)26 b(durc)m(hgef\374hrt)f(w)m(erden.)40
+b(Zw)m(ar)24 b(ist)f(die)h(Installati-)382 4174 y(on)29
+b(einer)g(Lin)m(ux-Distribution)j(heute)d(w)m(esen)m(tlic)m(h)j(einfac)
+m(her)e(als)e(fr\374her,)i(do)s(c)m(h)f(nac)m(h)382 4287
+y(dem)h(Einspielen)i(neuer)e(Programm)m(v)m(ersionen)k(sind)c(oft)f
+(\304nderungen)j(an)e(K)m(on\034gu-)382 4400 y(rations\034les)35
+b(not)m(w)m(endig.)57 b(\(Diese)35 b(Problematik)h(b)s(etri\033t)f(nic)
+m(h)m(t)i(alle)e(Cluster,)h(siehe)382 4513 y(auc)m(h)31
+b(Absc)m(hnitt)h(2.3.1.1.\))382 4675 y(V)-8 b(erzic)m(h)m(tet)26
+b(man)e(auf)f(die)g(laufende)i(Aktualisierung)f(der)f(Lin)m
+(ux-Distribution,)28 b(so)23 b(ist)382 4788 y(es)32 b(b)s(ei)f
+(\366\033en)m(tlic)m(h)j(zug\344nglic)m(hen)h(Systemen)e(eine)f
+(Mindestanforderung,)i(die)f(neue-)382 4901 y(sten)d(sic)m
+(herheitsrelev)-5 b(an)m(ten)34 b(Aktualisierungen)d(einzuspielen.)382
+5064 y(Betrac)m(h)m(tet)j(man)d(n)m(ur)h(die)g(Hardw)m(are,)h(dann)f
+(ist)f(es)g(n)m(ur)h(mehr)g(ein)f(kleiner)h(Sc)m(hritt,)382
+5177 y(aus)21 b(zw)m(ei)h(unabh\344ngigen)i(Systemen)d(einen)h(Cluster)
+g(zu)f(bauen,)j(b)s(ei)d(dem)h(ein)f(Knoten)382 5290
+y(aktiv)30 b(das)g(Service)h(an)m(bietet)h(und)f(der)g(zw)m(eite)g
+(Knoten)h(den)e(aktiv)m(en)h(\374b)s(erw)m(ac)m(h)m(t.)1854
+5622 y(9)p eop
+%%Page: 10 12
+10 11 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fp(P\034ster)36 b([P\03498)r(])f(f\374hrt)h(auc)m(h)h
+(den)f(Begri\033)g(der)g(V)-8 b(erf\374gbark)m(eitsklasse)36
+b(ein.)57 b(Er)36 b(gibt)382 652 y(folgende)31 b(Beispiele:)p
+633 801 2486 4 v 631 914 4 113 v 718 881 a(1-2)p 922
+914 V 1070 w(LANs)p 3117 914 V 633 918 2486 4 v 631 1031
+4 113 v 756 997 a(2)p 922 1031 V 735 w(herk)m(\366mmlic)m(he)i
+(Computer)p 3117 1031 V 633 1034 2486 4 v 631 1147 4
+113 v 683 1113 a(3\(-4\))p 922 1147 V 101 w(Ho)s(c)m(h)m(v)m
+(erf\374gbark)m(eits-Cluster)g(aus)d(COTS-K)m(omp)s(onen)m(ten)p
+3117 1147 V 633 1150 2486 4 v 631 1263 4 113 v 683 1229
+a(\(3-\)4)p 922 1263 V 917 w(Mainframes)p 3117 1263 V
+633 1266 2486 4 v 631 1379 4 113 v 756 1345 a(5)p 922
+1379 V 633 w(Computer)i(des)e(T)-8 b(elefonsystems)p
+3117 1379 V 633 1383 2486 4 v 631 1496 4 113 v 756 1462
+a(6)p 922 1496 V 596 w(Bordcomputer)32 b(eines)f(Flugzeuges)p
+3117 1496 V 633 1499 2486 4 v 382 1690 a(COTS)j(steh)m(t)f(f\374r)g
+(commercial-o\033-the-shelf,)j(d.h.)49 b(K)m(omp)s(onen)m(ten,)36
+b(die)d(w)m(eitl\344u\034g)382 1803 y(v)m(erf\374gbar)e(sind.)382
+1966 y(Bei)22 b(Systemen)g(der)g(h\366)s(c)m(hsten)g(Klasse)g(wird)g
+(zumeist)g(v)m(on)g(fehlertolerierenden)i(\(fault)382
+2079 y(toleran)m(t\))38 b(Systemen)f(gespro)s(c)m(hen.)59
+b(Bisher)36 b(wurden)h(aussc)m(hlie\377lic)m(h)i(Systeme,)f(b)s(ei)382
+2192 y(denen)k(diese)g(Eigensc)m(haft)h(in)f(Hardw)m(are)h(implemen)m
+(tiert)h(wurde)e(und)g(somit)g(der)382 2305 y(Ausfall)d(einer)h(K)m
+(omp)s(onen)m(te)i(der)e(Hardw)m(are)h(f\374r)e(die)h(Umgebung)h(nic)m
+(h)m(t)g(sic)m(h)m(tbar)382 2418 y(w)m(ar,)31 b(so)f(b)s(ezeic)m(hnet.)
+382 2580 y(Da)37 b(Kunden)g(den)h(Begri\033)f
+(\022fehlertolerierend\021)46 b(gerne)38 b(h\366ren,)h(wird)e(dieser)g
+(Begri\033)382 2693 y(o)s(der)k(Ab)m(w)m(andlungen)j(wie)e(\022soft)m
+(w)m(are)g(fault)g(toleran)m(t\021)50 b(auc)m(h)43 b(gerne)f(v)m(on)f
+(\034ndigen)382 2806 y(An)m(bietern)29 b(v)m(on)f(Ho)s(c)m(h)m(v)m
+(erf\374gbark)m(eits-Clustern)k(v)m(erw)m(endet.)41 b(Ho)s(c)m(h)m(v)m
+(erf\374gbark)m(eits-)382 2919 y(Cluster)31 b(\(high)g(a)m(v)-5
+b(ailabilit)m(y)32 b(clusters\))f(w)m(erden)h(im)e(folgendem)i(als)e
+(HA-Cluster)h(b)s(e-)382 3032 y(zeic)m(hnet.)382 3322
+y Fn(2.3.1.1)103 b(Betriebszust\344nde)382 3543 y Fp(Eine)40
+b(Un)m(terbrec)m(h)m(ung)j(des)c(Betrieb)s(es)g(w)m(egen)i(eines)f
+(Ereignisses,)i(das)d(b)s(ereits)g(im)382 3656 y(V)-8
+b(orhinein)43 b(b)s(ek)-5 b(ann)m(t)43 b(ist,)h(wird)f(als)e(geplan)m
+(te)j(Un)m(terbrec)m(h)m(ung)h(\(planned)e(outage\))382
+3769 y(b)s(ezeic)m(hnet.)77 b(In)41 b(diese)h(Kategorie)i(f\344llt)d
+(auc)m(h)i(das)f(ob)s(en)g(genann)m(te)i(Beispiel)e(der)382
+3882 y(Aktualisierung)31 b(der)g(Systemsoft)m(w)m(are.)382
+4045 y(Das)23 b(Gegenst\374c)m(k)h(dazu)f(sind)g(\(nic)m(h)m(t)i
+(geplan)m(te\))g(Ausf\344lle)e(\(unplanned)i(outages\),)g(die)382
+4158 y(\026)31 b(wie)g(der)g(Name)g(b)s(ereits)f(v)m(erm)m(uten)j
+(l\344\377t)e(\026)g(auf)f(nic)m(h)m(t)j(v)m(orherzusehende)f(Ereig-)
+382 4271 y(nisse)i(zur\374c)m(kgehen.)53 b(In)33 b(diese)i(Kategorie)g
+(fallen)f(Ausf\344lle)g(v)m(on)g(Hardw)m(arek)m(omp)s(o-)382
+4384 y(nen)m(ten,)h(bisher)e(nic)m(h)m(t)i(b)s(ek)-5
+b(ann)m(te)33 b(Soft)m(w)m(arefehler)i(und)f(Ereignisse)f(der)g
+(Umgebung)382 4497 y(\(z.B.)e(Stromausfall\).)382 4659
+y(Nic)m(h)m(t)d(alle)f(Computersysteme)h(m)m(\374ssen)f(jedo)s(c)m(h)g
+(rund)g(um)g(die)g(Uhr)g(v)m(erf\374gbar)g(sein.)382
+4772 y(Ein)e(System)g(f\374r)f(den)h(Aktienhandel)h(m)m(u\377)g(z.B.)e
+(n)m(ur)i(w)m(\344hrend)g(der)f(B\366rsen\366\033n)m(ungs-)382
+4885 y(zeiten)j(v)m(erf\374gbar)h(sein.)39 b(Bei)28 b(diesen)g
+(Systemen)g(k)-5 b(ann)28 b(der)g(Betrieb)g(zu)g(jenen)g(Zeiten)382
+4998 y(un)m(terbro)s(c)m(hen)j(w)m(erden,)g(in)d(denen)i(die)e(V)-8
+b(erf\374gbark)m(eit)31 b(des)d(Systems)g(ohnehin)i(nic)m(h)m(t)382
+5111 y(erforderlic)m(h)36 b(ist;)g(die)e(V)-8 b(erf\374gbark)m(eit)36
+b(wird)f(n)m(ur)g(\374b)s(er)f(den)h(Zeitraum,)i(der)d(v)m(on)h(In-)382
+5224 y(teresse)30 b(ist,)g(b)s(erec)m(hnet.)1831 5622
+y(10)p eop
+%%Page: 11 13
+11 12 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 2095 a
+ currentpoint currentpoint translate 0.81702 0.81702 scale neg exch
+neg exch translate
+ 382 2095 a @beginspecial 89 @llx 583 @lly
+528 @urx 825 @ury 4390 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//ha-cluster.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Wed Mar 29 00:02:16 2000
+%%Title: ha-cluster.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 89 583 528 825
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+382.949 762.521 m
+385.783 759.686 l
+408.461 759.686 l
+411.295 762.521 l
+closepath
+0.8 0.8 0.8 rgb
+F
+382.949 762.521 m
+385.783 759.686 l
+408.461 759.686 l
+411.295 762.521 l
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[34.0158 0 0 -28.3465 380.114 790.867] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 382.949 788.033] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 377.612 757.907] rect
+S
+newpath
+378.622 755.581 m
+379.754 755.52 l
+S
+newpath
+376.559 748.878 m
+377.691 748.818 l
+S
+newpath
+377.075 750.554 m
+378.207 750.493 l
+S
+newpath
+377.591 752.23 m
+378.723 752.169 l
+S
+newpath
+378.106 753.905 m
+379.239 753.844 l
+S
+newpath
+380.32 755.49 m
+381.453 755.429 l
+S
+newpath
+378.258 748.787 m
+379.39 748.726 l
+S
+newpath
+378.773 750.463 m
+379.905 750.402 l
+S
+newpath
+379.289 752.138 m
+380.421 752.078 l
+S
+newpath
+379.805 753.814 m
+380.937 753.753 l
+S
+newpath
+382.019 755.399 m
+383.151 755.338 l
+S
+newpath
+379.956 748.696 m
+381.088 748.635 l
+S
+newpath
+380.472 750.372 m
+381.604 750.311 l
+S
+newpath
+380.987 752.047 m
+382.12 751.986 l
+S
+newpath
+381.503 753.723 m
+382.635 753.662 l
+S
+newpath
+383.717 755.307 m
+384.849 755.247 l
+S
+newpath
+381.654 748.605 m
+382.786 748.544 l
+S
+newpath
+382.17 750.28 m
+383.302 750.22 l
+S
+newpath
+382.686 751.956 m
+383.818 751.895 l
+S
+newpath
+383.201 753.632 m
+384.334 753.571 l
+S
+newpath
+385.416 755.216 m
+386.548 755.155 l
+S
+newpath
+383.353 748.514 m
+384.485 748.453 l
+S
+newpath
+383.868 750.189 m
+385.001 750.129 l
+S
+newpath
+384.384 751.865 m
+385.516 751.804 l
+S
+newpath
+384.9 753.541 m
+386.032 753.48 l
+S
+newpath
+387.114 755.125 m
+388.246 755.064 l
+S
+newpath
+385.051 748.423 m
+386.183 748.362 l
+S
+newpath
+385.567 750.098 m
+386.699 750.037 l
+S
+newpath
+386.082 751.774 m
+387.215 751.713 l
+S
+newpath
+386.598 753.449 m
+387.73 753.389 l
+S
+newpath
+388.812 755.034 m
+389.944 754.973 l
+S
+newpath
+386.749 748.331 m
+387.882 748.271 l
+S
+newpath
+387.265 750.007 m
+388.397 749.946 l
+S
+newpath
+387.781 751.683 m
+388.913 751.622 l
+S
+newpath
+388.296 753.358 m
+389.429 753.298 l
+S
+newpath
+390.511 754.943 m
+391.643 754.882 l
+S
+newpath
+388.448 748.24 m
+389.58 748.18 l
+S
+newpath
+388.963 749.916 m
+390.096 749.855 l
+S
+newpath
+389.479 751.592 m
+390.611 751.531 l
+S
+newpath
+389.995 753.267 m
+391.127 753.206 l
+S
+newpath
+392.209 754.852 m
+393.341 754.791 l
+S
+newpath
+390.146 748.149 m
+391.278 748.088 l
+S
+newpath
+390.662 749.825 m
+391.794 749.764 l
+S
+newpath
+391.177 751.5 m
+392.31 751.44 l
+S
+newpath
+391.693 753.176 m
+392.825 753.115 l
+S
+newpath
+393.907 754.761 m
+395.04 754.7 l
+S
+newpath
+391.844 748.058 m
+392.977 747.997 l
+S
+newpath
+392.36 749.734 m
+393.492 749.673 l
+S
+newpath
+392.876 751.409 m
+394.008 751.348 l
+S
+newpath
+393.392 753.085 m
+394.524 753.024 l
+S
+newpath
+395.606 754.669 m
+396.738 754.609 l
+S
+newpath
+393.543 747.967 m
+394.675 747.906 l
+S
+newpath
+394.058 749.642 m
+395.191 749.582 l
+S
+newpath
+394.574 751.318 m
+395.706 751.257 l
+S
+newpath
+395.09 752.994 m
+396.222 752.933 l
+S
+newpath
+397.304 754.578 m
+398.436 754.517 l
+S
+newpath
+395.241 747.876 m
+396.373 747.815 l
+S
+newpath
+395.757 749.551 m
+396.889 749.491 l
+S
+newpath
+396.273 751.227 m
+397.405 751.166 l
+S
+newpath
+396.788 752.903 m
+397.92 752.842 l
+S
+newpath
+399.002 754.487 m
+400.135 754.426 l
+S
+newpath
+408.06 754.001 m
+409.192 753.94 l
+S
+newpath
+396.939 747.785 m
+398.072 747.724 l
+S
+newpath
+405.997 747.298 m
+407.129 747.238 l
+S
+newpath
+397.455 749.46 m
+398.587 749.399 l
+S
+newpath
+406.513 748.974 m
+407.645 748.913 l
+S
+newpath
+397.971 751.136 m
+399.103 751.075 l
+S
+newpath
+407.029 750.65 m
+408.161 750.589 l
+S
+newpath
+398.487 752.811 m
+399.619 752.751 l
+S
+newpath
+407.544 752.325 m
+408.677 752.265 l
+S
+newpath
+400.701 754.396 m
+401.833 754.335 l
+S
+newpath
+409.759 753.91 m
+410.891 753.849 l
+S
+newpath
+398.638 747.693 m
+399.77 747.633 l
+S
+newpath
+407.696 747.207 m
+408.828 747.147 l
+S
+newpath
+399.153 749.369 m
+400.286 749.308 l
+S
+newpath
+408.211 748.883 m
+409.344 748.822 l
+S
+newpath
+399.669 751.045 m
+400.801 750.984 l
+S
+newpath
+408.727 750.559 m
+409.859 750.498 l
+S
+newpath
+400.185 752.72 m
+401.317 752.66 l
+S
+newpath
+409.243 752.234 m
+410.375 752.173 l
+S
+newpath
+402.399 754.305 m
+403.531 754.244 l
+S
+newpath
+411.457 753.819 m
+412.589 753.758 l
+S
+newpath
+400.336 747.602 m
+401.468 747.542 l
+S
+newpath
+409.394 747.116 m
+410.526 747.055 l
+S
+newpath
+400.852 749.278 m
+401.984 749.217 l
+S
+newpath
+409.91 748.792 m
+411.042 748.731 l
+S
+newpath
+401.368 750.954 m
+402.5 750.893 l
+S
+newpath
+410.425 750.467 m
+411.558 750.407 l
+S
+newpath
+401.883 752.629 m
+403.016 752.568 l
+S
+newpath
+410.941 752.143 m
+412.073 752.082 l
+S
+newpath
+404.097 754.214 m
+405.23 754.153 l
+S
+newpath
+413.155 753.728 m
+414.287 753.667 l
+S
+newpath
+402.034 747.511 m
+403.167 747.45 l
+S
+newpath
+411.092 747.025 m
+412.225 746.964 l
+S
+newpath
+402.55 749.187 m
+403.682 749.126 l
+S
+newpath
+411.608 748.701 m
+412.74 748.64 l
+S
+newpath
+403.066 750.862 m
+404.198 750.802 l
+S
+newpath
+412.124 750.376 m
+413.256 750.316 l
+S
+newpath
+403.582 752.538 m
+404.714 752.477 l
+S
+newpath
+412.64 752.052 m
+413.772 751.991 l
+S
+newpath
+382.949 634.962 m
+385.783 632.127 l
+408.461 632.127 l
+411.295 634.962 l
+closepath
+0.8 0.8 0.8 rgb
+F
+382.949 634.962 m
+385.783 632.127 l
+408.461 632.127 l
+411.295 634.962 l
+0 0 0 rgb
+S
+[34.0158 0 0 -28.3465 380.114 663.308] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 382.949 660.474] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 377.612 630.348] rect
+S
+newpath
+378.622 628.022 m
+379.754 627.961 l
+S
+newpath
+376.559 621.319 m
+377.691 621.259 l
+S
+newpath
+377.075 622.995 m
+378.207 622.934 l
+S
+newpath
+377.591 624.671 m
+378.723 624.61 l
+S
+newpath
+378.106 626.346 m
+379.239 626.285 l
+S
+newpath
+380.32 627.931 m
+381.453 627.87 l
+S
+newpath
+378.258 621.228 m
+379.39 621.167 l
+S
+newpath
+378.773 622.904 m
+379.905 622.843 l
+S
+newpath
+379.289 624.579 m
+380.421 624.519 l
+S
+newpath
+379.805 626.255 m
+380.937 626.194 l
+S
+newpath
+382.019 627.84 m
+383.151 627.779 l
+S
+newpath
+379.956 621.137 m
+381.088 621.076 l
+S
+newpath
+380.472 622.813 m
+381.604 622.752 l
+S
+newpath
+380.987 624.488 m
+382.12 624.427 l
+S
+newpath
+381.503 626.164 m
+382.635 626.103 l
+S
+newpath
+383.717 627.748 m
+384.849 627.688 l
+S
+newpath
+381.654 621.046 m
+382.786 620.985 l
+S
+newpath
+382.17 622.721 m
+383.302 622.661 l
+S
+newpath
+382.686 624.397 m
+383.818 624.336 l
+S
+newpath
+383.201 626.073 m
+384.334 626.012 l
+S
+newpath
+385.416 627.657 m
+386.548 627.596 l
+S
+newpath
+383.353 620.955 m
+384.485 620.894 l
+S
+newpath
+383.868 622.63 m
+385.001 622.57 l
+S
+newpath
+384.384 624.306 m
+385.516 624.245 l
+S
+newpath
+384.9 625.982 m
+386.032 625.921 l
+S
+newpath
+387.114 627.566 m
+388.246 627.505 l
+S
+newpath
+385.051 620.864 m
+386.183 620.803 l
+S
+newpath
+385.567 622.539 m
+386.699 622.478 l
+S
+newpath
+386.082 624.215 m
+387.215 624.154 l
+S
+newpath
+386.598 625.89 m
+387.73 625.83 l
+S
+newpath
+388.812 627.475 m
+389.944 627.414 l
+S
+newpath
+386.749 620.772 m
+387.882 620.712 l
+S
+newpath
+387.265 622.448 m
+388.397 622.387 l
+S
+newpath
+387.781 624.124 m
+388.913 624.063 l
+S
+newpath
+388.296 625.799 m
+389.429 625.739 l
+S
+newpath
+390.511 627.384 m
+391.643 627.323 l
+S
+newpath
+388.448 620.681 m
+389.58 620.621 l
+S
+newpath
+388.963 622.357 m
+390.096 622.296 l
+S
+newpath
+389.479 624.033 m
+390.611 623.972 l
+S
+newpath
+389.995 625.708 m
+391.127 625.647 l
+S
+newpath
+392.209 627.293 m
+393.341 627.232 l
+S
+newpath
+390.146 620.59 m
+391.278 620.529 l
+S
+newpath
+390.662 622.266 m
+391.794 622.205 l
+S
+newpath
+391.177 623.941 m
+392.31 623.881 l
+S
+newpath
+391.693 625.617 m
+392.825 625.556 l
+S
+newpath
+393.907 627.202 m
+395.04 627.141 l
+S
+newpath
+391.844 620.499 m
+392.977 620.438 l
+S
+newpath
+392.36 622.175 m
+393.492 622.114 l
+S
+newpath
+392.876 623.85 m
+394.008 623.789 l
+S
+newpath
+393.392 625.526 m
+394.524 625.465 l
+S
+newpath
+395.606 627.11 m
+396.738 627.05 l
+S
+newpath
+393.543 620.408 m
+394.675 620.347 l
+S
+newpath
+394.058 622.083 m
+395.191 622.023 l
+S
+newpath
+394.574 623.759 m
+395.706 623.698 l
+S
+newpath
+395.09 625.435 m
+396.222 625.374 l
+S
+newpath
+397.304 627.019 m
+398.436 626.958 l
+S
+newpath
+395.241 620.317 m
+396.373 620.256 l
+S
+newpath
+395.757 621.992 m
+396.889 621.932 l
+S
+newpath
+396.273 623.668 m
+397.405 623.607 l
+S
+newpath
+396.788 625.344 m
+397.92 625.283 l
+S
+newpath
+399.002 626.928 m
+400.135 626.867 l
+S
+newpath
+408.06 626.442 m
+409.192 626.381 l
+S
+newpath
+396.939 620.226 m
+398.072 620.165 l
+S
+newpath
+405.997 619.739 m
+407.129 619.679 l
+S
+newpath
+397.455 621.901 m
+398.587 621.84 l
+S
+newpath
+406.513 621.415 m
+407.645 621.354 l
+S
+newpath
+397.971 623.577 m
+399.103 623.516 l
+S
+newpath
+407.029 623.091 m
+408.161 623.03 l
+S
+newpath
+398.487 625.252 m
+399.619 625.192 l
+S
+newpath
+407.544 624.766 m
+408.677 624.706 l
+S
+newpath
+400.701 626.837 m
+401.833 626.776 l
+S
+newpath
+409.759 626.351 m
+410.891 626.29 l
+S
+newpath
+398.638 620.134 m
+399.77 620.074 l
+S
+newpath
+407.696 619.648 m
+408.828 619.588 l
+S
+newpath
+399.153 621.81 m
+400.286 621.749 l
+S
+newpath
+408.211 621.324 m
+409.344 621.263 l
+S
+newpath
+399.669 623.486 m
+400.801 623.425 l
+S
+newpath
+408.727 623 m
+409.859 622.939 l
+S
+newpath
+400.185 625.161 m
+401.317 625.101 l
+S
+newpath
+409.243 624.675 m
+410.375 624.614 l
+S
+newpath
+402.399 626.746 m
+403.531 626.685 l
+S
+newpath
+411.457 626.26 m
+412.589 626.199 l
+S
+newpath
+400.336 620.043 m
+401.468 619.983 l
+S
+newpath
+409.394 619.557 m
+410.526 619.496 l
+S
+newpath
+400.852 621.719 m
+401.984 621.658 l
+S
+newpath
+409.91 621.233 m
+411.042 621.172 l
+S
+newpath
+401.368 623.395 m
+402.5 623.334 l
+S
+newpath
+410.425 622.908 m
+411.558 622.848 l
+S
+newpath
+401.883 625.07 m
+403.016 625.009 l
+S
+newpath
+410.941 624.584 m
+412.073 624.523 l
+S
+newpath
+404.097 626.655 m
+405.23 626.594 l
+S
+newpath
+413.155 626.169 m
+414.287 626.108 l
+S
+newpath
+402.034 619.952 m
+403.167 619.891 l
+S
+newpath
+411.092 619.466 m
+412.225 619.405 l
+S
+newpath
+402.55 621.628 m
+403.682 621.567 l
+S
+newpath
+411.608 621.142 m
+412.74 621.081 l
+S
+newpath
+403.066 623.303 m
+404.198 623.243 l
+S
+newpath
+412.124 622.817 m
+413.256 622.757 l
+S
+newpath
+403.582 624.979 m
+404.714 624.918 l
+S
+newpath
+412.64 624.493 m
+413.772 624.432 l
+S
+[42.5197 0 0 -56.6929 311.811 793.701] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 793.701 m
+325.984 745.512 l
+311.811 745.512 l
+S
+[-5.66928 0 0 2.83466 354.331 782.362] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 782.362 m
+354.331 782.362 l
+351.496 785.197 l
+325.984 785.197 l
+325.984 782.362 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 782.362 m
+354.331 782.362 l
+351.496 785.197 l
+325.984 785.197 l
+325.984 782.362 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 354.331 779.528] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 779.528 m
+354.331 779.528 l
+351.496 782.362 l
+325.984 782.362 l
+325.984 779.528 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 779.528 m
+354.331 779.528 l
+351.496 782.362 l
+325.984 782.362 l
+325.984 779.528 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 354.331 776.693] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 776.693 m
+354.331 776.693 l
+351.496 779.528 l
+325.984 779.528 l
+325.984 776.693 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 776.693 m
+354.331 776.693 l
+351.496 779.528 l
+325.984 779.528 l
+325.984 776.693 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[2.83464 0 0 -2.83466 317.48 788.031] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-2.83464 1.04143e-15 1.04144e-15 2.83466 320.315 788.031] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[2.83463 0 0 -5.66931 317.48 790.866] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[42.5197 0 0 -56.6929 311.811 666.142] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 666.142 m
+325.984 617.953 l
+311.811 617.953 l
+S
+[-5.66928 0 0 2.83466 354.331 654.803] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 654.803 m
+354.331 654.803 l
+351.496 657.638 l
+325.984 657.638 l
+325.984 654.803 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 654.803 m
+354.331 654.803 l
+351.496 657.638 l
+325.984 657.638 l
+325.984 654.803 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 354.331 651.969] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 651.969 m
+354.331 651.969 l
+351.496 654.803 l
+325.984 654.803 l
+325.984 651.969 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 651.969 m
+354.331 651.969 l
+351.496 654.803 l
+325.984 654.803 l
+325.984 651.969 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 354.331 649.134] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+325.984 649.134 m
+354.331 649.134 l
+351.496 651.969 l
+325.984 651.969 l
+325.984 649.134 l
+closepath
+0.5 0.5 0.5 rgb
+F
+325.984 649.134 m
+354.331 649.134 l
+351.496 651.969 l
+325.984 651.969 l
+325.984 649.134 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[2.83464 0 0 -2.83466 317.48 660.472] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-2.83464 1.04143e-15 1.04144e-15 2.83466 320.315 660.472] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[2.83463 0 0 -5.66931 317.48 663.307] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[42.5197 0 0 -56.6929 198.425 793.701] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 793.701 m
+212.598 745.512 l
+198.425 745.512 l
+S
+[-5.66928 0 0 2.83466 240.945 782.362] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 782.362 m
+240.945 782.362 l
+238.11 785.197 l
+212.598 785.197 l
+212.598 782.362 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 782.362 m
+240.945 782.362 l
+238.11 785.197 l
+212.598 785.197 l
+212.598 782.362 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 240.945 779.528] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 779.528 m
+240.945 779.528 l
+238.11 782.362 l
+212.598 782.362 l
+212.598 779.528 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 779.528 m
+240.945 779.528 l
+238.11 782.362 l
+212.598 782.362 l
+212.598 779.528 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 240.945 776.693] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 776.693 m
+240.945 776.693 l
+238.11 779.528 l
+212.598 779.528 l
+212.598 776.693 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 776.693 m
+240.945 776.693 l
+238.11 779.528 l
+212.598 779.528 l
+212.598 776.693 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[2.83464 0 0 -2.83466 204.094 788.031] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-2.83464 1.04143e-15 1.04144e-15 2.83466 206.929 788.031] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[2.83463 0 0 -5.66931 204.094 790.866] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[42.5197 0 0 -56.6929 198.425 666.142] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 666.142 m
+212.598 617.953 l
+198.425 617.953 l
+S
+[-5.66928 0 0 2.83466 240.945 654.803] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 654.803 m
+240.945 654.803 l
+238.11 657.638 l
+212.598 657.638 l
+212.598 654.803 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 654.803 m
+240.945 654.803 l
+238.11 657.638 l
+212.598 657.638 l
+212.598 654.803 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 240.945 651.969] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 651.969 m
+240.945 651.969 l
+238.11 654.803 l
+212.598 654.803 l
+212.598 651.969 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 651.969 m
+240.945 651.969 l
+238.11 654.803 l
+212.598 654.803 l
+212.598 651.969 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[-5.66928 0 0 2.83466 240.945 649.134] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+212.598 649.134 m
+240.945 649.134 l
+238.11 651.969 l
+212.598 651.969 l
+212.598 649.134 l
+closepath
+0.5 0.5 0.5 rgb
+F
+212.598 649.134 m
+240.945 649.134 l
+238.11 651.969 l
+212.598 651.969 l
+212.598 649.134 l
+0 0 0 rgb
+0.992126 w
+2 j
+S
+[2.83464 0 0 -2.83466 204.094 660.472] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-2.83464 1.04143e-15 1.04144e-15 2.83466 206.929 660.472] 1.57079 4.71239 0 ellipse
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[2.83463 0 0 -5.66931 204.094 663.307] rect
+gsave
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 11 sf
+(Node1)
+205 725 T
+(Node1)
+205 597 T
+(Node2)
+319 725 T
+(Node2)
+319 597 T
+(heartbeat)
+257 781 T
+newpath
+306.142 776.693 m
+246.614 776.693 l
+S
+pusht
+246.614 776.693 translate
+180 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+334.489 799.371 m
+334.489 810.71 l
+396.851 810.71 l
+396.851 799.371 l
+0.992126 w
+S
+pusht
+334.489 799.371 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+pusht
+396.851 799.371 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+218.268 671.812 m
+218.268 683.151 l
+396.851 683.151 l
+396.851 671.812 l
+S
+pusht
+218.268 671.812 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+pusht
+396.851 671.812 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[8.50394 0 0 -8.50394 195.591 813.545] 3.1416 4.71239 0 ellipse
+0.283465 w
+S
+[-3.8147e-05 -8.50394 -8.50394 3.8147e-05 422.363 813.545] 3.1416 4.71239 0 ellipse
+S
+[-8.50394 0.000190735 0.000190735 8.50394 422.363 725.67] 3.1416 4.71239 0 ellipse
+S
+[0.000160218 8.50394 8.50394 -0.000160218 195.591 725.67] 3.1416 4.71239 0 ellipse
+S
+newpath
+187.087 813.545 m
+187.087 725.67 l
+S
+newpath
+430.867 813.545 m
+430.867 725.67 l
+S
+newpath
+195.591 822.049 m
+422.363 822.049 l
+S
+newpath
+195.591 717.166 m
+422.363 717.166 l
+S
+[8.50394 0 0 -8.50394 195.591 685.985] 3.1416 4.71239 0 ellipse
+S
+[-3.8147e-05 -8.50394 -8.50394 3.8147e-05 422.363 685.985] 3.1416 4.71239 0 ellipse
+S
+[-8.50394 0.000190735 0.000190735 8.50394 422.363 598.111] 3.1416 4.71239 0 ellipse
+S
+[0.000160218 8.50394 8.50394 -0.000160218 195.591 598.111] 3.1416 4.71239 0 ellipse
+S
+newpath
+187.087 685.985 m
+187.087 598.111 l
+S
+newpath
+430.867 685.985 m
+430.867 598.111 l
+S
+newpath
+195.591 694.489 m
+422.363 694.489 l
+S
+newpath
+195.591 589.607 m
+422.363 589.607 l
+S
+(Client)
+383 731 T
+(Client)
+383 603 T
+newpath
+181.418 765.356 m
+141.732 751.182 141.732 668.977 170.079 654.804 c
+0.76 0.707 1 rgb
+11.3386 w
+1 J
+S
+newpath
+436.536 643.466 m
+476.222 657.64 476.221 739.844 447.875 754.017 c
+S
+newpath
+187.087 643.083 m
+173.251 666.143 l
+160.338 645.85 l
+187.087 643.083 l
+closepath
+F
+newpath
+430.867 765.738 m
+444.703 742.679 l
+457.616 762.971 l
+430.867 765.738 l
+closepath
+F
+[14.1732 0 0 -11.3386 150.236 711.497] rect
+1 1 1 rgb
+F
+[-14.1732 1.73572e-15 1.38857e-15 11.3386 467.717 700.159] rect
+F
+(Failover)
+152 701 0 0 0 rgb
+T
+(Failback)
+427 701 T
+[26.9291 0 0 -26.9291 333.071 636.379] ellipse
+4.8189 w
+0 J
+S
+newpath
+351.922 655.23 m
+314.221 617.529 l
+4.8189 w
+1 j
+S
+[26.9291 0 0 -26.9291 333.071 636.379] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+351.922 655.23 m
+314.221 617.529 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 2095 a
+ currentpoint currentpoint translate 1 0.81702 div 1 0.81702 div scale
+neg exch neg exch translate
+ 382 2095 a 785 2291 a Fp(Abbildung)i(2.1:)40
+b(prinzipielle)32 b(F)-8 b(unktion)32 b(eines)e(HA-Clusters)382
+2566 y Fo(2.3.2)112 b(HA-Cluster)382 2787 y Fp(Das)35
+b(Prinzip,)k(nac)m(h)e(dem)f(die)g(hier)g(b)s(espro)s(c)m(henen)h
+(HA-Cluster)f(arb)s(eiten,)i(ist)d(der)382 2900 y(sogenann)m(te)h(F)-8
+b(ailo)m(v)m(er.)55 b(Dab)s(ei)34 b(\374b)s(ernimm)m(t)i(ein)f(Knoten)g
+(im)g(Cluster)g(die)f(gesam)m(te)382 3013 y(Arb)s(eit)e(des)g
+(Clusters.)47 b(Die)32 b(einzige)i(Aufgab)s(e)e(des)g(v)m(erbleib)s
+(enden)i(Knotens)f(ist)f(es,)382 3126 y(st\344ndig)38
+b(zu)f(\374b)s(erpr\374fen,)j(ob)e(der)f(aktiv)m(e)h(Knoten)g(no)s(c)m
+(h)g(funktioniert.)63 b(Wird)37 b(der)382 3239 y(Ausfall)h(des)h(aktiv)
+m(en)g(Knotens)h(festgestellt,)h(wird)e(die)h(Arb)s(eit)e(des)h
+(Clusters)g(v)m(on)382 3352 y(n)m(un)i(an)g(durc)m(h)h(den)f(v)m
+(erbleib)s(enden)h(Knoten)f(\374b)s(ernommen.)73 b(In)40
+b(Abbildung)h(2.1)382 3465 y(sind)30 b(diese)h(V)-8 b(org\344nge)31
+b(graphisc)m(h)h(dargestellt.)382 3627 y(HA-Cluster)c(w)m(erden)h
+(eingesetzt,)g(um)g(geplan)m(te)g(Un)m(terbrec)m(h)m(ungen)i(und)e
+(\(nic)m(h)m(t)g(ge-)382 3740 y(plan)m(te\))35 b(Ausf\344lle)f
+(abzufangen.)53 b(Ein)34 b(Punkt,)i(der)e(zur)g(Beliebtheit)i(dieser)e
+(Cluster)382 3853 y(sic)m(her)f(b)s(eigetragen)h(hat,)f(ist,)g(da\377)g
+(nic)m(h)m(t)h(n)m(ur)f(Ausf\344lle)f(v)m(on)h(Hardw)m(arek)m(omp)s
+(onen-)382 3966 y(ten,)g(sondern)g(auc)m(h)h(viele)e(Ausf\344lle)g(auf)
+h(Grund)g(v)m(on)f(F)-8 b(ehlern)34 b(in)f(der)f(Soft)m(w)m(are)j
+(f\374r)382 4079 y(den)c(An)m(w)m(ender)h(transparen)m(t)g(w)m(erden.)
+382 4242 y(Die)f(Wirkung)g(v)m(on)h(Soft)m(w)m(are-F)-8
+b(ehler)1704 4209 y Fg(1)1777 4242 y Fp(die)31 b(n)m(ur)h(un)m(ter)g
+(ganz)g(b)s(estimm)m(ten)g(Umst\344n-)382 4355 y(den)g(ein)m(treten,)i
+(so)s(da\377)d(es)g(fast)g(nic)m(h)m(t)j(m\366glic)m(h)f(ist,)f(diese)f
+(F)-8 b(ehler)33 b(zu)f(repro)s(duzieren)382 4468 y(und)27
+b(zu)f(b)s(eheb)s(en,)h(k)m(\366nnen)g(auf)g(Grund)f(genau)h(dieser)g
+(Eigensc)m(haft)g(v)m(on)g(einem)g(HA-)382 4581 y(Cluster,)42
+b(der)e(die)g(Soft)m(w)m(are)h(ja)e(einfac)m(h)h(no)s(c)m(h)g(einmal)h
+(laufen)e(l\344\377t,)k(ausgeglic)m(hen)382 4694 y(w)m(erden.)c(Bei)22
+b(der)g(erneuten)i(Ausf\374hrung)e(der)g(Soft)m(w)m(are)i(ist)e(es)f
+(sehr)h(w)m(ahrsc)m(heinlic)m(h,)382 4806 y(da\377)32
+b(P)m(ak)m(ete)i(v)m(om)f(Netzw)m(erk)g(in)f(einer)h(anderen)g
+(Reihenfolge)g(empfangen)g(w)m(erden,)382 4919 y(und)e(da\377)f(daher)i
+(der)e(F)-8 b(ehler)32 b(nic)m(h)m(t)g(auftritt.)41 b([P\03498)q(,)30
+b(Seite)h(391])p 382 4981 1196 4 v 486 5035 a Ff(1)520
+5066 y Fe(P\034ster)38 b(b)r(ezeic)n(hnet)f(diese)h(F)-6
+b(ehler)37 b(als)h(Heisen)n(bugs.)70 b(Streng)37 b(genommen)e(sind)i(n)
+n(ur)g(solc)n(he)382 5158 y(F)-6 b(ehler,)39 b(die)e(b)r(eim)f
+(\022Betrac)n(h)n(ten\021,)j(also)f(dem)d(Ausf\374hren)g(mit)h(einem)g
+(Debugger)g(v)n(ersc)n(h)n(winden)382 5249 y(o)r(der)26
+b(ersc)n(heinen,)g(Heisen)n(bugs.)1831 5622 y Fp(11)p
+eop
+%%Page: 12 14
+12 13 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 2604 a
+ currentpoint currentpoint translate 0.81888 0.81888 scale neg exch
+neg exch translate
+ 382 2604 a @beginspecial 64 @llx 469 @lly
+502 @urx 785 @ury 4380 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//shared-disk.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Tue Apr 25 12:28:50 2000
+%%Title: shared-disk.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 64 469 502 785
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[141.733 0 0 -34.0158 70.8662 694.489] rect
+0.848 0.835 0.949 rgb
+F
+[141.733 0 0 -34.0158 354.331 694.489] rect
+F
+[62.3623 0 0 -36.8505 70.8662 660.473] rect
+F
+[62.3623 0 0 -42.5198 433.701 660.473] rect
+F
+newpath
+225.95 493.23 m
+228.784 490.395 l
+251.462 490.395 l
+254.296 493.23 l
+closepath
+0.8 0.8 0.8 rgb
+F
+225.95 493.23 m
+228.784 490.395 l
+251.462 490.395 l
+254.296 493.23 l
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[34.0158 0 0 -28.3465 223.115 521.576] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 225.95 518.742] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 220.613 488.616] rect
+S
+newpath
+221.623 486.29 m
+222.755 486.229 l
+S
+newpath
+219.56 479.587 m
+220.692 479.527 l
+S
+newpath
+220.076 481.263 m
+221.208 481.202 l
+S
+newpath
+220.592 482.939 m
+221.724 482.878 l
+S
+newpath
+221.107 484.614 m
+222.24 484.553 l
+S
+newpath
+223.321 486.199 m
+224.454 486.138 l
+S
+newpath
+221.259 479.496 m
+222.391 479.435 l
+S
+newpath
+221.774 481.172 m
+222.906 481.111 l
+S
+newpath
+222.29 482.847 m
+223.422 482.787 l
+S
+newpath
+222.806 484.523 m
+223.938 484.462 l
+S
+newpath
+225.02 486.108 m
+226.152 486.047 l
+S
+newpath
+222.957 479.405 m
+224.089 479.344 l
+S
+newpath
+223.473 481.081 m
+224.605 481.02 l
+S
+newpath
+223.988 482.756 m
+225.121 482.695 l
+S
+newpath
+224.504 484.432 m
+225.636 484.371 l
+S
+newpath
+226.718 486.016 m
+227.85 485.956 l
+S
+newpath
+224.655 479.314 m
+225.787 479.253 l
+S
+newpath
+225.171 480.989 m
+226.303 480.929 l
+S
+newpath
+225.687 482.665 m
+226.819 482.604 l
+S
+newpath
+226.202 484.341 m
+227.335 484.28 l
+S
+newpath
+228.417 485.925 m
+229.549 485.864 l
+S
+newpath
+226.354 479.223 m
+227.486 479.162 l
+S
+newpath
+226.869 480.898 m
+228.002 480.838 l
+S
+newpath
+227.385 482.574 m
+228.517 482.513 l
+S
+newpath
+227.901 484.25 m
+229.033 484.189 l
+S
+newpath
+230.115 485.834 m
+231.247 485.773 l
+S
+newpath
+228.052 479.132 m
+229.184 479.071 l
+S
+newpath
+228.568 480.807 m
+229.7 480.746 l
+S
+newpath
+229.083 482.483 m
+230.216 482.422 l
+S
+newpath
+229.599 484.158 m
+230.731 484.098 l
+S
+newpath
+231.813 485.743 m
+232.945 485.682 l
+S
+newpath
+229.75 479.04 m
+230.883 478.98 l
+S
+newpath
+230.266 480.716 m
+231.398 480.655 l
+S
+newpath
+230.782 482.392 m
+231.914 482.331 l
+S
+newpath
+231.297 484.067 m
+232.43 484.007 l
+S
+newpath
+233.512 485.652 m
+234.644 485.591 l
+S
+newpath
+231.449 478.949 m
+232.581 478.889 l
+S
+newpath
+231.964 480.625 m
+233.097 480.564 l
+S
+newpath
+232.48 482.301 m
+233.612 482.24 l
+S
+newpath
+232.996 483.976 m
+234.128 483.915 l
+S
+newpath
+235.21 485.561 m
+236.342 485.5 l
+S
+newpath
+233.147 478.858 m
+234.279 478.797 l
+S
+newpath
+233.663 480.534 m
+234.795 480.473 l
+S
+newpath
+234.178 482.209 m
+235.311 482.149 l
+S
+newpath
+234.694 483.885 m
+235.826 483.824 l
+S
+newpath
+236.908 485.47 m
+238.041 485.409 l
+S
+newpath
+234.845 478.767 m
+235.978 478.706 l
+S
+newpath
+235.361 480.443 m
+236.493 480.382 l
+S
+newpath
+235.877 482.118 m
+237.009 482.057 l
+S
+newpath
+236.393 483.794 m
+237.525 483.733 l
+S
+newpath
+238.607 485.378 m
+239.739 485.318 l
+S
+newpath
+236.544 478.676 m
+237.676 478.615 l
+S
+newpath
+237.059 480.351 m
+238.192 480.291 l
+S
+newpath
+237.575 482.027 m
+238.707 481.966 l
+S
+newpath
+238.091 483.703 m
+239.223 483.642 l
+S
+newpath
+240.305 485.287 m
+241.437 485.226 l
+S
+newpath
+238.242 478.585 m
+239.374 478.524 l
+S
+newpath
+238.758 480.26 m
+239.89 480.2 l
+S
+newpath
+239.274 481.936 m
+240.406 481.875 l
+S
+newpath
+239.789 483.612 m
+240.921 483.551 l
+S
+newpath
+242.003 485.196 m
+243.136 485.135 l
+S
+newpath
+251.061 484.71 m
+252.193 484.649 l
+S
+newpath
+239.94 478.494 m
+241.073 478.433 l
+S
+newpath
+248.998 478.007 m
+250.13 477.947 l
+S
+newpath
+240.456 480.169 m
+241.588 480.108 l
+S
+newpath
+249.514 479.683 m
+250.646 479.622 l
+S
+newpath
+240.972 481.845 m
+242.104 481.784 l
+S
+newpath
+250.03 481.359 m
+251.162 481.298 l
+S
+newpath
+241.488 483.52 m
+242.62 483.46 l
+S
+newpath
+250.545 483.034 m
+251.678 482.974 l
+S
+newpath
+243.702 485.105 m
+244.834 485.044 l
+S
+newpath
+252.76 484.619 m
+253.892 484.558 l
+S
+newpath
+241.639 478.402 m
+242.771 478.342 l
+S
+newpath
+250.697 477.916 m
+251.829 477.856 l
+S
+newpath
+242.154 480.078 m
+243.287 480.017 l
+S
+newpath
+251.212 479.592 m
+252.345 479.531 l
+S
+newpath
+242.67 481.754 m
+243.802 481.693 l
+S
+newpath
+251.728 481.268 m
+252.86 481.207 l
+S
+newpath
+243.186 483.429 m
+244.318 483.369 l
+S
+newpath
+252.244 482.943 m
+253.376 482.882 l
+S
+newpath
+245.4 485.014 m
+246.532 484.953 l
+S
+newpath
+254.458 484.528 m
+255.59 484.467 l
+S
+newpath
+243.337 478.311 m
+244.469 478.251 l
+S
+newpath
+252.395 477.825 m
+253.527 477.764 l
+S
+newpath
+243.853 479.987 m
+244.985 479.926 l
+S
+newpath
+252.911 479.501 m
+254.043 479.44 l
+S
+newpath
+244.369 481.663 m
+245.501 481.602 l
+S
+newpath
+253.426 481.176 m
+254.559 481.116 l
+S
+newpath
+244.884 483.338 m
+246.017 483.277 l
+S
+newpath
+253.942 482.852 m
+255.074 482.791 l
+S
+newpath
+247.098 484.923 m
+248.231 484.862 l
+S
+newpath
+256.156 484.437 m
+257.288 484.376 l
+S
+newpath
+245.035 478.22 m
+246.168 478.159 l
+S
+newpath
+254.093 477.734 m
+255.226 477.673 l
+S
+newpath
+245.551 479.896 m
+246.683 479.835 l
+S
+newpath
+254.609 479.41 m
+255.741 479.349 l
+S
+newpath
+246.067 481.571 m
+247.199 481.511 l
+S
+newpath
+255.125 481.085 m
+256.257 481.025 l
+S
+newpath
+246.583 483.247 m
+247.715 483.186 l
+S
+newpath
+255.641 482.761 m
+256.773 482.7 l
+S
+newpath
+308.701 493.23 m
+311.535 490.395 l
+334.213 490.395 l
+337.047 493.23 l
+closepath
+0.8 0.8 0.8 rgb
+F
+308.701 493.23 m
+311.535 490.395 l
+334.213 490.395 l
+337.047 493.23 l
+0 0 0 rgb
+S
+[34.0158 0 0 -28.3465 305.866 521.576] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 308.701 518.742] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 303.364 488.616] rect
+S
+newpath
+304.374 486.29 m
+305.506 486.229 l
+S
+newpath
+302.311 479.587 m
+303.443 479.527 l
+S
+newpath
+302.827 481.263 m
+303.959 481.202 l
+S
+newpath
+303.343 482.939 m
+304.475 482.878 l
+S
+newpath
+303.858 484.614 m
+304.991 484.553 l
+S
+newpath
+306.072 486.199 m
+307.205 486.138 l
+S
+newpath
+304.01 479.496 m
+305.142 479.435 l
+S
+newpath
+304.525 481.172 m
+305.657 481.111 l
+S
+newpath
+305.041 482.847 m
+306.173 482.787 l
+S
+newpath
+305.557 484.523 m
+306.689 484.462 l
+S
+newpath
+307.771 486.108 m
+308.903 486.047 l
+S
+newpath
+305.708 479.405 m
+306.84 479.344 l
+S
+newpath
+306.224 481.081 m
+307.356 481.02 l
+S
+newpath
+306.739 482.756 m
+307.872 482.695 l
+S
+newpath
+307.255 484.432 m
+308.387 484.371 l
+S
+newpath
+309.469 486.016 m
+310.601 485.956 l
+S
+newpath
+307.406 479.314 m
+308.538 479.253 l
+S
+newpath
+307.922 480.989 m
+309.054 480.929 l
+S
+newpath
+308.438 482.665 m
+309.57 482.604 l
+S
+newpath
+308.953 484.341 m
+310.086 484.28 l
+S
+newpath
+311.168 485.925 m
+312.3 485.864 l
+S
+newpath
+309.105 479.223 m
+310.237 479.162 l
+S
+newpath
+309.62 480.898 m
+310.753 480.838 l
+S
+newpath
+310.136 482.574 m
+311.268 482.513 l
+S
+newpath
+310.652 484.25 m
+311.784 484.189 l
+S
+newpath
+312.866 485.834 m
+313.998 485.773 l
+S
+newpath
+310.803 479.132 m
+311.935 479.071 l
+S
+newpath
+311.319 480.807 m
+312.451 480.746 l
+S
+newpath
+311.834 482.483 m
+312.967 482.422 l
+S
+newpath
+312.35 484.158 m
+313.482 484.098 l
+S
+newpath
+314.564 485.743 m
+315.696 485.682 l
+S
+newpath
+312.501 479.04 m
+313.634 478.98 l
+S
+newpath
+313.017 480.716 m
+314.149 480.655 l
+S
+newpath
+313.533 482.392 m
+314.665 482.331 l
+S
+newpath
+314.048 484.067 m
+315.181 484.007 l
+S
+newpath
+316.263 485.652 m
+317.395 485.591 l
+S
+newpath
+314.2 478.949 m
+315.332 478.889 l
+S
+newpath
+314.715 480.625 m
+315.848 480.564 l
+S
+newpath
+315.231 482.301 m
+316.363 482.24 l
+S
+newpath
+315.747 483.976 m
+316.879 483.915 l
+S
+newpath
+317.961 485.561 m
+319.093 485.5 l
+S
+newpath
+315.898 478.858 m
+317.03 478.797 l
+S
+newpath
+316.414 480.534 m
+317.546 480.473 l
+S
+newpath
+316.929 482.209 m
+318.062 482.149 l
+S
+newpath
+317.445 483.885 m
+318.577 483.824 l
+S
+newpath
+319.659 485.47 m
+320.792 485.409 l
+S
+newpath
+317.596 478.767 m
+318.729 478.706 l
+S
+newpath
+318.112 480.443 m
+319.244 480.382 l
+S
+newpath
+318.628 482.118 m
+319.76 482.057 l
+S
+newpath
+319.144 483.794 m
+320.276 483.733 l
+S
+newpath
+321.358 485.378 m
+322.49 485.318 l
+S
+newpath
+319.295 478.676 m
+320.427 478.615 l
+S
+newpath
+319.81 480.351 m
+320.943 480.291 l
+S
+newpath
+320.326 482.027 m
+321.458 481.966 l
+S
+newpath
+320.842 483.703 m
+321.974 483.642 l
+S
+newpath
+323.056 485.287 m
+324.188 485.226 l
+S
+newpath
+320.993 478.585 m
+322.125 478.524 l
+S
+newpath
+321.509 480.26 m
+322.641 480.2 l
+S
+newpath
+322.025 481.936 m
+323.157 481.875 l
+S
+newpath
+322.54 483.612 m
+323.672 483.551 l
+S
+newpath
+324.754 485.196 m
+325.887 485.135 l
+S
+newpath
+333.812 484.71 m
+334.944 484.649 l
+S
+newpath
+322.691 478.494 m
+323.824 478.433 l
+S
+newpath
+331.749 478.007 m
+332.881 477.947 l
+S
+newpath
+323.207 480.169 m
+324.339 480.108 l
+S
+newpath
+332.265 479.683 m
+333.397 479.622 l
+S
+newpath
+323.723 481.845 m
+324.855 481.784 l
+S
+newpath
+332.781 481.359 m
+333.913 481.298 l
+S
+newpath
+324.239 483.52 m
+325.371 483.46 l
+S
+newpath
+333.296 483.034 m
+334.429 482.974 l
+S
+newpath
+326.453 485.105 m
+327.585 485.044 l
+S
+newpath
+335.511 484.619 m
+336.643 484.558 l
+S
+newpath
+324.39 478.402 m
+325.522 478.342 l
+S
+newpath
+333.448 477.916 m
+334.58 477.856 l
+S
+newpath
+324.905 480.078 m
+326.038 480.017 l
+S
+newpath
+333.963 479.592 m
+335.096 479.531 l
+S
+newpath
+325.421 481.754 m
+326.553 481.693 l
+S
+newpath
+334.479 481.268 m
+335.611 481.207 l
+S
+newpath
+325.937 483.429 m
+327.069 483.369 l
+S
+newpath
+334.995 482.943 m
+336.127 482.882 l
+S
+newpath
+328.151 485.014 m
+329.283 484.953 l
+S
+newpath
+337.209 484.528 m
+338.341 484.467 l
+S
+newpath
+326.088 478.311 m
+327.22 478.251 l
+S
+newpath
+335.146 477.825 m
+336.278 477.764 l
+S
+newpath
+326.604 479.987 m
+327.736 479.926 l
+S
+newpath
+335.662 479.501 m
+336.794 479.44 l
+S
+newpath
+327.12 481.663 m
+328.252 481.602 l
+S
+newpath
+336.177 481.176 m
+337.31 481.116 l
+S
+newpath
+327.635 483.338 m
+328.768 483.277 l
+S
+newpath
+336.693 482.852 m
+337.825 482.791 l
+S
+newpath
+329.849 484.923 m
+330.982 484.862 l
+S
+newpath
+338.907 484.437 m
+340.039 484.376 l
+S
+newpath
+327.786 478.22 m
+328.919 478.159 l
+S
+newpath
+336.844 477.734 m
+337.977 477.673 l
+S
+newpath
+328.302 479.896 m
+329.434 479.835 l
+S
+newpath
+337.36 479.41 m
+338.492 479.349 l
+S
+newpath
+328.818 481.571 m
+329.95 481.511 l
+S
+newpath
+337.876 481.085 m
+339.008 481.025 l
+S
+newpath
+329.334 483.247 m
+330.466 483.186 l
+S
+newpath
+338.392 482.761 m
+339.524 482.7 l
+S
+/Times-Roman 12 sf
+(...)
+274 515 T
+(...)
+[1.19434e-15 1 -1 1.19434e-15 100.839 735.074] T
+(...)
+[1.19434e-15 1 -1 1.19434e-15 469.344 735.074] T
+newpath
+223.937 643.466 m
+218.268 637.796 l
+232.441 623.623 l
+274.961 623.623 l
+283.465 615.119 l
+291.969 623.623 l
+1.98425 w
+1 j
+1 J
+S
+newpath
+291.969 623.623 m
+334.489 623.623 l
+348.662 637.796 l
+342.993 643.466 l
+S
+(HP-UX)
+122 674 T
+(HP-UX)
+405 674 T
+newpath
+168.378 595.276 m
+165.544 595.276 l
+165.544 592.442 l
+168.378 592.442 l
+1 w
+0 j
+0 J
+S
+newpath
+158.74 600.945 m
+155.906 600.945 l
+155.906 598.111 l
+158.74 598.111 l
+S
+newpath
+158.74 586.772 m
+167.244 586.772 l
+167.244 581.103 l
+192.757 581.103 l
+192.757 586.772 l
+212.598 586.772 l
+212.598 603.78 l
+158.74 603.78 l
+158.74 609.449 l
+158.74 581.103 l
+closepath
+1 1 1 rgb
+F
+158.74 586.772 m
+167.244 586.772 l
+167.244 581.103 l
+192.757 581.103 l
+192.757 586.772 l
+212.598 586.772 l
+212.598 603.78 l
+158.74 603.78 l
+158.74 609.449 l
+158.74 581.103 l
+0 0 0 rgb
+S
+newpath
+170.078 586.772 m
+170.078 581.103 l
+S
+newpath
+175.748 586.772 m
+175.748 581.103 l
+S
+newpath
+172.914 586.772 m
+172.914 581.103 l
+S
+newpath
+178.583 586.772 m
+178.583 581.103 l
+S
+newpath
+181.418 586.772 m
+181.418 581.103 l
+S
+newpath
+184.253 586.772 m
+184.253 581.103 l
+S
+newpath
+187.087 586.772 m
+187.087 581.103 l
+S
+newpath
+189.921 586.772 m
+189.921 581.103 l
+S
+(NIC)
+172 592 T
+newpath
+366.803 595.276 m
+363.969 595.276 l
+363.969 592.442 l
+366.803 592.442 l
+S
+newpath
+357.165 600.945 m
+354.331 600.945 l
+354.331 598.111 l
+357.165 598.111 l
+S
+newpath
+357.165 586.772 m
+365.669 586.772 l
+365.669 581.103 l
+391.182 581.103 l
+391.182 586.772 l
+411.023 586.772 l
+411.023 603.78 l
+357.165 603.78 l
+357.165 609.449 l
+357.165 581.103 l
+closepath
+1 1 1 rgb
+F
+357.165 586.772 m
+365.669 586.772 l
+365.669 581.103 l
+391.182 581.103 l
+391.182 586.772 l
+411.023 586.772 l
+411.023 603.78 l
+357.165 603.78 l
+357.165 609.449 l
+357.165 581.103 l
+0 0 0 rgb
+S
+newpath
+368.503 586.772 m
+368.503 581.103 l
+S
+newpath
+374.173 586.772 m
+374.173 581.103 l
+S
+newpath
+371.339 586.772 m
+371.339 581.103 l
+S
+newpath
+377.008 586.772 m
+377.008 581.103 l
+S
+newpath
+379.843 586.772 m
+379.843 581.103 l
+S
+newpath
+382.678 586.772 m
+382.678 581.103 l
+S
+newpath
+385.512 586.772 m
+385.512 581.103 l
+S
+newpath
+388.346 586.772 m
+388.346 581.103 l
+S
+(NIC)
+371 592 T
+[56.693 0 0 -28.3465 70.8662 728.505] rect
+S
+[56.693 0 0 -28.3465 70.8662 779.529] rect
+S
+[56.693 0 0 -28.3465 439.371 779.529] rect
+S
+[56.693 0 0 -28.3465 439.371 728.505] rect
+S
+[56.693 0 0 -28.3465 155.906 728.505] rect
+S
+[56.693 0 0 -28.3465 354.331 728.505] rect
+S
+(Package)
+79 711 T
+(Package)
+79 762 T
+(Package)
+447 762 T
+(Package)
+447 711 T
+(MC/S)
+368 711 T
+newpath
+238.111 527.245 m
+238.111 538.583 l
+323.15 538.583 l
+323.15 527.245 l
+S
+newpath
+323.15 538.583 m
+377.008 538.583 l
+377.008 569.765 l
+S
+newpath
+238.111 538.583 m
+178.583 538.583 l
+178.583 569.765 l
+S
+(MC/S)
+170 711 T
+[147.402 0 0 -204.095 351.497 782.363] rect
+0.283465 w
+[1.41733 0.283465 0.283465 0.283465 ] 0 d
+S
+[147.402 0 0 -204.095 68.0316 782.363] rect
+S
+[65.197 0 0 -34.0158 252.284 612.284] rect
+S
+[-28.3465 0 0 7.08663 283.465 588.19] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 283.465 595.277] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 283.465 602.363] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+272 598 T
+[-28.3465 0 0 7.08663 99.2128 588.19] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 99.2128 595.277] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 99.2128 602.363] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+87 598 T
+[-28.3465 0 0 7.08663 467.717 588.19] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 467.717 595.277] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 467.717 602.363] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+456 598 T
+newpath
+158.741 643.465 m
+155.906 643.465 l
+155.906 632.127 l
+158.741 632.127 l
+1 w
+S
+newpath
+158.741 629.292 m
+167.245 629.292 l
+167.245 623.623 l
+192.757 623.623 l
+192.757 629.292 l
+212.599 629.292 l
+212.599 646.3 l
+158.741 646.3 l
+158.741 651.969 l
+158.741 623.623 l
+S
+newpath
+170.079 629.292 m
+170.079 623.623 l
+S
+newpath
+175.749 629.292 m
+175.749 623.623 l
+S
+newpath
+172.914 629.292 m
+172.914 623.623 l
+S
+newpath
+178.583 629.292 m
+178.583 623.623 l
+S
+newpath
+181.418 629.292 m
+181.418 623.623 l
+S
+newpath
+184.253 629.292 m
+184.253 623.623 l
+S
+newpath
+187.087 629.292 m
+187.087 623.623 l
+S
+newpath
+189.922 629.292 m
+189.922 623.623 l
+S
+(SCSI)
+170 635 T
+newpath
+357.166 643.465 m
+354.331 643.465 l
+354.331 632.127 l
+357.166 632.127 l
+S
+newpath
+357.166 629.292 m
+365.67 629.292 l
+365.67 623.623 l
+391.182 623.623 l
+391.182 629.292 l
+411.024 629.292 l
+411.024 646.3 l
+357.166 646.3 l
+357.166 651.969 l
+357.166 623.623 l
+S
+newpath
+368.504 629.292 m
+368.504 623.623 l
+S
+newpath
+374.174 629.292 m
+374.174 623.623 l
+S
+newpath
+371.339 629.292 m
+371.339 623.623 l
+S
+newpath
+377.008 629.292 m
+377.008 623.623 l
+S
+newpath
+379.843 629.292 m
+379.843 623.623 l
+S
+newpath
+382.678 629.292 m
+382.678 623.623 l
+S
+newpath
+385.512 629.292 m
+385.512 623.623 l
+S
+newpath
+388.347 629.292 m
+388.347 623.623 l
+S
+(SCSI)
+368 635 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 2604 a
+ currentpoint currentpoint translate 1 0.81888 div 1 0.81888 div scale
+neg exch neg exch translate
+ 382 2604 a 1070 2800 a Fp(Abbildung)h(2.2:)41
+b(HP)31 b(Beispielk)m(on\034guration)382 3075 y(Das)c(Prinzip)h(des)f
+(F)-8 b(ailo)m(v)m(ers)29 b(ist)e(auc)m(h)h(das)f(Grundprinzip)i(der)e
+(Clusterl\366sungen)i(f\374r)382 3188 y(Lin)m(ux)i(die)g(in)f(Kapitel)i
+(6)e(v)m(orgestellt)i(w)m(erden.)382 3481 y Fo(2.3.3)112
+b(Beispielk)m(on\034guration)382 3702 y Fp(In)43 b(diesem)g(Absc)m
+(hnitt)h(wird)g(eine)f(Beispielk)m(on\034guration)j(v)m(on)e(HP)f([W)-8
+b(ey96)q(])43 b(b)s(e-)382 3815 y(trac)m(h)m(tet,)h(die)c(eb)s(enfalls)
+g(nac)m(h)h(dem)f(Prinzip)h(des)e(F)-8 b(ailo)m(v)m(ers)42
+b(arb)s(eitet.)69 b(Sie)40 b(ist)f(in)382 3928 y(Abbildung)h(2.2)f(sc)m
+(hematisc)m(h)h(dargestellt.)66 b(HP)39 b(wurde)h(zuf\344llig)f(als)f
+(Beispiel)h(ge-)382 4041 y(w)m(\344hlt,)32 b(ganz)f(\344hnlic)m(he)h
+(Cluster)f(sind)f(auc)m(h)h(v)m(on)g(anderen)h(Herstellern)f
+(erh\344ltlic)m(h.)382 4204 y(Die)i(lok)-5 b(alen)33
+b(F)-8 b(estplatten)34 b(der)f(Knoten)h(w)m(erden)g(f\374r)f(das)g
+(Betriebssystem,)g(die)g(HA)382 4317 y(Soft)m(w)m(are)k(und)f(die)f
+(Applik)-5 b(ationssoft)m(w)m(are)38 b(v)m(erw)m(endet.)57
+b(Die)36 b(Daten)g(der)f(Applik)-5 b(a-)382 4429 y(tionen)32
+b(hingegen)g(w)m(erden)h(auf)e(dem)h(v)m(on)f(b)s(eiden)h(Knoten)g(aus)
+f(zug\344nglic)m(hen)j(F)-8 b(est-)382 4542 y(plattensystem)31
+b(\(shared)g(disk\))f(gesp)s(eic)m(hert.)382 4832 y Fn(2.3.3.1)103
+b(Shared)34 b(Disk)382 5054 y Fp(HP)f(realisiert)i(die)e(Shared)i(Disk)
+d(mit)i(Hilfe)f(eines)h(SCSI-Busses.)49 b(Es)34 b(w)m(erden)g(zw)m(ei)
+382 5167 y(SCSI-K)m(on)m(troller)c(an)d(einen)h(SCSI-Bus)f(angesc)m
+(hlossen;)i(nat\374rlic)m(h)g(m)m(\374ssen)e(die)h(b)s(ei-)382
+5279 y(den)c(K)m(on)m(troller)i(auf)e(v)m(ersc)m(hiedene)h(SCSI-IDs)f
+(k)m(on\034guriert)h(w)m(erden.)40 b(Die)24 b(heute)g(\374b-)382
+5392 y(lic)m(hen)j(SCSI-K)m(on)m(troller)i(hab)s(en)e(in)f(der)h(Regel)
+f(b)s(ereits)g(aktiv)m(e)g(SCSI-T)-8 b(erminatoren)1831
+5622 y(12)p eop
+%%Page: 13 15
+13 14 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fp(in)m(tegriert,)36 b(die)e(allerdings)h(in)f(diesem)g
+(An)m(w)m(endungsfall)h(nic)m(h)m(t)g(v)m(erw)m(endet)h(w)m(erden)382
+652 y(k)m(\366nnen.)64 b(W)-8 b(enn)39 b(ein)g(Knoten)g(des)e(Clusters)
+i(nic)m(h)m(t)g(in)f(Betrieb)h(ist,)h(ist)e(somit)g(der)382
+764 y(aktiv)m(e)h(T)-8 b(erminator)41 b(ohne)e(V)-8 b(ersorgung,)43
+b(und)c(der)g(gesam)m(te)h(SCSI-Bus)f(ist)f(w)m(egen)382
+877 y(fehlender)31 b(T)-8 b(ermination)33 b(un)m(brauc)m(h)m(bar.)44
+b(Daher)31 b(m)m(\374ssen)g(die)g(in)m(ternen)h(T)-8
+b(erminato-)382 990 y(ren)24 b(deaktiviert,)h(der)f(SCSI-Bus)f(v)m
+(erl\344ngert)i(und)f(an)f(den)h(Enden)h(des)e(Busses)f(exter-)382
+1103 y(ne)34 b(T)-8 b(erminatoren)36 b(angesc)m(hlossen)f(w)m(erden.)51
+b(Viele)34 b(SCSI-K)m(on)m(troller)j(hab)s(en)d(einen)382
+1216 y(externen)f(und)g(einen)g(in)m(ternen)h(Ansc)m(hlu\377.)48
+b(W\374rde)33 b(man)g(den)f(externen)i(T)-8 b(ermina-)382
+1329 y(tor)32 b(am)g(in)m(ternen)i(Ansc)m(hlu\377)f(des)e(SCSI-K)m(on)m
+(trollers)k(an)m(bringen,)f(k)m(\366nn)m(te)g(man)e(den)382
+1442 y(Knoten)25 b(nic)m(h)m(t)g(v)m(om)f(SCSI-Bus)g(trennen.)39
+b(Daher)24 b(ist)g(es)f(un)m(b)s(edingt)i(not)m(w)m(endig,)j(die-)382
+1555 y(sen)g(T)-8 b(erminator)31 b(am)d(externen)h(Bus)f(anzubringen.)
+42 b(Daf\374r)28 b(w)m(erden)i(SCSI-Y-Kab)s(el)382 1668
+y(b)s(en\366tigt.)382 1819 y(Diese)23 b(Kab)s(el)h(sind)g(\026)f
+(au\377er)i(b)s(ei)e(den)h(HA-System-An)m(bietern)h(\026)e(fast)g(nic)m
+(h)m(t)j(erh\344lt-)382 1932 y(lic)m(h.)55 b(Eine)36
+b(Umfrage)f(auf)f(der)i(Lin)m(ux-HA)f(Mailingliste)h(hat)f(ergeb)s(en,)
+i(da\377)e(es)g(n)m(ur)382 2045 y(einen)c(einzigen)g(H\344ndler)f(in)g
+(Europa)i(gibt,)e(der)h(diese)f(Kab)s(el)g(in)g(seinem)g(Sortimen)m(t)
+382 2158 y(hat.)382 2310 y(T)-8 b(ritt)38 b(ein)g(Problem)h(auf)e(dem)h
+(SCSI-Bus)f(auf,)i(wird)f(z.B.)g(der)g(T)-8 b(erminator)39
+b(v)m(erse-)382 2423 y(hen)m(tlic)m(h)32 b(en)m(tfern)m(t,)h(so)d(sind)
+g(die)h(Zugri\033sw)m(ege)h(b)s(eider)e(Knoten)i(un)m(terbro)s(c)m
+(hen.)43 b(Ein)382 2535 y(Shared)32 b(SCSI-Bus)f(ist)g(ein)h(SPOF)g
+(\(single)g(p)s(oin)m(t)f(of)g(failure\))h(f\374r)f(den)h(ganzen)g
+(Clu-)382 2648 y(ster.)68 b(Daher)41 b(wird)f(b)s(ei)f(den)h(Clustern)h
+(v)m(on)f(HP)f(der)h(Shared)h(SCSI-Bus)f(dopp)s(elt)382
+2761 y(ausgef\374hrt.)79 b(F)-8 b(alls)43 b(eine)g(normale)h(SCSI-F)-8
+b(estplatte)45 b(am)e(Shared)h(SCSI-Bus)f(an-)382 2874
+y(gesc)m(hlossen)c(ist,)g(wird)g(diese)f(eb)s(enfalls)f(dopp)s(elt)i
+(ausgef\374hrt,)i(und)d(zwisc)m(hen)h(den)382 2987 y(b)s(eiden)31
+b(F)-8 b(estplatten)32 b(sorgt)e(MirrorDisk/UX)g(f\374r)g(die)h
+(Datenspiegelung.)382 3139 y(Neb)s(en)26 b(HP)g(v)m(erw)m(enden)i(auc)m
+(h)f(andere)g(An)m(bieter)h(v)m(on)e(Unix-basierten)h(HA-Cluster-)382
+3252 y(L\366sungen)e(einen)g(Shared)g(SCSI-Bus,)g(sogar)f(im)h(Lin)m
+(ux-HA-HO)m(WTO)g([Mil98)q(])f(wird)382 3365 y(die)31
+b(V)-8 b(erw)m(endung)32 b(dieses)e(Busses)g(v)m(orgesc)m(hlagen.)382
+3516 y(Shared)i(Disks)e(k)m(\366nnen)j(neb)s(en)e(SCSI)g(auc)m(h)i(mit)
+e(SSA,)h(Fib)s(er)f(Chanel)h(\(Switc)m(h)h(und)382 3629
+y(Arbitrated)42 b(Lo)s(op\),)i(Digitals)d(Star)h(Coupler)g(und)f(IBMs)f
+(S/390)i(ESCON)g(imple-)382 3742 y(men)m(tiert)32 b(w)m(erden.)42
+b([P\03498)q(])382 4016 y Fn(2.3.3.2)103 b(Soft)m(w)m(are)382
+4226 y Fp(In)29 b(der)h(Clusterl\366sung)h(v)m(on)e(HP)h(\374b)s
+(ernimm)m(t)h(MC/ServiceGuard)g(das)f(Starten)g(der)382
+4339 y(ho)s(c)m(h)m(v)m(erf\374gbaren)38 b(Applik)-5
+b(ationen.)58 b(F\374r)35 b(jede)h(ho)s(c)m(h)m(v)m(erf\374gbare)i
+(Applik)-5 b(ation)36 b(m)m(u\377)382 4452 y(ein)24 b(sogenann)m(tes)i
+(P)m(ac)m(k)-5 b(age)26 b(erstellt)f(w)m(erden.)40 b(Dieses)24
+b(P)m(ac)m(k)-5 b(age)26 b(en)m(th\344lt)g(Angab)s(en)e(zu)382
+4565 y(den)30 b(b)s(en\366tigten)h(Ressourcen)f(der)g(Applik)-5
+b(ation)30 b(so)m(wie)g(Shell-Skripts)h(zum)f(Starten)382
+4678 y(und)42 b(Stopp)s(en)g(der)g(Applik)-5 b(ation.)75
+b(Zu)41 b(den)h(erw)m(\344hn)m(ten)i(Ressourcen)e(z\344hlen)g(z.B.)382
+4790 y(IP-A)m(dressen,)31 b(Logic)g(V)-8 b(olumes)31
+b(und)g(Filesysteme.)382 4942 y(MC/ServiceGuard)42 b(l\344uft)g(auf)f
+(allen)g(Knoten)h(des)f(Clusters.)73 b(Die)41 b(einzelnen)i(In-)382
+5055 y(stanzen)33 b(stehen)g(mit)h(Hilfe)e(v)m(on)h(Heartb)s(eat-P)m
+(ak)m(eten,)j(die)e(\374b)s(er)e(ein)h(gemeinsames)382
+5168 y(Ethernet-Lan)40 b(v)m(ersc)m(hic)m(kt)f(w)m(erden,)i
+(miteinander)f(in)d(V)-8 b(erbindung.)64 b(Reagiert)38
+b(ein)382 5281 y(System)c(auf)g(die)g(Heartb)s(eat-P)m(ak)m(ete)j(nic)m
+(h)m(t)f(mehr,)f(wird)g(es)f(v)m(om)g(anderen)h(System)382
+5394 y(als)30 b(ausgefallen)h(b)s(etrac)m(h)m(tet.)1831
+5622 y(13)p eop
+%%Page: 14 16
+14 15 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fp(F)-8 b(alls)30 b(auf)f(dem)g(gerade)i(ausgefallenen)f
+(System)f(Instanzen)h(v)m(on)g(P)m(ac)m(k)-5 b(ages)31
+b(gelaufen)382 652 y(sind,)45 b(wird)e(n)m(un)g(MC/ServiceGuard)g(die)g
+(not)m(w)m(endigen)i(Ressourcen)d(einric)m(h)m(ten,)382
+764 y(z.B.)e(der)g(Netzw)m(erkk)-5 b(arte)41 b(die)g(en)m(tsprec)m
+(hende)h(IP-A)m(dresse)e(zu)m(w)m(eisen,)k(das)c(SCSI-)382
+877 y(Ger\344t)35 b(auf)g(dem)g(Shared)h(SCSI-Bus)f(b)s(elegen,)h(die)g
+(not)m(w)m(endigen)h(Filesysteme)e(an-)382 990 y(melden)i(und)f(sc)m
+(hlie\377lic)m(h)i(die)e(Applik)-5 b(ation)36 b(erneut)h(starten.)57
+b(Laut)36 b(HP)g(dauert)h(so)382 1103 y(ein)e(Wiederanlauf)g(eines)f
+(Soft)m(w)m(aresystems)i(45)e(Sekunden)i(zuz\374glic)m(h)g(der)e
+(f\374r)h(das)382 1216 y(Anmelden)c(der)g(Filesysteme)f(b)s
+(en\366tigten)i(Zeit.)382 1379 y(Daraus)e(lassen)f(sic)m(h)h(zw)m(ei)g
+(Anforderungen)h(an)f(die)f(Soft)m(w)m(are)i(eines)f(Clusters)g(ablei-)
+382 1492 y(ten:)518 1754 y Fd(\017)46 b Fp(Das)e(Filesystem)f(m)m
+(u\377)i(in)f(der)g(Lage)g(sein,)k(nac)m(h)c(nic)m(h)m(t)i(ordn)m
+(ungsgem\344\377er)609 1867 y(Abmeldung)40 b(binnen)f(sehr)f(kurzer)h
+(Zeit)g(wieder)g(v)m(erf\374gbar)g(zu)f(sein.)65 b(Diese)609
+1980 y(Anforderung)34 b(k)-5 b(ann)33 b(v)m(on)g(herk)m(\366mmlic)m
+(hen)j(Filesystemen)d(nic)m(h)m(t)h(erf\374llt)f(w)m(er-)609
+2093 y(den,)j(da)e(diese)h(in)f(solc)m(h)h(einem)g(F)-8
+b(all)35 b(die)f(K)m(onsistenz)i(der)e(Datenstrukturen)609
+2206 y(auf)c(der)h(F)-8 b(estplatte)32 b(\374b)s(erpr\374fen)f(m)m
+(\374ssen.)518 2393 y Fd(\017)46 b Fp(Die)41 b(Applik)-5
+b(ationen)43 b(m)m(\374ssen)f(in)f(der)g(Lage)h(sein,)i(nac)m(h)f(nic)m
+(h)m(t)g(ordn)m(ungsge-)609 2506 y(m\344\377er)j(Beendigung)g(wieder)g
+(starten)f(zu)g(k)m(\366nnen.)85 b(Sie)45 b(m)m(\374ssen)g(z.B.)g(mit)
+609 2619 y(Ink)m(onsistenzen)31 b(in)g(ihren)g(dynamisc)m(hen)h
+(Daten\034les)f(zurec)m(h)m(tk)m(ommen.)382 2909 y Fn(2.3.3.3)103
+b(Filesystem)382 3130 y Fp(HP)37 b(setzt)g(sein)g(hauseigenes)h
+(Online-Journaling-Filesystem)j(ein,)e(das)e(\304nderun-)382
+3243 y(gen)28 b(der)f(Filesystemgr\366\377e,)i(w)m(\344hrend)g(es)e(im)
+h(System)f(angemeldet)i(ist,)f(un)m(terst\374tzt.)382
+3356 y(Der)33 b(Journaling-Mec)m(hanism)m(us)k(stellt)d(sic)m(her,)h
+(da\377)f(die)f(Datenstrukturen)i(auf)e(der)382 3469
+y(F)-8 b(estplatte)29 b(auc)m(h)f(nac)m(h)h(einem)f(Ausfall)g(eines)f
+(Knotens)i(v)m(om)f(anderen)g(Knoten)h(wie-)382 3582
+y(der)37 b(rasc)m(h)h(in)g(einen)g(k)m(onsisten)m(ten)g(Zustand)g
+(gebrac)m(h)m(t)i(w)m(erden)e(k)m(\366nnen.)62 b(Es)37
+b(darf)382 3695 y(ab)s(er)30 b(immer)h(n)m(ur)g(ein)g(Knoten)g(das)f
+(Filesystem)g(auf)g(der)h(Shared)g(Disk)f(angemeldet)382
+3808 y(hab)s(en.)382 3971 y(Da)41 b(b)s(ei)f(sim)m(ultanen)j(V)-8
+b(ersuc)m(hen,)45 b(das)40 b(Filesystem)h(anzumelden,)k(der)c(Inhalt)g
+(der)382 4084 y(F)-8 b(estplatte)33 b(un)m(widerru\035ic)m(h)i
+(zerst\366rt)d(w)m(erden)i(w\374rde,)f(v)m(erw)m(endet)h(HP)d(ein)h(sp)
+s(eziel-)382 4196 y(les)38 b(SCSI-Lo)s(c)m(k-K)m(ommando,)45
+b(um)39 b(sic)m(herzustellen,)j(da\377)d(immer)h(n)m(ur)f(ein)g(Knoten)
+382 4309 y(auf)34 b(die)g(Shared)h(Disk)e(zugreift.)53
+b(Stellt)34 b(der)h(HP/UX)f(Kernel)g(fest,)h(da\377)f(der)h(ande-)382
+4422 y(re)j(Knoten)g(das)g(SCSI-Lo)s(c)m(k-K)m(ommando)j(ausf\374hrt,)f
+(b)s(eendet)e(er)g(sofort)f(all)h(seine)382 4535 y(Aktivit\344ten)31
+b(und)f(legt)h(das)f(System)h(mit)f(einer)h(Kernel-P)m(anik)i(still.)
+382 4825 y Fn(2.3.3.4)103 b(Netzw)m(erk)382 5047 y Fp(In)30
+b(der)i(Minimalk)m(on\034guration)h(\(wie)f(in)f(Abbildung)h(2.2)f(auf)
+g(Seite)g(12)g(dargestellt\))382 5159 y(gibt)i(es)f(ein)i(Netzw)m
+(erksegmen)m(t,)h(das)e(so)m(w)m(ohl)h(f\374r)f(die)g(Heartb)s(eat-P)m
+(ak)m(ete)i(als)d(auc)m(h)382 5272 y(den)47 b(Netzw)m(erkv)m(erk)m(ehr)
+j(zwisc)m(hen)e(Clien)m(ts)g(und)f(Serv)m(er-Applik)-5
+b(ation)49 b(v)m(erw)m(endet)382 5385 y(wird.)1831 5622
+y(14)p eop
+%%Page: 15 17
+15 16 bop 382 264 a Fl(KAPITEL)31 b(2.)71 b(CLUSTERING)439
+b(2.3.)71 b(HOHE)30 b(VERF\334GBARKEIT)p 382 301 2989
+4 v 382 539 a Fp(MC/ServiceGuard)25 b(un)m(terst\374tzt)g(ab)s(er)e
+(auc)m(h)h(redundan)m(te)i(K)m(on\034gurationen:)40 b(Jeder)382
+652 y(Knoten)24 b(v)m(erf\374gt)g(\374b)s(er)g(zw)m(ei)g(Netzw)m(erkk)
+-5 b(arten)25 b(in)f(einem)g(o)s(der)g(mehreren)g(Netzw)m(erk-)382
+764 y(segmen)m(ten,)42 b(die)d(redundan)m(t)i(durc)m(h)e(Bridges,)i
+(die)e(das)g(Spanning-T)-8 b(ree)41 b(Protok)m(oll)382
+877 y(un)m(terst\374tzen,)32 b(v)m(ernetzt)g(sind.)1831
+5622 y(15)p eop
+%%Page: 16 18
+16 17 bop 382 1211 a Fk(Kapitel)62 b(3)382 1676 y Fm(DRBD)71
+b(Design)382 2171 y Fp(Ein)35 b(Shared)g(SCSI-Bus)f(hat)h(eine)g(Reihe)
+f(v)m(on)g(Nac)m(h)m(teilen,)k(die)c(ihn)h(als)f(Standard-)382
+2284 y(l\366sung)43 b(f\374r)g(HA-Cluster)g(auf)g(der)g(Basis)g(v)m(on)
+g(Lin)m(ux)h(nic)m(h)m(t)h(geeignet)f(ersc)m(heinen)382
+2397 y(lassen:)518 2659 y Fd(\017)i Fp(Sehr)30 b(T)-8
+b(euer:)41 b(Zw)m(ei)29 b(SCSI-K)m(on)m(troller)j(pro)d(Knoten,)i(zw)m
+(ei)e(SCSI-F)-8 b(estplatten.)609 2772 y(Die)30 b(b)s(ei)f(heutigen)i
+(PC)g(Motherb)s(oards)f(zur)g(Standardausstattung)i(geh\366ren-)609
+2885 y(den)f(IDE-K)m(on)m(troller)i(w\374rden)f(zum)e(T)-8
+b(eil)32 b(un)m(b)s(elegt)f(bleib)s(en.)518 3072 y Fd(\017)46
+b Fp(Geringe)41 b(lok)-5 b(ale)40 b(Ausdehn)m(ung:)60
+b(Die)40 b(geringen)h(Maximall\344ngen)g(des)e(SCSI-)609
+3185 y(Busses)g(v)m(erhindern)j(die)e(Aufteilung)h(der)f(Knoten)h(auf)e
+(mehrere)i(Geb\344ude;)609 3298 y(genau)31 b(das)f(w\374rde)h(jedo)s(c)
+m(h)g(w)m(esen)m(tlic)m(h)i(b)s(essere)d(Chancen)h(bieten,)h(Katastro-)
+609 3411 y(phen)f(wie)g(F)-8 b(euer)32 b(o)s(der)e(W)-8
+b(asserein)m(bruc)m(h)33 b(ohne)e(T)-8 b(otalausfall)32
+b(zu)f(\374b)s(erstehen.)609 3524 y(Eine)g(\334b)s(ersic)m(h)m(t)h
+(\374b)s(er)e(die)h(SCSI-Standards)h(und)e(deren)h(Maximall\344ngen:)p
+609 3662 2788 4 v 607 3774 4 113 v 660 3741 a(SCSI)f(Bezeic)m(hn)m(ung)
+p 1428 3774 V 103 w(MB/sec)p 1835 3774 V 100 w(Datenleitungen)p
+2536 3774 V 102 w(L\344nge)h([m])p 3029 3774 V 100 w(Ger\344te)p
+3395 3774 V 609 3778 2788 4 v 609 3794 V 607 3907 4 113
+v 882 3873 a(SCSI)g(1)p 1428 3907 V 455 w(5)p 1835 3907
+V 509 w(8)p 2536 3907 V 552 w(6)p 3029 3907 V 384 w(7)p
+3395 3907 V 609 3911 2788 4 v 607 4024 4 113 v 882 3990
+a(SCSI)g(2)p 1428 4024 V 455 w(5)p 1835 4024 V 509 w(8)p
+2536 4024 V 552 w(6)p 3029 4024 V 384 w(7)p 3395 4024
+V 609 4027 2788 4 v 607 4140 4 113 v 821 4106 a(F)-8
+b(ast)31 b(SCSI)p 1428 4140 V 371 w(10)p 1835 4140 V
+487 w(8)p 2536 4140 V 552 w(3)p 3029 4140 V 384 w(7)p
+3395 4140 V 609 4143 2788 4 v 607 4256 4 113 v 801 4222
+a(Wide)f(SCSI)p 1428 4256 V 351 w(20)p 1835 4256 V 464
+w(16)p 2536 4256 V 530 w(6)p 3029 4256 V 362 w(15)p 3395
+4256 V 609 4259 2788 4 v 607 4372 4 113 v 801 4338 a(Ultra)g(SCSI)p
+1428 4372 V 351 w(20)p 1835 4372 V 487 w(8)p 2536 4372
+V 517 w(1,5)p 3029 4372 V 349 w(7)p 3395 4372 V 609 4376
+2788 4 v 607 4488 4 113 v 682 4455 a(Ultra)g(Wide)h(SCSI)p
+1428 4488 V 231 w(40)p 1835 4488 V 464 w(16)p 2536 4488
+V 495 w(1,5)p 3029 4488 V 327 w(15)p 3395 4488 V 609
+4492 2788 4 v 607 4605 4 113 v 659 4571 a(Ultra2)g(Wide)f(SCSI)p
+1428 4605 V 209 w(40)p 1835 4605 V 464 w(16)p 2536 4605
+V 507 w(12)p 3029 4605 V 340 w(15)p 3395 4605 V 609 4608
+2788 4 v 607 4721 4 113 v 718 4687 a(Ultra)h(160)f(SCSI)p
+1428 4721 V 245 w(160)p 1835 4721 V 442 w(16)p 2536 4721
+V 507 w(12)p 3029 4721 V 340 w(15)p 3395 4721 V 609 4724
+2788 4 v 607 4837 4 113 v 778 4803 a(Ultra3)h(SCSI)p
+1428 4837 V 305 w(160)p 1835 4837 V 442 w(16)p 2536 4837
+V 507 w(12)p 3029 4837 V 340 w(15)p 3395 4837 V 609 4841
+2788 4 v 518 5057 a Fd(\017)46 b Fp(SCSI-Y-Kab)s(el)31
+b(sind)g(n)m(ur)g(sc)m(h)m(w)m(er)h(erh\344ltlic)m(h.)518
+5245 y Fd(\017)46 b Fp(Im)31 b(Gegensatz)h(zu)f(einem)h(Netzw)m(erkk)-5
+b(ab)s(el)31 b(ist)g(ein)h(SCSI-Kab)s(el)f(unhandlic)m(h)609
+5358 y(in)g(der)f(Handhabung.)1831 5622 y(16)p eop
+%%Page: 17 19
+17 18 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712
+b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v
+382 539 a Fp(Die)g(Idee)g(v)m(on)h(DRBD)1179 506 y Fg(1)1248
+539 y Fp(ist)f(es,)g(die)g(Daten)h(redundan)m(t)h(in)e(jedem)h(Knoten)g
+(des)f(Clu-)382 652 y(sters)41 b(abzulegen)i(und)f(alle)h(V)-8
+b(er\344nderungen)44 b(der)e(Daten)g(an)g(alle)g(Mitglieder)h(des)382
+764 y(Clusters)35 b(\374b)s(er)f(ein)h(normales)g(IP-basiertes)g(Netzw)
+m(erk)g(zu)g(\374b)s(ertragen.)54 b(F)-8 b(olgende)382
+877 y(Punkte)31 b(sprec)m(hen)h(f\374r)e(den)h(Einsatz)g(v)m(on)f
+(DRBD:)518 1140 y Fd(\017)46 b Fp(W)-8 b(esen)m(tlic)m(h)38
+b(k)m(osteng\374nstiger:)54 b(Da)36 b(die)g(Daten)g(v)m(on)h(DRBD)e
+(redundan)m(t)j(ge-)609 1253 y(sp)s(eic)m(hert)21 b(w)m(erden,)j(sind)d
+(in)f(den)h(Knoten)g(k)m(eine)g(SCSI-)g(o)s(der)f(RAID-K)m(on)m
+(troller)609 1365 y(not)m(w)m(endig,)25 b(und)c(es)f(k)m(\366nnen)h(so)
+m(w)m(ohl)h(die)f(ohnehin)g(v)m(orhandenen)h(IDE-K)m(on)m(troller)609
+1478 y(als)37 b(auc)m(h)h(g\374nstige)g(IDE-F)-8 b(estplatten)39
+b(zum)e(Einsatz)h(k)m(ommen.)62 b(\(Eine)38 b(IDE)609
+1591 y(F)-8 b(estplatte)32 b(k)m(ostet)f(in)f(der)h(Regel)f(n)m(ur)h
+(die)g(H\344lfte)f(einer)h(SCSI-F)-8 b(estplatte.\))518
+1779 y Fd(\017)46 b Fp(Beliebige)22 b(Ausdehn)m(ung:)36
+b(IP-basierende)22 b(Netzw)m(erk)m(e)g(k)m(\366nnen)f(die)g(ganze)g(W)
+-8 b(elt)609 1892 y(umspannen.)41 b(Die)28 b(Knoten)g(des)g(Clusters)g
+(k)m(\366nn)m(ten)h(sogar)f(auf)f(v)m(ersc)m(hiedenen)609
+2005 y(K)m(on)m(tinen)m(ten)40 b(stehen.)58 b(\(Bei)36
+b(gro\377er)h(Ausdehn)m(ung)g(sc)m(hr\344nkt)g(allerdings)g(die)609
+2118 y(gro\377e)d(V)-8 b(erz\366gerung)35 b(des)d(Netzw)m(erk)m(es)i
+(den)g(Durc)m(hsatz)g(des)f(DRBD-Ger\344tes)609 2231
+y(stark)d(ein.\))518 2418 y Fd(\017)46 b Fp(Es)30 b(sind)h(n)m(ur)g
+(Standard-Netzw)m(erkk)m(omp)s(onen)m(ten)k(erforderlic)m(h.)518
+2606 y Fd(\017)46 b Fp(Netzw)m(erkk)-5 b(ab)s(el)30 b(sind)g(w)m(esen)m
+(tlic)m(h)i(einfac)m(her)f(in)e(der)h(Handhabung)h(als)e(SCSI-)609
+2719 y(Kab)s(el.)382 3055 y Fj(3.1)130 b(DRBD)44 b(im)g(Kernel)382
+3308 y Fp(In)39 b(Abbildung)h(3.1)g(sind)f(die)g(K)m(omp)s(onen)m(ten)j
+(des)d(Lin)m(ux-Kernels)i(so)e(dargestellt,)382 3421
+y(wie)c(man)g(sie)f(auf)h(einem)g(herk)m(\366mmlic)m(hen)i(Serv)m(er)f
+(v)m(or\034ndet.)54 b(Der)35 b(graue)g(Bereic)m(h)382
+3534 y(stellt)26 b(den)g(Kernel)g(dar.)40 b(Mit)25 b(Ausnahme)h(des)g
+(F)-8 b(estplatten)m(treib)s(ers)28 b(sind)e(alle)g(darge-)382
+3646 y(stellten)j(K)m(omp)s(onen)m(ten)i(\034x)d(im)g(Kernel)h(v)m
+(orhanden.)42 b(Da)28 b(es)g(m\366glic)m(h)i(ist,)e(F)-8
+b(estplat-)382 3759 y(ten)m(treib)s(er)30 b(in)f(einen)h(laufenden)g
+(Lin)m(ux-Kernel)h(nac)m(hzuladen,)h(meldet)e(sic)m(h)f(DRBD)382
+3872 y(als)h(F)-8 b(estplatten)m(treib)s(er)33 b(im)e(Lin)m(ux-Kernel)h
+(an.)41 b(\(Siehe)31 b(Abbildung)h(3.2\))382 4035 y(DRBD)22
+b(erh\344lt)h(v)m(om)g(Bu\033er-Cac)m(he)i(Subsystem)e(des)f(Kernels)h
+(Sc)m(hreib-)i(und)e(Lesean-)382 4148 y(forderungen.)41
+b(Leseanforderungen)32 b(w)m(erden)f(durc)m(h)g(eine)f(Leseanforderung)
+h(an)f(den)382 4261 y(lok)-5 b(alen)43 b(F)-8 b(estplatten)m(treib)s
+(er)44 b(erf\374llt,)i(w)m(\344hrend)e(die)e(Daten)m(bl\366)s(c)m(k)m
+(e,)48 b(die)42 b(v)m(on)h(einer)382 4374 y(Sc)m(hreibanforderung)28
+b(stammen,)g(auc)m(h)e(an)g(das)f(zw)m(eite)i(System)e(\374b)s(er)g
+(das)h(Netzw)m(erk)382 4487 y(w)m(eitergegeb)s(en)35
+b(w)m(erden.)49 b(Dadurc)m(h)34 b(wird)f(der)g(Inhalt)g(der)g
+(virtuellen)h(Shared)f(Disk)382 4600 y(auf)d(b)s(eiden)h(F)-8
+b(estplatten)32 b(des)e(Clusters)g(redundan)m(t)j(abgelegt.)382
+4762 y(Grunds\344tzlic)m(h)42 b(ist)e(f\374r)h(den)f(Betrieb)i(v)m(on)e
+(DRBD)g(n)m(ur)i(eine)e(Netzw)m(erkk)-5 b(arte)42 b(pro)382
+4875 y(System)33 b(erforderlic)m(h.)49 b(Es)33 b(k)m(omm)m(t)h(ab)s(er)
+f(nic)m(h)m(t)h(n)m(ur)f(DRBD)f(zugute,)j(w)m(enn)f(f\374r)e(die)382
+4988 y(V)-8 b(erbindung)41 b(zwisc)m(hen)f(den)f(Systemen)g(ein)g
+(eigenes)h(Netz)f(zur)g(V)-8 b(erf\374gung)40 b(steh)m(t.)382
+5101 y(Dies)26 b(hilft)h(v)m(or)f(allem)i(der)e(Cluster-Soft)m(w)m
+(are,)k(zwisc)m(hen)e(dem)f(Ausfall)f(eines)h(ganzen)382
+5214 y(Knotens)k(und)g(dem)g(Ausfall)e(einer)i(Netzw)m(erkk)-5
+b(arte)32 b(zu)f(un)m(tersc)m(heiden.)p 382 5275 1196
+4 v 486 5329 a Ff(1)520 5361 y Fe(Distributed)25 b(replicated)h(blo)r
+(c)n(k)g(device)1831 5622 y Fp(17)p eop
+%%Page: 18 20
+18 19 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712
+b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v
+1156 2585 a
+ currentpoint currentpoint translate 0.79683 0.79683 scale neg exch
+neg exch translate
+ 1156 2585 a @beginspecial 61 @llx 449 @lly
+278 @urx 771 @ury 2170 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//scheme1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Wed Mar 15 09:13:19 2000
+%%Title: scheme1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 61 449 278 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[215.433 0 0 -130.394 62.3622 702.992] rect
+0.848 0.835 0.949 rgb
+F
+newpath
+127.284 473.387 m
+130.118 470.552 l
+152.796 470.552 l
+155.63 473.387 l
+closepath
+0.8 0.8 0.8 rgb
+F
+127.284 473.387 m
+130.118 470.552 l
+152.796 470.552 l
+155.63 473.387 l
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[34.0158 0 0 -28.3465 124.449 501.733] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 127.284 498.899] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 121.947 468.773] rect
+S
+newpath
+122.957 466.447 m
+124.089 466.386 l
+S
+newpath
+120.894 459.744 m
+122.026 459.684 l
+S
+newpath
+121.41 461.42 m
+122.542 461.359 l
+S
+newpath
+121.926 463.096 m
+123.058 463.035 l
+S
+newpath
+122.441 464.771 m
+123.574 464.71 l
+S
+newpath
+124.655 466.356 m
+125.788 466.295 l
+S
+newpath
+122.593 459.653 m
+123.725 459.592 l
+S
+newpath
+123.108 461.329 m
+124.24 461.268 l
+S
+newpath
+123.624 463.004 m
+124.756 462.944 l
+S
+newpath
+124.14 464.68 m
+125.272 464.619 l
+S
+newpath
+126.354 466.265 m
+127.486 466.204 l
+S
+newpath
+124.291 459.562 m
+125.423 459.501 l
+S
+newpath
+124.807 461.238 m
+125.939 461.177 l
+S
+newpath
+125.322 462.913 m
+126.455 462.852 l
+S
+newpath
+125.838 464.589 m
+126.97 464.528 l
+S
+newpath
+128.052 466.173 m
+129.184 466.113 l
+S
+newpath
+125.989 459.471 m
+127.121 459.41 l
+S
+newpath
+126.505 461.146 m
+127.637 461.086 l
+S
+newpath
+127.021 462.822 m
+128.153 462.761 l
+S
+newpath
+127.536 464.498 m
+128.669 464.437 l
+S
+newpath
+129.751 466.082 m
+130.883 466.021 l
+S
+newpath
+127.688 459.38 m
+128.82 459.319 l
+S
+newpath
+128.203 461.055 m
+129.336 460.995 l
+S
+newpath
+128.719 462.731 m
+129.851 462.67 l
+S
+newpath
+129.235 464.407 m
+130.367 464.346 l
+S
+newpath
+131.449 465.991 m
+132.581 465.93 l
+S
+newpath
+129.386 459.289 m
+130.518 459.228 l
+S
+newpath
+129.902 460.964 m
+131.034 460.903 l
+S
+newpath
+130.417 462.64 m
+131.55 462.579 l
+S
+newpath
+130.933 464.315 m
+132.065 464.255 l
+S
+newpath
+133.147 465.9 m
+134.279 465.839 l
+S
+newpath
+131.084 459.197 m
+132.217 459.137 l
+S
+newpath
+131.6 460.873 m
+132.732 460.812 l
+S
+newpath
+132.116 462.549 m
+133.248 462.488 l
+S
+newpath
+132.631 464.224 m
+133.764 464.164 l
+S
+newpath
+134.846 465.809 m
+135.978 465.748 l
+S
+newpath
+132.783 459.106 m
+133.915 459.046 l
+S
+newpath
+133.298 460.782 m
+134.431 460.721 l
+S
+newpath
+133.814 462.458 m
+134.946 462.397 l
+S
+newpath
+134.33 464.133 m
+135.462 464.072 l
+S
+newpath
+136.544 465.718 m
+137.676 465.657 l
+S
+newpath
+134.481 459.015 m
+135.613 458.954 l
+S
+newpath
+134.997 460.691 m
+136.129 460.63 l
+S
+newpath
+135.512 462.366 m
+136.645 462.306 l
+S
+newpath
+136.028 464.042 m
+137.16 463.981 l
+S
+newpath
+138.242 465.627 m
+139.375 465.566 l
+S
+newpath
+136.179 458.924 m
+137.312 458.863 l
+S
+newpath
+136.695 460.6 m
+137.827 460.539 l
+S
+newpath
+137.211 462.275 m
+138.343 462.214 l
+S
+newpath
+137.727 463.951 m
+138.859 463.89 l
+S
+newpath
+139.941 465.535 m
+141.073 465.475 l
+S
+newpath
+137.878 458.833 m
+139.01 458.772 l
+S
+newpath
+138.393 460.508 m
+139.526 460.448 l
+S
+newpath
+138.909 462.184 m
+140.041 462.123 l
+S
+newpath
+139.425 463.86 m
+140.557 463.799 l
+S
+newpath
+141.639 465.444 m
+142.771 465.383 l
+S
+newpath
+139.576 458.742 m
+140.708 458.681 l
+S
+newpath
+140.092 460.417 m
+141.224 460.357 l
+S
+newpath
+140.608 462.093 m
+141.74 462.032 l
+S
+newpath
+141.123 463.769 m
+142.255 463.708 l
+S
+newpath
+143.337 465.353 m
+144.47 465.292 l
+S
+newpath
+152.395 464.867 m
+153.527 464.806 l
+S
+newpath
+141.274 458.651 m
+142.407 458.59 l
+S
+newpath
+150.332 458.164 m
+151.464 458.104 l
+S
+newpath
+141.79 460.326 m
+142.922 460.265 l
+S
+newpath
+150.848 459.84 m
+151.98 459.779 l
+S
+newpath
+142.306 462.002 m
+143.438 461.941 l
+S
+newpath
+151.364 461.516 m
+152.496 461.455 l
+S
+newpath
+142.822 463.677 m
+143.954 463.617 l
+S
+newpath
+151.879 463.191 m
+153.012 463.131 l
+S
+newpath
+145.036 465.262 m
+146.168 465.201 l
+S
+newpath
+154.094 464.776 m
+155.226 464.715 l
+S
+newpath
+142.973 458.559 m
+144.105 458.499 l
+S
+newpath
+152.031 458.073 m
+153.163 458.013 l
+S
+newpath
+143.488 460.235 m
+144.621 460.174 l
+S
+newpath
+152.546 459.749 m
+153.679 459.688 l
+S
+newpath
+144.004 461.911 m
+145.136 461.85 l
+S
+newpath
+153.062 461.425 m
+154.194 461.364 l
+S
+newpath
+144.52 463.586 m
+145.652 463.526 l
+S
+newpath
+153.578 463.1 m
+154.71 463.039 l
+S
+newpath
+146.734 465.171 m
+147.866 465.11 l
+S
+newpath
+155.792 464.685 m
+156.924 464.624 l
+S
+newpath
+144.671 458.468 m
+145.803 458.408 l
+S
+newpath
+153.729 457.982 m
+154.861 457.921 l
+S
+newpath
+145.187 460.144 m
+146.319 460.083 l
+S
+newpath
+154.245 459.658 m
+155.377 459.597 l
+S
+newpath
+145.703 461.82 m
+146.835 461.759 l
+S
+newpath
+154.76 461.333 m
+155.893 461.273 l
+S
+newpath
+146.218 463.495 m
+147.351 463.434 l
+S
+newpath
+155.276 463.009 m
+156.408 462.948 l
+S
+newpath
+148.432 465.08 m
+149.565 465.019 l
+S
+newpath
+157.49 464.594 m
+158.622 464.533 l
+S
+newpath
+146.369 458.377 m
+147.502 458.316 l
+S
+newpath
+155.427 457.891 m
+156.56 457.83 l
+S
+newpath
+146.885 460.053 m
+148.017 459.992 l
+S
+newpath
+155.943 459.567 m
+157.075 459.506 l
+S
+newpath
+147.401 461.728 m
+148.533 461.668 l
+S
+newpath
+156.459 461.242 m
+157.591 461.182 l
+S
+newpath
+147.917 463.404 m
+149.049 463.343 l
+S
+newpath
+156.975 462.918 m
+158.107 462.857 l
+S
+newpath
+210.035 473.387 m
+212.869 470.552 l
+235.547 470.552 l
+238.381 473.387 l
+closepath
+0.8 0.8 0.8 rgb
+F
+210.035 473.387 m
+212.869 470.552 l
+235.547 470.552 l
+238.381 473.387 l
+0 0 0 rgb
+S
+[34.0158 0 0 -28.3465 207.2 501.733] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 210.035 498.899] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 204.698 468.773] rect
+S
+newpath
+205.708 466.447 m
+206.84 466.386 l
+S
+newpath
+203.645 459.744 m
+204.777 459.684 l
+S
+newpath
+204.161 461.42 m
+205.293 461.359 l
+S
+newpath
+204.677 463.096 m
+205.809 463.035 l
+S
+newpath
+205.192 464.771 m
+206.325 464.71 l
+S
+newpath
+207.406 466.356 m
+208.539 466.295 l
+S
+newpath
+205.344 459.653 m
+206.476 459.592 l
+S
+newpath
+205.859 461.329 m
+206.991 461.268 l
+S
+newpath
+206.375 463.004 m
+207.507 462.944 l
+S
+newpath
+206.891 464.68 m
+208.023 464.619 l
+S
+newpath
+209.105 466.265 m
+210.237 466.204 l
+S
+newpath
+207.042 459.562 m
+208.174 459.501 l
+S
+newpath
+207.558 461.238 m
+208.69 461.177 l
+S
+newpath
+208.073 462.913 m
+209.206 462.852 l
+S
+newpath
+208.589 464.589 m
+209.721 464.528 l
+S
+newpath
+210.803 466.173 m
+211.935 466.113 l
+S
+newpath
+208.74 459.471 m
+209.872 459.41 l
+S
+newpath
+209.256 461.146 m
+210.388 461.086 l
+S
+newpath
+209.772 462.822 m
+210.904 462.761 l
+S
+newpath
+210.287 464.498 m
+211.42 464.437 l
+S
+newpath
+212.502 466.082 m
+213.634 466.021 l
+S
+newpath
+210.439 459.38 m
+211.571 459.319 l
+S
+newpath
+210.954 461.055 m
+212.087 460.995 l
+S
+newpath
+211.47 462.731 m
+212.602 462.67 l
+S
+newpath
+211.986 464.407 m
+213.118 464.346 l
+S
+newpath
+214.2 465.991 m
+215.332 465.93 l
+S
+newpath
+212.137 459.289 m
+213.269 459.228 l
+S
+newpath
+212.653 460.964 m
+213.785 460.903 l
+S
+newpath
+213.168 462.64 m
+214.301 462.579 l
+S
+newpath
+213.684 464.315 m
+214.816 464.255 l
+S
+newpath
+215.898 465.9 m
+217.03 465.839 l
+S
+newpath
+213.835 459.197 m
+214.968 459.137 l
+S
+newpath
+214.351 460.873 m
+215.483 460.812 l
+S
+newpath
+214.867 462.549 m
+215.999 462.488 l
+S
+newpath
+215.382 464.224 m
+216.515 464.164 l
+S
+newpath
+217.597 465.809 m
+218.729 465.748 l
+S
+newpath
+215.534 459.106 m
+216.666 459.046 l
+S
+newpath
+216.049 460.782 m
+217.182 460.721 l
+S
+newpath
+216.565 462.458 m
+217.697 462.397 l
+S
+newpath
+217.081 464.133 m
+218.213 464.072 l
+S
+newpath
+219.295 465.718 m
+220.427 465.657 l
+S
+newpath
+217.232 459.015 m
+218.364 458.954 l
+S
+newpath
+217.748 460.691 m
+218.88 460.63 l
+S
+newpath
+218.263 462.366 m
+219.396 462.306 l
+S
+newpath
+218.779 464.042 m
+219.911 463.981 l
+S
+newpath
+220.993 465.627 m
+222.126 465.566 l
+S
+newpath
+218.93 458.924 m
+220.063 458.863 l
+S
+newpath
+219.446 460.6 m
+220.578 460.539 l
+S
+newpath
+219.962 462.275 m
+221.094 462.214 l
+S
+newpath
+220.478 463.951 m
+221.61 463.89 l
+S
+newpath
+222.692 465.535 m
+223.824 465.475 l
+S
+newpath
+220.629 458.833 m
+221.761 458.772 l
+S
+newpath
+221.144 460.508 m
+222.277 460.448 l
+S
+newpath
+221.66 462.184 m
+222.792 462.123 l
+S
+newpath
+222.176 463.86 m
+223.308 463.799 l
+S
+newpath
+224.39 465.444 m
+225.522 465.383 l
+S
+newpath
+222.327 458.742 m
+223.459 458.681 l
+S
+newpath
+222.843 460.417 m
+223.975 460.357 l
+S
+newpath
+223.359 462.093 m
+224.491 462.032 l
+S
+newpath
+223.874 463.769 m
+225.006 463.708 l
+S
+newpath
+226.088 465.353 m
+227.221 465.292 l
+S
+newpath
+235.146 464.867 m
+236.278 464.806 l
+S
+newpath
+224.025 458.651 m
+225.158 458.59 l
+S
+newpath
+233.083 458.164 m
+234.215 458.104 l
+S
+newpath
+224.541 460.326 m
+225.673 460.265 l
+S
+newpath
+233.599 459.84 m
+234.731 459.779 l
+S
+newpath
+225.057 462.002 m
+226.189 461.941 l
+S
+newpath
+234.115 461.516 m
+235.247 461.455 l
+S
+newpath
+225.573 463.677 m
+226.705 463.617 l
+S
+newpath
+234.63 463.191 m
+235.763 463.131 l
+S
+newpath
+227.787 465.262 m
+228.919 465.201 l
+S
+newpath
+236.845 464.776 m
+237.977 464.715 l
+S
+newpath
+225.724 458.559 m
+226.856 458.499 l
+S
+newpath
+234.782 458.073 m
+235.914 458.013 l
+S
+newpath
+226.239 460.235 m
+227.372 460.174 l
+S
+newpath
+235.297 459.749 m
+236.43 459.688 l
+S
+newpath
+226.755 461.911 m
+227.887 461.85 l
+S
+newpath
+235.813 461.425 m
+236.945 461.364 l
+S
+newpath
+227.271 463.586 m
+228.403 463.526 l
+S
+newpath
+236.329 463.1 m
+237.461 463.039 l
+S
+newpath
+229.485 465.171 m
+230.617 465.11 l
+S
+newpath
+238.543 464.685 m
+239.675 464.624 l
+S
+newpath
+227.422 458.468 m
+228.554 458.408 l
+S
+newpath
+236.48 457.982 m
+237.612 457.921 l
+S
+newpath
+227.938 460.144 m
+229.07 460.083 l
+S
+newpath
+236.996 459.658 m
+238.128 459.597 l
+S
+newpath
+228.454 461.82 m
+229.586 461.759 l
+S
+newpath
+237.511 461.333 m
+238.644 461.273 l
+S
+newpath
+228.969 463.495 m
+230.102 463.434 l
+S
+newpath
+238.027 463.009 m
+239.159 462.948 l
+S
+newpath
+231.183 465.08 m
+232.316 465.019 l
+S
+newpath
+240.241 464.594 m
+241.373 464.533 l
+S
+newpath
+229.12 458.377 m
+230.253 458.316 l
+S
+newpath
+238.178 457.891 m
+239.311 457.83 l
+S
+newpath
+229.636 460.053 m
+230.768 459.992 l
+S
+newpath
+238.694 459.567 m
+239.826 459.506 l
+S
+newpath
+230.152 461.728 m
+231.284 461.668 l
+S
+newpath
+239.21 461.242 m
+240.342 461.182 l
+S
+newpath
+230.668 463.404 m
+231.8 463.343 l
+S
+newpath
+239.726 462.918 m
+240.858 462.857 l
+S
+newpath
+221.103 532.914 m
+221.103 507.402 l
+S
+newpath
+221.103 518.741 m
+138.898 518.741 l
+138.898 507.402 l
+S
+/Times-Roman 12 sf
+(...)
+175 496 T
+newpath
+201.26 558.425 m
+198.425 558.425 l
+198.425 555.591 l
+201.26 555.591 l
+S
+newpath
+201.26 544.252 m
+209.764 544.252 l
+209.764 538.583 l
+235.276 538.583 l
+235.276 544.252 l
+255.118 544.252 l
+255.118 561.26 l
+201.26 561.26 l
+201.26 566.929 l
+201.26 538.583 l
+S
+newpath
+212.598 544.252 m
+212.598 538.583 l
+S
+newpath
+218.268 544.252 m
+218.268 538.583 l
+S
+newpath
+215.433 544.252 m
+215.433 538.583 l
+S
+newpath
+221.102 544.252 m
+221.102 538.583 l
+S
+newpath
+223.937 544.252 m
+223.937 538.583 l
+S
+newpath
+226.772 544.252 m
+226.772 538.583 l
+S
+newpath
+229.606 544.252 m
+229.606 538.583 l
+S
+newpath
+232.441 544.252 m
+232.441 538.583 l
+S
+(NIC)
+217 549 T
+[-85.0394 0 0 28.3464 155.906 581.102] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 269.291 581.102] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 155.906 623.622] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+221.102 581.102 m
+221.102 569.197 l
+0.992126 w
+S
+pusht
+221.102 569.197 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 566.929 m
+232.441 578.835 l
+1 w
+S
+pusht
+232.441 578.835 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 623.622 m
+107.717 611.717 l
+0.992126 w
+S
+pusht
+107.717 611.717 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 609.449 m
+119.055 621.354 l
+1 w
+S
+pusht
+119.055 621.354 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 666.142 m
+107.717 654.236 l
+0.992126 w
+S
+pusht
+107.717 654.236 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 651.968 m
+119.055 663.874 l
+1 w
+S
+pusht
+119.055 663.874 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 708.661 m
+107.717 696.756 l
+0.992126 w
+S
+pusht
+107.717 696.756 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 694.488 m
+119.055 706.394 l
+1 w
+S
+pusht
+119.055 706.394 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+221.102 694.488 m
+221.102 682.583 l
+0.992126 w
+S
+pusht
+221.102 682.583 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 680.315 m
+232.441 692.22 l
+1 w
+S
+pusht
+232.441 692.22 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+221.102 632.126 m
+221.102 620.221 l
+0.992126 w
+S
+pusht
+221.102 620.221 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 617.953 m
+232.441 629.858 l
+1 w
+S
+pusht
+232.441 629.858 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 581.102 m
+107.717 569.197 l
+0.992126 w
+S
+pusht
+107.717 569.197 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 566.929 m
+119.055 578.835 l
+1 w
+S
+pusht
+119.055 578.835 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[-28.3465 0 0 7.08663 113.386 545.669] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 113.386 552.756] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 113.386 559.842] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+102 555 T
+(Disk driver)
+86 592 T
+(Disk scheduler)
+81 626 T
+(Buffer cache)
+73 640 T
+[85.0394 0 0 -28.3464 70.8661 694.488] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[85.0394 0 0 -28.3464 184.252 668.976] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(File system)
+85 677 T
+(NIC driver)
+201 592 T
+(TCP/IP)
+209 649 T
+[198.425 0 0 56.6929 70.8661 708.661] rect
+S
+(Service)
+152 734 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1156 2585 a
+ currentpoint currentpoint translate 1 0.79683 div 1 0.79683 div scale
+neg exch neg exch translate
+ 1156 2585 a 716 2781 a Fp(Abbildung)i(3.1:)41
+b(Daten\035u\377)31 b(in)g(einem)g(einfac)m(hen)h(Serv)m(ersystem)382
+3056 y Fo(3.1.1)112 b(Seman)m(tik)m(en)382 3278 y Fp(DRBD)41
+b(wurde)i(v)m(or)f(allem)h(f\374r)f(den)g(Einsatz)h(in)f(einem)h
+(HA-Cluster)f(en)m(t)m(wic)m(k)m(elt,)382 3391 y(Lastv)m(erteilung)28
+b(wurde)e(dab)s(ei)g(nic)m(h)m(t)i(b)s(er\374c)m(ksic)m(h)m(tigt.)41
+b(Daher)26 b(wurde)h(bisher)f(auf)f(die)382 3504 y(exakte)i(Nac)m(h)m
+(bildung)j(der)d(Seman)m(tik)i(einer)e(Shared)h(Disk)f(v)m(erzic)m(h)m
+(tet.)42 b(F\374r)27 b(eine)h(ex-)382 3617 y(akte)c(Nac)m(h)m(bildung)j
+(der)e(Seman)m(tik)h(m)m(\374\377ten)g(die)f(Daten,)h(w)m(enn)g(sie)e
+(v)m(on)h(DRBD)e(\374b)s(er)382 3729 y(das)34 b(Netzw)m(erk)h
+(empfangen)g(w)m(erden,)h(ohne)f(da\377)f(diese)g(im)g(Bu\033er-Cac)m
+(he)i(abgelegt)382 3842 y(w)m(erden,)46 b(direkt)c(an)g(den)h(darun)m
+(terliegenden)i(F)-8 b(estplatten)m(treib)s(er)44 b(w)m(eitergegeb)s
+(en)382 3955 y(w)m(erden.)d(Diese)27 b(Seman)m(tik)h(w)m(\344re)g
+(f\374r)f(den)g(Einsatz)h(eines)f(Shared-Disk)h(Filesystems)382
+4068 y(wie)j(z.B.)f(GFS)907 4035 y Fg(2)977 4068 y Fp([PBB+99)q(])g
+(erforderlic)m(h.)382 4358 y Fn(3.1.1.1)103 b(GFS)382
+4580 y Fp(Im)42 b(Un)m(tersc)m(hied)i(zu)e(anderen)h(Filesystemen)g(k)
+-5 b(ann)42 b(GFS)g(ein)g(Dateisystem,)k(das)382 4692
+y(auf)26 b(einer)i(Shared)f(Disk)f(liegt,)i(v)m(on)f(mehreren)h(Knoten)
+g(aus)e(gleic)m(hzeitig)j(anmelden.)382 4805 y(Um)35
+b(die)g(Zugri\033e)h(der)g(Knoten)g(auf)f(die)g(Datenstrukturen)i(auf)d
+(der)i(F)-8 b(estplatte)36 b(zu)382 4918 y(k)m(o)s(ordinieren,)h(ist)d
+(ein)g(v)m(erteilter)i(K)m(o)s(ordinationsmec)m(hanism)m(us)i
+(erforderlic)m(h.)54 b(Die)382 5031 y(GFS)29 b(En)m(t)m(wic)m(kler)k
+(hab)s(en)d(dies)f(mit)h(Hilfe)f(eines)h(sp)s(eziellen)g(SCSI-K)m
+(ommandos)i(im-)382 5144 y(plemen)m(tiert,)h(das)d(auc)m(h)h(im)g
+(SCSI-Ger\344t)g(implemen)m(tiert)i(sein)d(m)m(u\377.)p
+382 5206 1196 4 v 486 5259 a Ff(2)520 5291 y Fe(Global)d(Filesystem)
+1831 5622 y Fp(18)p eop
+%%Page: 19 21
+19 20 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712
+b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v
+382 4014 a
+ currentpoint currentpoint translate 0.75989 0.75989 scale neg exch
+neg exch translate
+ 382 4014 a @beginspecial 61 @llx 392 @lly
+533 @urx 771 @ury 4720 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//scheme2.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Wed Mar 15 09:15:38 2000
+%%Title: scheme2.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 61 392 533 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[215.433 0 0 -172.913 62.3622 702.992] rect
+0.848 0.835 0.949 rgb
+F
+[215.433 0 0 -172.915 317.481 702.994] rect
+F
+newpath
+155.906 595.276 m
+184.252 595.276 l
+0.509 0.376 0.687 rgb
+2.83465 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+184.252 595.276 translate
+0 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+411.025 595.278 m
+439.371 595.278 l
+S
+pusht
+439.371 595.278 translate
+0 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+263.622 513.072 m
+342.993 513.072 l
+S
+pusht
+342.993 513.072 translate
+0 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+252.284 581.103 m
+252.284 566.93 l
+S
+pusht
+252.284 566.93 translate
+-90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+394.017 566.931 m
+394.017 581.104 l
+S
+pusht
+394.017 581.104 translate
+90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+507.402 609.45 m
+507.402 623.623 l
+S
+pusht
+507.402 623.623 translate
+90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+507.402 581.103 m
+507.402 566.93 l
+S
+pusht
+507.402 566.93 translate
+-90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+507.402 538.584 m
+507.402 524.41 l
+S
+pusht
+507.402 524.41 translate
+-90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+252.284 538.583 m
+252.284 524.41 l
+S
+pusht
+252.284 524.41 translate
+-90 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+394.016 518.741 m
+394.017 538.584 l
+S
+pusht
+394.017 538.584 translate
+89.9971 rotate
+2.83465 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[-85.0394 0 0 28.3464 155.906 538.583] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 524.41 538.583] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 155.906 581.103] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 524.41 581.103] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 269.291 538.583] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 411.024 538.584] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 155.906 623.622] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[-85.0394 0 0 28.3464 524.41 623.622] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+221.102 538.583 m
+221.102 526.678 l
+0.992126 w
+S
+pusht
+221.102 526.678 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 524.41 m
+232.441 536.316 l
+1 w
+S
+pusht
+232.441 536.316 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 623.622 m
+107.717 611.717 l
+0.992126 w
+S
+pusht
+107.717 611.717 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 609.449 m
+119.055 621.354 l
+1 w
+S
+pusht
+119.055 621.354 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 581.103 m
+107.717 569.198 l
+0.992126 w
+S
+pusht
+107.717 569.198 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 566.93 m
+119.055 578.835 l
+1 w
+S
+pusht
+119.055 578.835 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 666.142 m
+107.717 654.236 l
+0.992126 w
+S
+pusht
+107.717 654.236 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 651.968 m
+119.055 663.874 l
+1 w
+S
+pusht
+119.055 663.874 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 708.661 m
+107.717 696.756 l
+0.992126 w
+S
+pusht
+107.717 696.756 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 694.488 m
+119.055 706.394 l
+1 w
+S
+pusht
+119.055 706.394 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+221.102 643.465 m
+221.102 631.56 l
+0.992126 w
+S
+pusht
+221.102 631.56 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 629.292 m
+232.441 641.197 l
+1 w
+S
+pusht
+232.441 641.197 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+221.102 581.103 m
+221.102 569.198 l
+0.992126 w
+S
+pusht
+221.102 569.198 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.441 566.93 m
+232.441 578.835 l
+1 w
+S
+pusht
+232.441 578.835 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+107.717 538.583 m
+107.717 526.678 l
+0.992126 w
+S
+pusht
+107.717 526.678 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+119.055 524.41 m
+119.055 536.316 l
+1 w
+S
+pusht
+119.055 536.316 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[-28.3465 0 0 7.08663 113.386 503.15] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 113.386 510.237] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 113.386 517.323] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+102 513 T
+[-28.3465 0 0 7.08663 481.89 503.15] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 481.89 510.237] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+[-28.3465 0 0 7.08663 481.89 517.323] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.992126 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(Disk)
+470 513 T
+(Disk driver)
+86 549 T
+(Disk driver)
+454 549 T
+(DRBD)
+96 592 T
+(DRBD)
+464 592 T
+(Disk scheduler)
+81 626 T
+(Disk scheduler)
+449 626 T
+(Buffer cache)
+73 640 T
+(Buffer cache)
+442 640 T
+[85.0394 0 0 -28.3464 70.8661 694.488] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[85.0394 0 0 -28.3464 439.37 694.488] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[85.0394 0 0 -28.3464 184.252 609.45] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[85.0394 0 0 -28.3464 325.985 609.451] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(File system)
+85 677 T
+(File system)
+454 677 T
+(NIC driver)
+201 549 T
+(NIC driver)
+342 549 T
+(TCP/IP)
+209 592 T
+(TCP/IP)
+351 592 T
+[198.425 0 0 56.6929 70.8661 708.661] rect
+S
+[198.425 0 0 56.6929 325.985 708.663] rect
+0.992126 w
+[0.992126 0.992126 ] 0 d
+S
+(Service)
+152 734 T
+(Service)
+407 734 T
+newpath
+210.898 513.071 m
+208.064 513.071 l
+208.064 510.237 l
+210.898 510.237 l
+1 w
+[] 0 d
+S
+newpath
+201.26 518.74 m
+198.426 518.74 l
+198.426 515.906 l
+201.26 515.906 l
+S
+newpath
+210.898 498.898 m
+219.402 498.898 l
+219.402 493.229 l
+244.915 493.229 l
+244.915 498.898 l
+264.757 498.898 l
+264.757 515.906 l
+210.898 515.906 l
+210.898 521.575 l
+210.898 493.229 l
+closepath
+1 1 1 rgb
+F
+210.898 498.898 m
+219.402 498.898 l
+219.402 493.229 l
+244.915 493.229 l
+244.915 498.898 l
+264.757 498.898 l
+264.757 515.906 l
+210.898 515.906 l
+210.898 521.575 l
+210.898 493.229 l
+0 0 0 rgb
+S
+newpath
+201.26 504.567 m
+209.764 504.567 l
+209.764 498.898 l
+235.277 498.898 l
+235.277 504.567 l
+255.118 504.567 l
+255.118 521.575 l
+201.26 521.575 l
+201.26 527.244 l
+201.26 498.898 l
+closepath
+1 1 1 rgb
+F
+201.26 504.567 m
+209.764 504.567 l
+209.764 498.898 l
+235.277 498.898 l
+235.277 504.567 l
+255.118 504.567 l
+255.118 521.575 l
+201.26 521.575 l
+201.26 527.244 l
+201.26 498.898 l
+0 0 0 rgb
+S
+newpath
+222.236 498.898 m
+222.236 493.229 l
+S
+newpath
+212.598 504.567 m
+212.598 498.898 l
+S
+newpath
+227.906 498.898 m
+227.906 493.229 l
+S
+newpath
+218.268 504.567 m
+218.268 498.898 l
+S
+newpath
+225.072 498.898 m
+225.072 493.229 l
+S
+newpath
+215.434 504.567 m
+215.434 498.898 l
+S
+newpath
+230.74 498.898 m
+230.74 493.229 l
+S
+newpath
+221.103 504.567 m
+221.103 498.898 l
+S
+newpath
+233.576 498.898 m
+233.576 493.229 l
+S
+newpath
+223.938 504.567 m
+223.938 498.898 l
+S
+newpath
+236.411 498.898 m
+236.411 493.229 l
+S
+newpath
+226.773 504.567 m
+226.773 498.898 l
+S
+newpath
+239.245 498.898 m
+239.245 493.229 l
+S
+newpath
+229.607 504.567 m
+229.607 498.898 l
+S
+newpath
+242.079 498.898 m
+242.079 493.229 l
+S
+newpath
+232.441 504.567 m
+232.441 498.898 l
+S
+(NIC)
+215 510 T
+newpath
+352.632 513.072 m
+349.797 513.072 l
+349.797 510.238 l
+352.632 510.238 l
+S
+newpath
+342.994 518.741 m
+340.159 518.741 l
+340.159 515.907 l
+342.994 515.907 l
+S
+newpath
+352.632 498.899 m
+361.136 498.899 l
+361.136 493.23 l
+386.648 493.23 l
+386.648 498.899 l
+406.49 498.899 l
+406.49 515.907 l
+352.632 515.907 l
+352.632 521.576 l
+352.632 493.23 l
+closepath
+1 1 1 rgb
+F
+352.632 498.899 m
+361.136 498.899 l
+361.136 493.23 l
+386.648 493.23 l
+386.648 498.899 l
+406.49 498.899 l
+406.49 515.907 l
+352.632 515.907 l
+352.632 521.576 l
+352.632 493.23 l
+0 0 0 rgb
+S
+newpath
+342.994 504.568 m
+351.498 504.568 l
+351.498 498.899 l
+377.01 498.899 l
+377.01 504.568 l
+396.852 504.568 l
+396.852 521.576 l
+342.994 521.576 l
+342.994 527.245 l
+342.994 498.899 l
+closepath
+1 1 1 rgb
+F
+342.994 504.568 m
+351.498 504.568 l
+351.498 498.899 l
+377.01 498.899 l
+377.01 504.568 l
+396.852 504.568 l
+396.852 521.576 l
+342.994 521.576 l
+342.994 527.245 l
+342.994 498.899 l
+0 0 0 rgb
+S
+newpath
+363.97 498.899 m
+363.97 493.23 l
+S
+newpath
+354.332 504.568 m
+354.332 498.899 l
+S
+newpath
+369.64 498.899 m
+369.64 493.23 l
+S
+newpath
+360.002 504.568 m
+360.002 498.899 l
+S
+newpath
+366.805 498.899 m
+366.805 493.23 l
+S
+newpath
+357.167 504.568 m
+357.167 498.899 l
+S
+newpath
+372.474 498.899 m
+372.474 493.23 l
+S
+newpath
+362.836 504.568 m
+362.836 498.899 l
+S
+newpath
+375.309 498.899 m
+375.309 493.23 l
+S
+newpath
+365.671 504.568 m
+365.671 498.899 l
+S
+newpath
+378.144 498.899 m
+378.144 493.23 l
+S
+newpath
+368.506 504.568 m
+368.506 498.899 l
+S
+newpath
+380.978 498.899 m
+380.978 493.23 l
+S
+newpath
+371.34 504.568 m
+371.34 498.899 l
+S
+newpath
+383.813 498.899 m
+383.813 493.23 l
+S
+newpath
+374.175 504.568 m
+374.175 498.899 l
+S
+(NIC)
+357 510 T
+newpath
+235.547 416.693 m
+238.382 413.858 l
+261.059 413.858 l
+263.893 416.693 l
+closepath
+0.8 0.8 0.8 rgb
+F
+235.547 416.693 m
+238.382 413.858 l
+261.059 413.858 l
+263.893 416.693 l
+0 0 0 rgb
+S
+[34.0158 0 0 -28.3465 232.712 445.039] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 235.547 442.205] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 230.21 412.079] rect
+S
+newpath
+231.22 409.753 m
+232.352 409.692 l
+S
+newpath
+229.157 403.05 m
+230.29 402.99 l
+S
+newpath
+229.673 404.726 m
+230.805 404.665 l
+S
+newpath
+230.189 406.402 m
+231.321 406.341 l
+S
+newpath
+230.705 408.077 m
+231.837 408.016 l
+S
+newpath
+232.919 409.662 m
+234.051 409.601 l
+S
+newpath
+230.856 402.959 m
+231.988 402.898 l
+S
+newpath
+231.371 404.635 m
+232.504 404.574 l
+S
+newpath
+231.887 406.31 m
+233.019 406.25 l
+S
+newpath
+232.403 407.986 m
+233.535 407.925 l
+S
+newpath
+234.617 409.571 m
+235.749 409.51 l
+S
+newpath
+232.554 402.868 m
+233.686 402.807 l
+S
+newpath
+233.07 404.544 m
+234.202 404.483 l
+S
+newpath
+233.585 406.219 m
+234.718 406.158 l
+S
+newpath
+234.101 407.895 m
+235.233 407.834 l
+S
+newpath
+236.315 409.479 m
+237.448 409.419 l
+S
+newpath
+234.252 402.777 m
+235.385 402.716 l
+S
+newpath
+234.768 404.452 m
+235.9 404.392 l
+S
+newpath
+235.284 406.128 m
+236.416 406.067 l
+S
+newpath
+235.8 407.804 m
+236.932 407.743 l
+S
+newpath
+238.014 409.388 m
+239.146 409.327 l
+S
+newpath
+235.951 402.686 m
+237.083 402.625 l
+S
+newpath
+236.466 404.361 m
+237.599 404.301 l
+S
+newpath
+236.982 406.037 m
+238.114 405.976 l
+S
+newpath
+237.498 407.713 m
+238.63 407.652 l
+S
+newpath
+239.712 409.297 m
+240.844 409.236 l
+S
+newpath
+237.649 402.595 m
+238.781 402.534 l
+S
+newpath
+238.165 404.27 m
+239.297 404.209 l
+S
+newpath
+238.681 405.946 m
+239.813 405.885 l
+S
+newpath
+239.196 407.621 m
+240.329 407.561 l
+S
+newpath
+241.41 409.206 m
+242.543 409.145 l
+S
+newpath
+239.347 402.503 m
+240.48 402.443 l
+S
+newpath
+239.863 404.179 m
+240.995 404.118 l
+S
+newpath
+240.379 405.855 m
+241.511 405.794 l
+S
+newpath
+240.895 407.53 m
+242.027 407.47 l
+S
+newpath
+243.109 409.115 m
+244.241 409.054 l
+S
+newpath
+241.046 402.412 m
+242.178 402.352 l
+S
+newpath
+241.562 404.088 m
+242.694 404.027 l
+S
+newpath
+242.077 405.764 m
+243.21 405.703 l
+S
+newpath
+242.593 407.439 m
+243.725 407.378 l
+S
+newpath
+244.807 409.024 m
+245.939 408.963 l
+S
+newpath
+242.744 402.321 m
+243.876 402.26 l
+S
+newpath
+243.26 403.997 m
+244.392 403.936 l
+S
+newpath
+243.776 405.672 m
+244.908 405.612 l
+S
+newpath
+244.291 407.348 m
+245.424 407.287 l
+S
+newpath
+246.505 408.933 m
+247.638 408.872 l
+S
+newpath
+244.442 402.23 m
+245.575 402.169 l
+S
+newpath
+244.958 403.906 m
+246.09 403.845 l
+S
+newpath
+245.474 405.581 m
+246.606 405.52 l
+S
+newpath
+245.99 407.257 m
+247.122 407.196 l
+S
+newpath
+248.204 408.841 m
+249.336 408.781 l
+S
+newpath
+246.141 402.139 m
+247.273 402.078 l
+S
+newpath
+246.657 403.814 m
+247.789 403.754 l
+S
+newpath
+247.172 405.49 m
+248.305 405.429 l
+S
+newpath
+247.688 407.166 m
+248.82 407.105 l
+S
+newpath
+249.902 408.75 m
+251.034 408.689 l
+S
+newpath
+247.839 402.048 m
+248.971 401.987 l
+S
+newpath
+248.355 403.723 m
+249.487 403.663 l
+S
+newpath
+248.871 405.399 m
+250.003 405.338 l
+S
+newpath
+249.386 407.075 m
+250.519 407.014 l
+S
+newpath
+251.6 408.659 m
+252.733 408.598 l
+S
+newpath
+260.658 408.173 m
+261.791 408.112 l
+S
+newpath
+249.538 401.957 m
+250.67 401.896 l
+S
+newpath
+258.595 401.47 m
+259.728 401.41 l
+S
+newpath
+250.053 403.632 m
+251.186 403.571 l
+S
+newpath
+259.111 403.146 m
+260.243 403.085 l
+S
+newpath
+250.569 405.308 m
+251.701 405.247 l
+S
+newpath
+259.627 404.822 m
+260.759 404.761 l
+S
+newpath
+251.085 406.983 m
+252.217 406.923 l
+S
+newpath
+260.143 406.497 m
+261.275 406.437 l
+S
+newpath
+253.299 408.568 m
+254.431 408.507 l
+S
+newpath
+262.357 408.082 m
+263.489 408.021 l
+S
+newpath
+251.236 401.865 m
+252.368 401.805 l
+S
+newpath
+260.294 401.379 m
+261.426 401.319 l
+S
+newpath
+251.752 403.541 m
+252.884 403.48 l
+S
+newpath
+260.81 403.055 m
+261.942 402.994 l
+S
+newpath
+252.267 405.217 m
+253.4 405.156 l
+S
+newpath
+261.325 404.731 m
+262.457 404.67 l
+S
+newpath
+252.783 406.892 m
+253.915 406.832 l
+S
+newpath
+261.841 406.406 m
+262.973 406.345 l
+S
+newpath
+254.997 408.477 m
+256.129 408.416 l
+S
+newpath
+264.055 407.991 m
+265.187 407.93 l
+S
+newpath
+252.934 401.774 m
+254.067 401.714 l
+S
+newpath
+261.992 401.288 m
+263.124 401.227 l
+S
+newpath
+253.45 403.45 m
+254.582 403.389 l
+S
+newpath
+262.508 402.964 m
+263.64 402.903 l
+S
+newpath
+253.966 405.126 m
+255.098 405.065 l
+S
+newpath
+263.024 404.639 m
+264.156 404.579 l
+S
+newpath
+254.481 406.801 m
+255.614 406.74 l
+S
+newpath
+263.539 406.315 m
+264.672 406.254 l
+S
+newpath
+256.696 408.386 m
+257.828 408.325 l
+S
+newpath
+265.753 407.9 m
+266.886 407.839 l
+S
+newpath
+254.633 401.683 m
+255.765 401.622 l
+S
+newpath
+263.69 401.197 m
+264.823 401.136 l
+S
+newpath
+255.148 403.359 m
+256.281 403.298 l
+S
+newpath
+264.206 402.873 m
+265.338 402.812 l
+S
+newpath
+255.664 405.034 m
+256.796 404.974 l
+S
+newpath
+264.722 404.548 m
+265.854 404.488 l
+S
+newpath
+256.18 406.71 m
+257.312 406.649 l
+S
+newpath
+265.238 406.224 m
+266.37 406.163 l
+S
+newpath
+334.213 416.693 m
+337.047 413.858 l
+359.725 413.858 l
+362.559 416.693 l
+closepath
+0.8 0.8 0.8 rgb
+F
+334.213 416.693 m
+337.047 413.858 l
+359.725 413.858 l
+362.559 416.693 l
+0 0 0 rgb
+S
+[34.0158 0 0 -28.3465 331.378 445.039] rect
+gsave
+0.8 0.8 0.8 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -22.6772 334.213 442.205] rect
+gsave
+0.7 0.7 0.7 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[39.6282 -2.12668 -3.43822 -11.171 328.876 412.079] rect
+S
+newpath
+329.886 409.753 m
+331.018 409.692 l
+S
+newpath
+327.823 403.05 m
+328.955 402.99 l
+S
+newpath
+328.339 404.726 m
+329.471 404.665 l
+S
+newpath
+328.855 406.402 m
+329.987 406.341 l
+S
+newpath
+329.37 408.077 m
+330.503 408.016 l
+S
+newpath
+331.584 409.662 m
+332.717 409.601 l
+S
+newpath
+329.522 402.959 m
+330.654 402.898 l
+S
+newpath
+330.037 404.635 m
+331.169 404.574 l
+S
+newpath
+330.553 406.31 m
+331.685 406.25 l
+S
+newpath
+331.069 407.986 m
+332.201 407.925 l
+S
+newpath
+333.283 409.571 m
+334.415 409.51 l
+S
+newpath
+331.22 402.868 m
+332.352 402.807 l
+S
+newpath
+331.736 404.544 m
+332.868 404.483 l
+S
+newpath
+332.251 406.219 m
+333.384 406.158 l
+S
+newpath
+332.767 407.895 m
+333.899 407.834 l
+S
+newpath
+334.981 409.479 m
+336.113 409.419 l
+S
+newpath
+332.918 402.777 m
+334.05 402.716 l
+S
+newpath
+333.434 404.452 m
+334.566 404.392 l
+S
+newpath
+333.95 406.128 m
+335.082 406.067 l
+S
+newpath
+334.465 407.804 m
+335.598 407.743 l
+S
+newpath
+336.68 409.388 m
+337.812 409.327 l
+S
+newpath
+334.617 402.686 m
+335.749 402.625 l
+S
+newpath
+335.132 404.361 m
+336.265 404.301 l
+S
+newpath
+335.648 406.037 m
+336.78 405.976 l
+S
+newpath
+336.164 407.713 m
+337.296 407.652 l
+S
+newpath
+338.378 409.297 m
+339.51 409.236 l
+S
+newpath
+336.315 402.595 m
+337.447 402.534 l
+S
+newpath
+336.831 404.27 m
+337.963 404.209 l
+S
+newpath
+337.346 405.946 m
+338.479 405.885 l
+S
+newpath
+337.862 407.621 m
+338.994 407.561 l
+S
+newpath
+340.076 409.206 m
+341.208 409.145 l
+S
+newpath
+338.013 402.503 m
+339.146 402.443 l
+S
+newpath
+338.529 404.179 m
+339.661 404.118 l
+S
+newpath
+339.045 405.855 m
+340.177 405.794 l
+S
+newpath
+339.56 407.53 m
+340.693 407.47 l
+S
+newpath
+341.775 409.115 m
+342.907 409.054 l
+S
+newpath
+339.712 402.412 m
+340.844 402.352 l
+S
+newpath
+340.227 404.088 m
+341.36 404.027 l
+S
+newpath
+340.743 405.764 m
+341.875 405.703 l
+S
+newpath
+341.259 407.439 m
+342.391 407.378 l
+S
+newpath
+343.473 409.024 m
+344.605 408.963 l
+S
+newpath
+341.41 402.321 m
+342.542 402.26 l
+S
+newpath
+341.926 403.997 m
+343.058 403.936 l
+S
+newpath
+342.441 405.672 m
+343.574 405.612 l
+S
+newpath
+342.957 407.348 m
+344.089 407.287 l
+S
+newpath
+345.171 408.933 m
+346.304 408.872 l
+S
+newpath
+343.108 402.23 m
+344.241 402.169 l
+S
+newpath
+343.624 403.906 m
+344.756 403.845 l
+S
+newpath
+344.14 405.581 m
+345.272 405.52 l
+S
+newpath
+344.656 407.257 m
+345.788 407.196 l
+S
+newpath
+346.87 408.841 m
+348.002 408.781 l
+S
+newpath
+344.807 402.139 m
+345.939 402.078 l
+S
+newpath
+345.322 403.814 m
+346.455 403.754 l
+S
+newpath
+345.838 405.49 m
+346.97 405.429 l
+S
+newpath
+346.354 407.166 m
+347.486 407.105 l
+S
+newpath
+348.568 408.75 m
+349.7 408.689 l
+S
+newpath
+346.505 402.048 m
+347.637 401.987 l
+S
+newpath
+347.021 403.723 m
+348.153 403.663 l
+S
+newpath
+347.537 405.399 m
+348.669 405.338 l
+S
+newpath
+348.052 407.075 m
+349.184 407.014 l
+S
+newpath
+350.266 408.659 m
+351.399 408.598 l
+S
+newpath
+359.324 408.173 m
+360.456 408.112 l
+S
+newpath
+348.203 401.957 m
+349.336 401.896 l
+S
+newpath
+357.261 401.47 m
+358.393 401.41 l
+S
+newpath
+348.719 403.632 m
+349.851 403.571 l
+S
+newpath
+357.777 403.146 m
+358.909 403.085 l
+S
+newpath
+349.235 405.308 m
+350.367 405.247 l
+S
+newpath
+358.293 404.822 m
+359.425 404.761 l
+S
+newpath
+349.751 406.983 m
+350.883 406.923 l
+S
+newpath
+358.808 406.497 m
+359.941 406.437 l
+S
+newpath
+351.965 408.568 m
+353.097 408.507 l
+S
+newpath
+361.023 408.082 m
+362.155 408.021 l
+S
+newpath
+349.902 401.865 m
+351.034 401.805 l
+S
+newpath
+358.96 401.379 m
+360.092 401.319 l
+S
+newpath
+350.417 403.541 m
+351.55 403.48 l
+S
+newpath
+359.475 403.055 m
+360.608 402.994 l
+S
+newpath
+350.933 405.217 m
+352.065 405.156 l
+S
+newpath
+359.991 404.731 m
+361.123 404.67 l
+S
+newpath
+351.449 406.892 m
+352.581 406.832 l
+S
+newpath
+360.507 406.406 m
+361.639 406.345 l
+S
+newpath
+353.663 408.477 m
+354.795 408.416 l
+S
+newpath
+362.721 407.991 m
+363.853 407.93 l
+S
+newpath
+351.6 401.774 m
+352.732 401.714 l
+S
+newpath
+360.658 401.288 m
+361.79 401.227 l
+S
+newpath
+352.116 403.45 m
+353.248 403.389 l
+S
+newpath
+361.174 402.964 m
+362.306 402.903 l
+S
+newpath
+352.632 405.126 m
+353.764 405.065 l
+S
+newpath
+361.689 404.639 m
+362.822 404.579 l
+S
+newpath
+353.147 406.801 m
+354.28 406.74 l
+S
+newpath
+362.205 406.315 m
+363.337 406.254 l
+S
+newpath
+355.361 408.386 m
+356.494 408.325 l
+S
+newpath
+364.419 407.9 m
+365.551 407.839 l
+S
+newpath
+353.298 401.683 m
+354.431 401.622 l
+S
+newpath
+362.356 401.197 m
+363.489 401.136 l
+S
+newpath
+353.814 403.359 m
+354.946 403.298 l
+S
+newpath
+362.872 402.873 m
+364.004 402.812 l
+S
+newpath
+354.33 405.034 m
+355.462 404.974 l
+S
+newpath
+363.388 404.548 m
+364.52 404.488 l
+S
+newpath
+354.846 406.71 m
+355.978 406.649 l
+S
+newpath
+363.904 406.224 m
+365.036 406.163 l
+S
+newpath
+362.835 538.584 m
+362.835 526.679 l
+0.992126 w
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+362.835 526.679 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+374.174 524.411 m
+374.174 536.317 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+374.174 536.317 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+362.834 581.102 m
+362.834 569.197 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+362.834 569.197 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+374.173 566.929 m
+374.173 578.835 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+374.173 578.835 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+476.22 581.102 m
+476.22 569.197 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+476.22 569.197 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+487.559 566.929 m
+487.559 578.835 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+487.559 578.835 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+476.22 623.622 m
+476.22 611.717 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+476.22 611.717 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+487.559 609.449 m
+487.559 621.355 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+487.559 621.355 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+476.22 666.142 m
+476.22 654.237 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+476.22 654.237 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+487.559 651.969 m
+487.559 663.875 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+487.559 663.875 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+476.22 708.661 m
+476.22 696.756 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+476.22 696.756 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+487.559 694.488 m
+487.559 706.394 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+487.559 706.394 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+476.22 538.582 m
+476.22 526.677 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+476.22 526.677 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+487.559 524.409 m
+487.559 536.315 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+487.559 536.315 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+362.834 643.464 m
+362.834 631.559 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+362.834 631.559 translate
+-90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+374.173 629.291 m
+374.173 641.197 l
+[0.0992126 0.992126 ] 0 d
+S
+pusht
+374.173 641.197 translate
+90 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+/Times-Roman 12 sf
+(...)
+291 441 T
+newpath
+232.441 484.724 m
+232.441 467.717 l
+368.504 467.717 l
+368.504 487.559 l
+1 w
+S
+newpath
+252.283 467.717 m
+252.283 450.709 l
+S
+newpath
+354.331 467.717 m
+354.331 450.709 l
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 4014 a
+ currentpoint currentpoint translate 1 0.75989 div 1 0.75989 div scale
+neg exch neg exch translate
+ 382 4014 a 1218 4210 a Fp(Abbildung)i(3.2:)41
+b(DRBD)29 b(im)i(Kernel)1831 5622 y(19)p eop
+%%Page: 20 22
+20 21 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)712
+b(3.1.)71 b(DRBD)30 b(IM)g(KERNEL)p 382 299 2989 4 v
+382 539 a Fp(Alternativ)g(gibt)g(es)f(auc)m(h)i(die)f(M\366glic)m(hk)m
+(eit,)i(eine)e(auf)f(IP-V)-8 b(ernetzung)32 b(aufsetzende)382
+652 y(Implemen)m(tierung)25 b(zu)e(v)m(erw)m(enden.)39
+b(Dieser)23 b(Lo)s(c)m(k-Manager)h(k)m(\366nn)m(te)g(zusammen)f(mit)382
+764 y(einem)31 b(um)g(die)g(exakte)g(Shared-Disk)g(Seman)m(tik)h(erw)m
+(eiterten)h(DRBD)d(den)h(Einsatz)382 877 y(v)m(on)g(GFS)f(auf)g(DRBD)g
+(erm\366glic)m(hen.)382 1167 y Fn(3.1.1.2)103 b(DRBDs)33
+b(Seman)m(tik)382 1389 y Fp(Jedes)28 b(DRBD-Ger\344t)f(ist)h(einem)g
+(der)g(folgenden)g(Zust\344nde,)h(die)f(jederzeit)g(ge\344ndert)382
+1502 y(w)m(erden)k(k)m(\366nnen,)f(zugeordnet:)382 1764
+y(Primary)133 b(Das)34 b(DRBD-Ger\344t)g(k)-5 b(ann)34
+b(zum)g(Sc)m(hreib)s(en)i(und)e(Lesen)h(ge\366\033net)f(w)m(er-)839
+1877 y(den.)63 b(Es)37 b(k)-5 b(ann)38 b(mit)g(DRBD-Ger\344ten)g(auf)f
+(anderen)i(Knoten,)h(die)e(im)839 1990 y(sekund\344ren)31
+b(Zustand)g(sind,)g(v)m(erbunden)h(sein.)382 2177 y(Secondary)77
+b(Das)23 b(DRBD-Ger\344t)h(k)-5 b(ann)24 b(n)m(ur)g(zum)g(Lesen)h
+(ge\366\033net)f(w)m(erden.)40 b(Es)23 b(k)-5 b(ann)839
+2290 y(mit)23 b(anderen)g(DRBD-Ger\344ten)g(auf)g(anderen)g(Knoten)g(v)
+m(erbunden)h(sein.)382 2553 y(Die)31 b(Einf\374hrung)h(dieser)g
+(Zust\344nde)g(en)m(tspric)m(h)m(t)h(der)e(V)-8 b(erw)m(endung)34
+b(des)d(SCSI-Lo)s(c)m(k-)382 2666 y(K)m(ommandos)h(v)m(on)f(HP)f(auf)g
+(dem)h(Shared)h(SCSI-Bus)e(\(siehe)h(2.3.3.3\).)382 2959
+y Fo(3.1.2)112 b(Single)37 b(P)m(oin)m(ts)e(of)j(F)-9
+b(ailure)382 3180 y Fp(Ein)40 b(Single)g(P)m(oin)m(t)h(of)d(F)-8
+b(ailure)41 b(\(=SPOF\))f(ist)f(eine)h(K)m(omp)s(onen)m(te)h(eines)f
+(Systems,)382 3293 y(deren)i(Ausfall)f(den)h(Ausfall)f(des)g(ganzen)i
+(Systems)e(b)s(edeutet.)74 b(Ein)42 b(HA-Cluster)382
+3406 y(sollte)30 b(k)m(einen)i(SPOF)f(aufw)m(eisen.)382
+3696 y Fn(3.1.2.1)103 b(F)-9 b(estplatten)37 b(und)d(deren)g(K)m(on)m
+(troller)382 3917 y Fp(Legt)24 b(man)g(die)f(Daten)h(auf)f(einem)h
+(Massensp)s(eic)m(herger\344t)h(ab,)g(das)e(v)m(on)h(allen)f(Knoten)382
+4030 y(des)i(Clusters)g(aus)g(zug\344nglic)m(h)j(ist,)e(so)e(ist)h(der)
+h(Zugri\033sw)m(eg)g(ein)g(prinzipieller)h(SPOF.)382
+4193 y(Dieser)i(SPOF)h(existiert)g(b)s(ei)f(DRBD)f(nic)m(h)m(t.)42
+b(F\344llt)29 b(die)h(F)-8 b(estplatte)30 b(o)s(der)g(eine)f(K)m(om-)
+382 4306 y(p)s(onen)m(te)24 b(auf)e(dem)h(Zugri\033sw)m(eg)h(zur)f(F)-8
+b(estplatte)24 b(aus)e(\(z.B.)h(K)m(on)m(troller,)k(Kab)s(el,)d(PCI-)
+382 4419 y(Slot,)32 b(etc.\),)f(wird)h(einfac)m(h)g(der)f(gesam)m(te)h
+(Knoten)g(als)f(ausgefallen)h(b)s(etrac)m(h)m(tet,)h(und)382
+4532 y(der)h(zw)m(eite)g(Knoten,)h(der)f(ja)f(eb)s(enfalls)g(mit)h
+(einer)g(K)m(opie)g(der)g(Daten)g(ausgestattet)382 4645
+y(ist,)c(\374b)s(ernimm)m(t.)382 4934 y Fn(3.1.2.2)103
+b(Netzw)m(erk)382 5156 y Fp(F)-8 b(alls)37 b(das)g(Netzw)m(erk)h(zwisc)
+m(hen)g(den)g(Knoten)g(des)f(Clusters)g(ausf\344llt,)i(ist)e(dies)g
+(f\374r)382 5269 y(Cluster)e(b)s(eider)g(Arten)g(gleic)m(herma\377en)j
+(ein)d(Problem)h(\(split)f(brain)g(problem\).)55 b(Ist)382
+5382 y(das)40 b(Netzw)m(erk)h(zu)g(den)f(Clien)m(ts)i(nic)m(h)m(t)f(un)
+m(terbro)s(c)m(hen)i(o)s(der)e(handelt)g(es)f(sic)m(h)h(n)m(ur)1831
+5622 y(20)p eop
+%%Page: 21 23
+21 22 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)701
+b(3.2.)71 b(DIE)30 b(PR)m(OTOKOLLE)p 382 299 2989 4 v
+1309 1116 a
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1309 1116 a @beginspecial 50 @llx 682 @lly
+233 @urx 790 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//model.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu May 11 10:32:34 2000
+%%Title: model.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 682 233 790
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+113.386 751.181 m
+170.079 751.181 l
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+[3 3 ] 0 d
+S
+/Times-Roman 12 sf
+(inter-cluster network)
+97 779 T
+(node)
+73 748 T
+(node)
+186 748 T
+newpath
+150.236 773.858 m
+144.567 754.016 l
+0.283465 w
+[] 0 d
+S
+pusht
+144.567 754.016 translate
+-105.945 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+(clients)
+124 685 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+1 w
+[3 3 ] 0 d
+S
+pusht
+141.732 700.157 translate
+-90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1309 1116 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1309 1116 a 1091 1312 a Fp(Abbildung)h(3.3:)41
+b(Mo)s(dell)30 b(des)h(HA-Clusters)382 1587 y(um)42 b(eine)g(v)m
+(or\374b)s(ergehende)i(St\366rung)f(des)e(Netzw)m(erk)m(es,)46
+b(k)-5 b(ann)42 b(es)f(dazu)h(k)m(ommen,)382 1700 y(da\377)i(b)s(eide)h
+(Knoten)g(annehmen,)k(da\377)44 b(der)g(jew)m(eils)h(andere)g
+(ausgefallen)g(ist.)81 b(Im)382 1813 y(g\374nstigsten)30
+b(F)-8 b(all)29 b(k)m(\366nnen)h(die)f(Clien)m(ts)h(k)m(einen)g(der)f
+(Cluster-Knoten)i(erreic)m(hen,)g(im)382 1926 y(sc)m(hlimmsten)h(F)-8
+b(all)31 b(zerst\366rt)g(der)f(aktiv)m(e)h(Knoten)g(den)g(Datenstand.)
+382 2089 y(Damit)25 b(der)g(Ausfall)g(des)f(Netzw)m(erk)m(es)i(nic)m(h)
+m(t)h(zu)e(diesem)g(skizzierten)g(Szenario)h(f\374hrt,)382
+2202 y(sollte)41 b(es)g(einen)h(w)m(eiteren)h(K)m(omm)m(unik)-5
+b(ationsw)m(eg)45 b(zwisc)m(hen)d(den)g(Knoten)g(geb)s(en.)382
+2315 y(Hierf\374r)d(wird)g(gerne)g(ein)g(serielles)g(Kab)s(el)g(v)m
+(erw)m(endet,)j(da)d(serielle)g(Sc)m(hnittstellen)382
+2428 y(meistens)c(v)m(orhanden)h(sind)e(und)h(die)f(K)m(omm)m(unik)-5
+b(ation)38 b(\374b)s(er)c(die)h(serielle)g(Sc)m(hnitt-)382
+2541 y(stelle)30 b(nic)m(h)m(t)i(die)f(F)-8 b(unktion)32
+b(des)e(IP-Subsystems)g(im)h(Kernel)g(erfordert.)382
+2877 y Fj(3.2)130 b(Die)44 b(Protok)l(olle)382 3129 y
+Fp(Der)k(Nac)m(h)m(teil,)54 b(der)48 b(m\366glic)m(herw)m(eise)j(b)s
+(ei)d(der)g(V)-8 b(erw)m(endung)50 b(eines)e(IP-basierten)382
+3242 y(Netzw)m(erk)m(es)35 b(gegen)m(\374b)s(er)h(eines)e(SCSI-Busses)g
+(en)m(tsteh)m(t,)j(ist,)e(da\377)f(die)h(Zeit,)g(bis)f(ein)382
+3355 y(einzelners)j(P)m(ak)m(et)g(sein)e(Ziel)h(erreic)m(h)m(t,)k(auf)
+35 b(einem)i(IP-Netzw)m(erk)f(h\366her)h(sein)e(k)-5
+b(ann)382 3468 y(als)30 b(auf)g(einem)h(SCSI-Bus)g(b)s(ei)f(gleic)m
+(her)i(Bandbreite.)382 3631 y(Dieser)38 b(Nac)m(h)m(teil)j(wird)e(b)s
+(esonders)f(deutlic)m(h,)k(w)m(enn)e(in)e(den)h(Knoten)h(des)e(DRBD-)
+382 3744 y(Clusters)44 b(auc)m(h)h(SCSI-F)-8 b(estplatten)46
+b(v)m(erw)m(endet)g(w)m(erden.)82 b(Die)44 b(V)-8 b(erz\366gerung,)49
+b(die)382 3857 y(durc)m(h)34 b(die)f(\334b)s(ertragung)h(\374b)s(er)f
+(das)g(IP-Netzw)m(erk)h(en)m(tsteh)m(t,)h(b)s(etri\033t)e(n)m(ur)h
+(DRBD-)382 3970 y(basierte)48 b(Cluster,)j(w)m(\344hrend)e(die)e(V)-8
+b(erz\366gerung)49 b(des)e(SCSI-Busses)g(den)g(DRBD-)382
+4083 y(Cluster)31 b(und)g(Shared)g(SCSI-Bus-Cluster)g(gleic)m
+(herma\377en)i(b)s(etri\033t.)382 4245 y(Aus)24 b(diesem)i(Grund)f(ist)
+g(DRBD)g(mit)g(drei)h(Protok)m(ollen)h(ausgestattet,)g(die)e(v)m(ersc)m
+(hie-)382 4358 y(dene)32 b(Abstufungen)h(des)e(Durc)m(hsatz-K)m
+(onsistenz-K)m(ompromisses)36 b(bieten.)46 b(F\374r)32
+b(die)382 4471 y(Betrac)m(h)m(tung)c(der)e(Protok)m(olle)h(im)e(F)-8
+b(alle)26 b(des)g(Ausfalls)e(einer)i(K)m(omp)s(onen)m(te)i(wird)e(das)
+382 4584 y(in)k(Abbildung)i(3.3)e(dargestellte)i(Mo)s(dell)e(v)m(erw)m
+(endet.)382 4747 y(Dab)s(ei)c(wird)h(da)m(v)m(on)g(ausgegangen,)h
+(da\377)f(jede)f(der)g(K)m(omp)s(onen)m(ten,)k(die)c(b)s(eiden)h(Kno-)
+382 4860 y(ten)j(und)g(das)f(v)m(erbindende)i(Netzw)m(erk,)g(en)m(t)m
+(w)m(eder)h(funktionieren)f(o)s(der)f(nic)m(h)m(t)h(funk-)382
+4973 y(tionieren.)1831 5622 y(21)p eop
+%%Page: 22 24
+22 23 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)701
+b(3.2.)71 b(DIE)30 b(PR)m(OTOKOLLE)p 382 299 2989 4 v
+382 539 a Fo(3.2.1)112 b(Protok)m(oll)35 b(A)382 748
+y Fp(Bei)e(Protok)m(oll)i(A)d(wird)i(eine)f(Sc)m(hreibanforderung)j
+(als)d(abgesc)m(hlossen)h(b)s(etrac)m(h)m(tet,)382 861
+y(sobald)26 b(der)g(Sc)m(hreib)m(v)m(organg)j(auf)c(die)h(ph)m(ysisc)m
+(he)h(F)-8 b(estplatte)27 b(abgesc)m(hlossen)g(ist)e(und)382
+974 y(die)g(Daten)g(gesendet)h(wurden.)39 b(Da)25 b(TCP)-8
+b(,)26 b(das)f(v)m(erw)m(endete)h(IP-Protok)m(oll,)i(ein)d(p)s(eer-)382
+1087 y(to-p)s(eer)f(Protok)m(oll)i(ist,)f(funktioniert)g(der)f(K)m(omm)
+m(unik)-5 b(ationsk)g(anal)27 b(n)m(ur)e(solange)g(b)s(ei-)382
+1200 y(de)30 b(Endpunkte)i(der)f(K)m(omm)m(unik)-5 b(ation)33
+b(funktionieren.)382 1351 y(F\344llt)c(n)m(un)h(der)f(sendende)g
+(Knoten)h(unmittelbar)h(nac)m(h)f(dem)f(Absc)m(hic)m(k)m(en)h(eines)f
+(Da-)382 1463 y(tenpak)m(etes)d(aus,)g(so)f(k)-5 b(ann)25
+b(TCP)h(nic)m(h)m(t)h(sic)m(herstellen,)g(da\377)f(dieses)f(Datenpak)m
+(et)h(auc)m(h)382 1576 y(b)s(eim)37 b(empfangenden)i(Knoten)f(ank)m
+(omm)m(t.)63 b(\334b)s(ernimm)m(t)39 b(n)m(un)f(der)f(no)s(c)m(h)h
+(funktio-)382 1689 y(nierende)d(Knoten)g(das)f(Service,)h(k)-5
+b(ann)34 b(es)g(sein,)g(da\377)h(er)f(die)g(letzten)h(Datenpak)m(ete,)
+382 1802 y(die)28 b(der)g(gerade)h(ausgefallene)f(Knoten)h(no)s(c)m(h)f
+(gesendet)h(hat,)g(nic)m(h)m(t)g(b)s(ek)m(ommen)g(hat.)382
+1953 y(Dieses)d(V)-8 b(erhalten)28 b(ist)e(f\374r)g(eine)h
+(transaktionsbasierte)h(An)m(w)m(endung)h(nic)m(h)m(t)f(akzepta-)382
+2066 y(b)s(el.)45 b(Eine)33 b(T)-8 b(ransaktion)34 b(m)m(u\377)f(p)s
+(ermanen)m(t)g(o)s(der)g(gar)f(nic)m(h)m(t)i(durc)m(hgef\374hrt)g(w)m
+(erden.)382 2179 y(Hat)22 b(der)g(sendende)h(Knoten,)i(b)s(ev)m(or)d
+(er)g(ausgefallen)h(ist,)h(dem)e(Clien)m(t)i(mitgeteilt,)h(da\377)382
+2292 y(die)g(T)-8 b(ransaktion)26 b(funktioniert)g(hat,)g(sind)f(die)g
+(V)-8 b(er\344nderungen)27 b(durc)m(h)g(die)e(T)-8 b(ransak-)382
+2405 y(tion)29 b(nac)m(h)h(der)f(\334b)s(ernahme)g(durc)m(h)h(den)f(zw)
+m(eiten)h(Knoten)g(nic)m(h)m(t)g(mehr)g(v)m(orhanden.)382
+2518 y(Eine)h(der)g(grundlegenden)h(Eigensc)m(haften)h(einer)e(T)-8
+b(ransaktion)31 b(wurde)h(v)m(erletzt.)382 2668 y(Mit)23
+b(Protok)m(oll)i(A)d(k)-5 b(ann)23 b(k)m(ein)h(Ausfall)e(einer)i(K)m
+(omp)s(onen)m(te)h(\(des)f(Mo)s(dells)e(aus)h(Abbil-)382
+2781 y(dung)29 b(3.3\))f(toleriert)h(w)m(erden,)h(ohne)f(die)f(T)-8
+b(ransaktionseigensc)m(haften)31 b(zu)d(v)m(erletzen.)382
+2894 y(Protok)m(oll)23 b(A)d(\034ndet)i(jedo)s(c)m(h)g(seine)f(An)m(w)m
+(endung,)26 b(w)m(enn)c(auf)f(hohen)h(Datendurc)m(hsatz,)382
+3007 y(nic)m(h)m(t)32 b(ab)s(er)e(auf)h(die)f(T)-8 b
+(ransaktionseigensc)m(haften)33 b(w)m(ertgelegt)g(wird.)382
+3283 y Fo(3.2.2)112 b(Protok)m(oll)35 b(B)382 3492 y
+Fp(Bei)e(der)h(V)-8 b(erw)m(endung)36 b(v)m(on)e(Protok)m(oll)h(B)e
+(wird)h(ein)g(Sc)m(hreib)m(v)m(organg)j(dann)d(als)f(ab-)382
+3605 y(gesc)m(hlossen)26 b(b)s(etrac)m(h)m(tet,)j(sobald)d(der)f(Sc)m
+(hreib)m(v)m(organg)k(auf)d(die)f(lok)-5 b(ale)26 b(Platte)h(abge-)382
+3718 y(sc)m(hlossen)22 b(ist)f(und)h(eine)g(Empfangsb)s(est\344tigung)h
+(v)m(om)f(zw)m(eiten)h(Knoten)f(eingetro\033en)382 3831
+y(ist.)382 3982 y(Im)40 b(Gegensatz)g(zu)g(Protok)m(oll)i(A)d(bleib)s
+(en)i(b)s(eim)f(Ausfall)f(einer)i(K)m(omp)s(onen)m(te)h(die)382
+4095 y(T)-8 b(ransaktionseigensc)m(haften)44 b(erhalten.)75
+b(F)-8 b(allen)42 b(jedo)s(c)m(h)g(zw)m(ei)h(K)m(omp)s(onen)m(ten)h
+(auf)382 4208 y(einmal)c(aus,)h(so)d(k)-5 b(ann)40 b(es)e(auc)m(h)i(b)s
+(ei)f(diesem)g(Protok)m(oll)i(zu)e(einer)h(V)-8 b(erletzung)40
+b(der)382 4321 y(T)-8 b(ransaktionseigensc)m(haften)33
+b(k)m(ommen.)42 b(Ein)31 b(Beispiel:)639 4490 y(Beide)i(Knoten)h(eines)
+f(Clusters)g(fallen)g(in)g(kurzem)g(zeitlic)m(hen)i(Abstand)e(w)m(e-)
+639 4603 y(gen)k(eines)f(Stromausfalls)h(aus.)58 b(Der)36
+b(prim\344re)h(Knoten)g(teilt)g(einem)g(Clien)m(t)639
+4716 y(mit,)c(da\377)f(eine)h(T)-8 b(ransaktion)33 b(abgesc)m(hlossen)g
+(ist,)f(danac)m(h)i(f\344llt)e(er)g(aus.)45 b(Der)639
+4829 y(sekund\344re)27 b(Knoten)h(hat)f(zw)m(ar)h(den)f(Daten)m(blo)s
+(c)m(k)h(empfangen)g(und)f(die)g(Emp-)639 4942 y(fangsb)s
+(est\344tigung)39 b(zur\374c)m(k)g(an)f(den)g(prim\344ren)i(Knoten)f
+(gesendet,)i(f\344llt)d(je-)639 5055 y(do)s(c)m(h)31
+b(aus,)f(b)s(ev)m(or)h(der)g(Daten)m(blo)s(c)m(k)g(auf)g(die)f(F)-8
+b(estplatte)32 b(gesc)m(hrieb)s(en)g(wird.)639 5168 y(En)m(tsc)m
+(heidet)f(der)e(Cluster-Manager)h(nac)m(h)f(dem)g(Stromausfall,)h
+(da\377)e(der)h(an-)639 5281 y(dere)34 b(Knoten)g(das)e(Service)i(an)m
+(bieten)h(soll,)e(so)g(sind)g(die)g(Auswirkungen)h(der)639
+5394 y(letzten)d(T)-8 b(ransaktion)32 b(v)m(erloren.)1831
+5622 y(22)p eop
+%%Page: 23 25
+23 24 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448
+b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4
+v 382 539 a Fp(Dieses)30 b(Problem)i(k)m(\366nn)m(te)h(man)e(dadurc)m
+(h)h(l\366sen,)g(da\377)f(der)g(Cluster-Mananger)h(nac)m(h)382
+652 y(dem)39 b(Ausfall)f(b)s(eider)h(Knoten,)j(das)c(Service)h(wieder)h
+(auf)e(jenem)h(Knoten)h(startet,)382 764 y(auf)30 b(dem)h(es)f(zuletzt)
+h(gelaufen)g(ist.)382 1044 y Fo(3.2.3)112 b(Protok)m(oll)35
+b(C)382 1257 y Fp(Bei)d(Protok)m(oll)h(C)f(wird)h(ein)f(Sc)m(hreib)m(v)
+m(organg)j(abgesc)m(hlossen,)e(sobald)g(der)f(Sc)m(hreib-)382
+1370 y(v)m(organg)41 b(auf)f(die)g(lok)-5 b(ale)40 b(Platte)h(abgesc)m
+(hlossen)g(ist)f(und)h(eine)f(Best\344tigung)h(v)m(om)382
+1483 y(zw)m(eiten)d(Knoten)g(eingetro\033en)g(ist,)g(die)f(b)s(esagt,)h
+(da\377)f(der)g(Daten)m(blo)s(c)m(k)h(auc)m(h)g(dort)382
+1596 y(erfolgreic)m(h)32 b(gesc)m(hrieb)s(en)g(wurde.)382
+1749 y(Mit)e(Protok)m(oll)i(C)f(bleibt)g(die)f(T)-8 b(ransaktionsseman)
+m(tik)33 b(auf)d(jeden)h(F)-8 b(all)31 b(erhalten.)382
+1903 y(Bei)k(Protok)m(oll)i(B)e(und)h(C)f(m)m(u\377)h(b)s(ei)f(Ausfall)
+g(des)g(v)m(erbindenden)i(Netzw)m(erk)m(es)f(o)s(der)382
+2016 y(des)h(zw)m(eiten)j(Cluster-Knotens)f(der)f(Empfang)g(der)g(no)s
+(c)m(h)g(ausstehenden)h(Best\344ti-)382 2129 y(gungen)45
+b(sim)m(uliert)h(w)m(erden.)83 b(Das)44 b(Blo)s(c)m(k-IO-System)h(un)m
+(ter)g(Lin)m(ux)g(erlaubt)h(n)m(ur)382 2242 y(eine)36
+b(b)s(egrenzte)h(Anzahl)g(nic)m(h)m(t)g(abgesc)m(hlossener)h
+(Anforderungen,)h(und)d(es)g(w\374rde)382 2355 y(blo)s(c)m(kieren,)31
+b(w)m(enn)h(nic)m(h)m(t)g(alle)f(Anforderungen)g(abgesc)m(hlossen)h(w)m
+(erden.)382 2678 y Fj(3.3)130 b(Sc)l(hreib)t(op)t(erationen)382
+2921 y Fp(F\374r)30 b(viele)g(Filesysteme)f(ist)h(die)g(Reihenfolge,)g
+(in)g(der)g(b)s(estimm)m(te)h(Daten)m(bl\366)s(c)m(k)m(e)h(auf)382
+3034 y(die)25 b(F)-8 b(estplatte)27 b(gesc)m(hrieb)s(en)f(w)m(erden,)i
+(v)m(on)d(en)m(tsc)m(heidender)j(Bedeutung.)41 b(Zum)25
+b(Bei-)382 3147 y(spiel)30 b(m)m(u\377)h(ein)f(Journaling-Filesystem)i
+(v)m(or)e(jeder)g(Metadatenaktualisierung)i(eine)382
+3260 y(T)-8 b(ransaktion)32 b(in)e(den)h(Journalb)s(ereic)m(h)j(sc)m
+(hreib)s(en,)d(w)m(ob)s(ei)h(der)e(Commit-Record)j(als)382
+3373 y(letzter)e(gesc)m(hrieb)s(en)h(w)m(erden)g(m)m(u\377.)382
+3527 y(Un)m(ter)39 b(Lin)m(ux)g(wird)f(derzeit)h(explizit)g(auf)f(den)g
+(Absc)m(hlu\377)h(jener)f(Sc)m(hreib)s(op)s(eratio-)382
+3640 y(nen)j(gew)m(artet,)46 b(die)41 b(v)m(or)h(den)f(n\344c)m(hsten)h
+(Sc)m(hreib)s(op)s(erationen)i(auf)d(die)g(F)-8 b(estplatte)382
+3753 y(gesc)m(hrieb)s(en)32 b(w)m(erden)g(m)m(\374ssen,)f(b)s(ev)m(or)g
+(die)g(folgende)g(Sc)m(hreib)s(op)s(eration)i(in)d(Auftrag)382
+3865 y(geb)s(eb)s(en)g(wird.)382 4019 y(Damit)40 b(DRBD)f(auf)g(dem)h
+(sekund\344ren)g(Knoten)h(alle)e(Sc)m(hreib)s(op)s(erationen)k(in)c
+(der)382 4132 y(gleic)m(hen)32 b(Reihenfolge)e(ausf\374hrt,)g(in)h(der)
+f(sie)g(auf)f(dem)i(prim\344ren)g(Knoten)g(v)m(om)g(IO-)382
+4245 y(System)36 b(an)h(den)g(T)-8 b(reib)s(er)37 b(gesendet)g(wurden,)
+i(m)m(\374\377te)f(der)f(Algorithm)m(us)h(wie)e(folgt)382
+4358 y(aussehen:)493 4584 y(1.)46 b(Empfange)32 b(einen)f(Blo)s(c)m(k)f
+(v)m(om)h(Netzw)m(erk.)493 4763 y(2.)46 b(Sc)m(hreib)s(e)32
+b(diesen)e(Blo)s(c)m(k)h(auf)f(die)h(F)-8 b(estplatte.)493
+4942 y(3.)46 b(W)-8 b(arte,)31 b(bis)g(die)f(Sc)m(hreib)s(op)s(eration)
+j(abgesc)m(hlossen)e(ist.)382 5168 y(Dieser)41 b(restriktiv)m(e)h
+(Algorithm)m(us)g(w\374rde)g(w)m(ahrsc)m(heinlic)m(h)i(so)m(w)m(ohl)f
+(den)e(prim\344ren)382 5281 y(Knoten)26 b(bremsen,)i(als)d(auc)m(h)h
+(das)f(IO-System)h(des)f(sekund\344ren)h(Knotens)g(nic)m(h)m(t)h(aus-)
+382 5394 y(lasten)c(k)m(\366nnen.)39 b(Der)23 b(Datendurc)m(hsatz)i(k)
+-5 b(ann)22 b(w)m(esen)m(tlic)m(h)k(v)m(erb)s(essert)c(w)m(erden,)k(w)m
+(enn)1831 5622 y(23)p eop
+%%Page: 24 26
+24 25 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448
+b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4
+v 382 539 a Fp(das)29 b(Empfangen)i(v)m(om)e(Netzw)m(erk)i(und)e(das)g
+(Sc)m(hreib)s(en)i(auf)e(die)h(F)-8 b(estplatte)30 b(parallel)382
+652 y(statt\034nden.)382 932 y Fo(3.3.1)112 b(Abh\344ngigk)m(eiten)382
+1145 y Fp(Ob)32 b(ein)g(b)s(estimm)m(ter)h(Daten)m(blo)s(c)m(k)g(v)m
+(or)f(einem)h(anderen)f(Daten)m(blo)s(c)m(k)i(auf)d(die)h(F)-8
+b(est-)382 1257 y(platte)24 b(gesc)m(hrieb)s(en)g(w)m(erden)h(m)m
+(u\377,)h(w)m(ei\377)e(leider)g(n)m(ur)g(das)f(Filesystem.)38
+b(Besteh)m(t)24 b(diese)382 1370 y(Not)m(w)m(endigk)m(eit,)30
+b(so)c(existiert)g(zwisc)m(hen)i(dem)e(Absc)m(hlu\377)i(der)e(Sc)m
+(hreib)s(op)s(eration)j(des)382 1483 y(ersten)g(Blo)s(c)m(k)m(es)f(und)
+h(dem)g(Sc)m(hreibb)s(efehl)h(f\374r)e(den)g(zw)m(eiten)i(Blo)s(c)m(k)f
+(eine)f(Abh\344ngig-)382 1596 y(k)m(eit.)382 1750 y(Es)d(k)-5
+b(ann)26 b(k)m(eine)g(Abh\344ngigk)m(eit)h(zwisc)m(hen)g(zw)m(ei)f
+(Bl\366)s(c)m(k)m(en)h(geb)s(en,)f(w)m(enn)h(der)f(Sc)m(hreib-)382
+1863 y(b)s(efehl)34 b(f\374r)g(den)h(zw)m(eiten)h(Blo)s(c)m(k)f(gegeb)s
+(en)g(wird,)h(b)s(ev)m(or)e(die)h(Sc)m(hreib)s(op)s(eration)i(des)382
+1976 y(ersten)31 b(abgesc)m(hlossen)g(ist.)40 b(Ein)31
+b(Beispiel:)447 2606 y @beginspecial 22 @llx 758 @lly
+365 @urx 817 @ury 3430 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//block_timing_1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Mon Apr 17 14:18:40 2000
+%%Title: block_timing_1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 22 758 365 817
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+141.733 807.876 m
+141.733 765.356 l
+340.158 765.356 l
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+340.158 765.356 translate
+0 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+/Times-Roman 12 sf
+(Schreiboperation fertig)
+25 767 T
+(Schreibaufforderung)
+36 787 T
+newpath
+147.496 784.968 m
+158.835 784.968 l
+1 w
+S
+newpath
+164.504 784.968 m
+175.842 784.968 l
+S
+newpath
+181.512 784.968 m
+192.85 784.968 l
+S
+newpath
+198.52 784.968 m
+209.858 784.968 l
+S
+newpath
+232.535 784.968 m
+249.543 784.968 l
+S
+newpath
+260.882 784.968 m
+266.551 784.968 l
+272.22 784.968 l
+S
+(A)
+148 787 T
+(B)
+166 787 T
+(C)
+183 787 T
+(D)
+182 799 T
+(E)
+200 787 T
+(F)
+237 787 T
+(G)
+262 787 T
+(H)
+262 799 T
+newpath
+204.189 782.134 m
+204.189 779.299 l
+S
+newpath
+215.528 782.134 m
+215.528 779.299 l
+S
+newpath
+241.039 782.134 m
+241.039 779.299 l
+S
+newpath
+263.717 782.134 m
+263.717 779.299 l
+S
+newpath
+269.386 782.134 m
+269.386 779.299 l
+S
+newpath
+285.056 782.134 m
+285.056 779.299 l
+S
+newpath
+296.395 782.134 m
+296.395 779.299 l
+S
+newpath
+307.734 782.134 m
+307.734 779.299 l
+S
+(D)
+200 768 T
+(A)
+211 768 T
+(C)
+237 768 T
+(E)
+258 768 T
+(F)
+268 768 T
+(H)
+280 768 T
+(G)
+292 768 T
+(B)
+303 768 T
+newpath
+238.205 799.141 m
+215.528 810.48 198.52 804.811 195.685 804.811 c
+0.283465 w
+S
+pusht
+195.685 804.811 translate
+180 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+newpath
+241.039 799.141 m
+195.685 835.992 156 796.307 156 796.307 c
+S
+pusht
+156 796.307 translate
+-135 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+(Zeit)
+342 769 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 2830 a(Es)f(folgen)h(n)m(un)g(ein)g(paar)g
+(Erl\344uterungen)i(zum)d(Diagramm:)382 2943 y(Die)37
+b(zeitlic)m(he)h(Ausdehn)m(ung,)i(mit)d(der)g(die)g(\334b)s(ergab)s(e)g
+(v)m(on)g(Daten)m(bl\366)s(c)m(k)m(en)i(an)e(das)382
+3056 y(IO-System)32 b(dargestellt)h(ist,)g(en)m(tspric)m(h)m(t)h(einem)
+f(Aufruf)f(v)m(on)g(ll_rw_blo)s(c)m(k\(\).)48 b(Aus)382
+3169 y(der)25 b(Abbildung)g(ist)f(ersic)m(h)m(tlic)m(h,)k(da\377)d(auc)
+m(h)g(mehrere)h(Bl\366)s(c)m(k)m(e)f(auf)f(einmal)h(\374b)s(ergeb)s(en)
+382 3282 y(w)m(erden)38 b(k)m(\366nnen)g(und)f(da\377)g(Aufrufe)g(v)m
+(on)g(ll_rw_blo)s(c)m(k\(\))i(auc)m(h)e(v)m(ersc)m(hieden)i(lang)382
+3395 y(dauern)e(k)m(\366nnen,)h(denn)f(ll_rw_blo)s(c)m(k\(\))g(k)-5
+b(ann)36 b(blo)s(c)m(kiert)h(w)m(erden.)59 b(Der)36 b(Absc)m(hlu\377)
+382 3508 y(einer)31 b(Sc)m(hreib)s(op)s(eration)h(ist)e(als)g
+(Zeitpunkt)h(dargestellt,)h(der)f(dem)f(Zeitpunkt)i(en)m(t-)382
+3621 y(spric)m(h)m(t,)27 b(zu)d(dem)h(das)f(upto)s(date)h(Bit)f(im)h(k)
+m(orresp)s(ondierenden)h(Bu\033er-Head)f(gesetzt)382
+3734 y(wird.)382 3888 y(Zwisc)m(hen)36 b(den)f(Daten)m(bl\366)s(c)m(k)m
+(en)i(A,)d(B,)g(C,)h(D)f(und)h(E)g(k)-5 b(ann)35 b(es)f(k)m(eine)h
+(Abh\344ngigk)m(eit)382 4001 y(geb)s(en,)43 b(da)d(v)m(or)g(deren)h(Sc)
+m(hreibb)s(efehlen)h(k)m(eine)e(Sc)m(hreib)s(op)s(eration)i(abgesc)m
+(hlossen)382 4114 y(wurde.)f(F)28 b(k)-5 b(ann)29 b(ab)s(er)f(v)m(on)h
+(A)f(und)h(D)g(abh\344ngen,)h(da)f(der)g(Sc)m(hreibb)s(efehl)h(f\374r)e
+(F)h(erst)382 4227 y(erteilt)h(wurde,)g(nac)m(hdem)h(im)e(System)g(b)s
+(ek)-5 b(ann)m(t)30 b(wurde,)g(da\377)f(A)g(und)g(D)g(v)m
+(ollst\344ndig)382 4339 y(auf)37 b(die)h(F)-8 b(estplatte)38
+b(gesc)m(hrieb)s(en)h(wurden.)62 b(Eb)s(enso)38 b(k)-5
+b(ann)37 b(es)g(eine)h(Abh\344ngigk)m(eit)382 4452 y(v)m(on)28
+b(G)e(und)i(H)f(zu)g(A,)g(C)g(und)h(D)f(geb)s(en.)40
+b(Es)27 b(k)-5 b(ann)27 b(ab)s(er)h(k)m(eine)g(Abh\344ngigk)m(eit)g(v)m
+(on)g(H)382 4565 y(und)f(G)f(zu)g(E)h(und)g(F)f(geb)s(en.)39
+b(Ob)27 b(diese)f(Abh\344ngigk)m(eit)i(wirklic)m(h)g(existiert,)f(w)m
+(ei\377)h(n)m(ur)382 4678 y(der)36 b(Auftraggeb)s(er)f(der)h(Sc)m
+(hreib)s(op)s(erationen)i(\(das)d(Filesystem\).)56 b(Auf)34
+b(der)i(Eb)s(ene)382 4791 y(eines)30 b(F)-8 b(estplatten)m(treib)s(ers)
+33 b(darf)d(man)h(k)m(eine)g(m\366glic)m(he)h(Abh\344ngigk)m(eit)g(v)m
+(erletzen.)382 5068 y Fn(3.3.1.1)103 b(W)-9 b(rite)36
+b(Barriers)382 5281 y Fp(Diese)f(Erk)m(enn)m(tnis)i(erm\366glic)m(h)m
+(t)h(es,)e(einen)g(Algorithm)m(us)h(anzugeb)s(en,)g(der)f(Sc)m(hran-)
+382 5394 y(k)m(en)25 b(\(write)h(barriers\),)i(\374b)s(er)d(die)g(Sc)m
+(hreibanforderungen)k(nic)m(h)m(t)e(v)m(ersc)m(hob)s(en)f(w)m(erden)
+1831 5622 y(24)p eop
+%%Page: 25 27
+25 26 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)448
+b(3.3.)71 b(SCHREIBOPERA)-8 b(TIONEN)p 382 299 2989 4
+v 382 539 a Fp(d\374rfen,)31 b(erzeugt.)493 801 y(1.)46
+b(Jeder)30 b(Blo)s(c)m(k,)g(der)f(gesc)m(hrieb)s(en)i(w)m(erden)g(m)m
+(u\377,)f(wird)g(zu)f(einer)h(Menge)g(hinzu-)609 914
+y(gef\374gt.)493 1101 y(2.)46 b(Ist)31 b(das)h(Sc)m(hreib)s(en)h(einer)
+g(der)f(Bl\366)s(c)m(k)m(e)g(aus)g(der)g(Menge)g(abgesc)m(hlossen,)i
+(wird)609 1214 y(die)d(Menge)g(geleert,)g(und)g(eine)g(Sc)m(hrank)m(e)h
+(m)m(u\377)f(ausgegeb)s(en)g(w)m(erden.)382 1477 y(W)-8
+b(endet)25 b(man)f(den)g(Algorithm)m(us)h(auf)f(das)f(Beispiel)h(an,)i
+(so)d(w)m(erden)i(folgende)g(P)m(ak)m(ete)382 1590 y(\374b)s(er)30
+b(das)h(Netzw)m(erk)g(v)m(ersendet:)393 2152 y @beginspecial
+9 @llx 758 @lly 365 @urx 810 @ury 3560 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//wire_1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Mar 16 13:00:09 2000
+%%Title: wire_1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 9 758 365 810
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+141.733 796.537 m
+141.733 765.356 l
+340.158 765.356 l
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+340.158 765.356 translate
+0 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+/Times-Roman 12 sf
+(Pakete auf dem Netzwerk)
+12 773 T
+(A)
+150 774 T
+(B)
+167 774 T
+(C)
+184 774 T
+(D)
+201 774 T
+(E)
+218 774 T
+(F)
+243 774 T
+(G)
+263 774 T
+(H)
+280 774 T
+(Zeit)
+342 769 T
+[14.1732 0 0 -14.1732 147.402 785.198] rect
+1 w
+S
+[14.1732 0 0 -14.1732 164.41 785.198] rect
+S
+[14.1732 0 0 -14.1732 181.418 785.198] rect
+S
+[14.1732 0 0 -14.1732 198.426 785.198] rect
+S
+[14.1732 0 0 -14.1732 240.945 785.198] rect
+S
+[5.6693 0 0 -14.1732 232.441 785.198] rect
+gsave
+0.697 0.697 0.697 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[14.1732 0 0 -14.1732 260.788 785.198] rect
+S
+[14.1732 0 0 -14.1732 277.796 785.198] rect
+S
+[14.1732 0 0 -14.1732 215.433 785.198] rect
+S
+/Times-Roman 12 sf
+(Schranke)
+167 799 T
+newpath
+215.433 802.206 m
+232.441 802.206 232.441 796.537 235.276 788.033 c
+0.283465 w
+S
+pusht
+235.276 788.033 translate
+-71.5651 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 2386 a(Nun)45 b(k)-5 b(ann)45 b(der)h(Algorithm)m(us)g
+(f\374r)f(den)h(Empfang)g(der)g(P)m(ak)m(ete)h(folgenderma\377en)382
+2498 y(v)m(erb)s(essert)30 b(w)m(erden:)493 2761 y(1.)46
+b(Empfange)32 b(ein)e(P)m(ak)m(et.)648 2973 y(\(a\))46
+b(F)-8 b(alls)44 b(das)f(P)m(ak)m(et)i(einen)e(Daten)m(blo)s(c)m(k)i
+(en)m(th\344lt,)j(gib)c(den)f(Befehl,)k(den)809 3086
+y(Daten)m(blo)s(c)m(k)42 b(auf)e(die)h(F)-8 b(estplatte)41
+b(zu)g(sc)m(hreib)s(en,)j(und)c(merk)m(e)h(dir)g(den)809
+3199 y(Daten)m(blo)s(c)m(k)32 b(in)e(einer)h(Menge.)643
+3345 y(\(b\))46 b(F)-8 b(alls)43 b(das)f(P)m(ak)m(et)h(eine)g(Sc)m
+(hrank)m(e)h(ist,)h(w)m(arte)f(auf)e(den)g(Absc)m(hlu\377)h(der)809
+3458 y(Sc)m(hreib)s(op)s(erationen)30 b(aller)f(Daten)m(bl\366)s(c)m(k)
+m(e)g(in)f(der)g(Menge,)h(und)f(leere)g(die)809 3571
+y(Menge)j(ansc)m(hlie\377end.)382 3833 y(Hier)f(no)s(c)m(h)h(ein)g
+(Beispiel:)393 4922 y @beginspecial 9 @llx 707 @lly 365
+@urx 820 @ury 3560 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//timing_n_wire_2.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Mon Apr 17 14:17:40 2000
+%%Title: timing_n_wire_2.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 9 707 365 820
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+141.619 745.45 m
+141.619 714.269 l
+340.044 714.269 l
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+340.044 714.269 translate
+0 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+/Times-Roman 12 sf
+(Pakete auf dem Netzwerk)
+12 722 T
+(A)
+149 723 T
+(B)
+167 723 T
+(C)
+184 723 T
+(D)
+201 723 T
+(E)
+218 723 T
+(F)
+243 723 T
+(G)
+269 723 T
+(H)
+286 723 T
+(Zeit)
+342 718 T
+[14.1732 0 0 -14.1732 147.288 734.111] rect
+1 w
+S
+[14.1732 0 0 -14.1732 164.296 734.111] rect
+S
+[14.1732 0 0 -14.1732 181.304 734.111] rect
+S
+[14.1732 0 0 -14.1732 198.312 734.111] rect
+S
+[14.1732 0 0 -14.1732 240.831 734.111] rect
+S
+[5.6693 0 0 -14.1732 232.327 734.111] rect
+gsave
+0.697 0.697 0.697 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[5.6693 0 0 -14.1732 257.953 734.174] rect
+gsave
+0.697 0.697 0.697 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[14.1732 0 0 -14.1732 266.457 734.174] rect
+S
+[14.1732 0 0 -14.1732 283.465 734.174] rect
+S
+[14.1732 0 0 -14.1732 215.319 734.111] rect
+S
+newpath
+141.619 810.647 m
+141.619 768.127 l
+340.044 768.127 l
+0.566929 w
+S
+pusht
+340.044 768.127 translate
+0 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+/Times-Roman 12 sf
+(Schreiboperation fertig)
+25 770 T
+(Schreibaufforderung)
+36 790 T
+newpath
+147.382 787.739 m
+158.721 787.739 l
+1 w
+S
+newpath
+164.39 787.739 m
+175.728 787.739 l
+S
+newpath
+181.398 787.739 m
+192.736 787.739 l
+S
+newpath
+198.406 787.739 m
+209.744 787.739 l
+S
+newpath
+232.421 787.739 m
+249.429 787.739 l
+S
+newpath
+266.457 788.033 m
+272.126 788.033 l
+277.795 788.033 l
+S
+(A)
+148 790 T
+(B)
+166 790 T
+(C)
+183 790 T
+(D)
+182 801 T
+(E)
+200 790 T
+(F)
+237 790 T
+(G)
+267 790 T
+(H)
+267 802 T
+newpath
+204.075 784.905 m
+204.075 782.07 l
+S
+newpath
+215.414 784.905 m
+215.414 782.07 l
+S
+newpath
+240.925 784.905 m
+240.925 782.07 l
+S
+newpath
+263.603 784.905 m
+263.603 782.07 l
+S
+newpath
+269.272 784.905 m
+269.272 782.07 l
+S
+newpath
+284.942 784.905 m
+284.942 782.07 l
+S
+newpath
+296.281 784.905 m
+296.281 782.07 l
+S
+newpath
+307.62 784.905 m
+307.62 782.07 l
+S
+(D)
+199 771 T
+(A)
+211 771 T
+(C)
+237 771 T
+(E)
+269 771 T
+(F)
+256 771 T
+(H)
+280 771 T
+(G)
+292 771 T
+(B)
+303 771 T
+newpath
+238.091 801.912 m
+215.414 813.251 198.406 807.582 195.571 807.582 c
+0.283465 w
+S
+pusht
+195.571 807.582 translate
+180 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+newpath
+240.925 801.912 m
+195.571 838.763 155.886 799.078 155.886 799.078 c
+S
+pusht
+155.886 799.078 translate
+-135 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+(Zeit)
+342 772 T
+newpath
+266.457 799.371 m
+257.953 805.041 252.284 802.206 246.615 799.371 c
+S
+pusht
+246.615 799.371 translate
+-153.431 rotate
+[ ] 0 d
+-6 3 m
+1 0 l
+-6 -3 l
+S
+popt
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1831 5622 a(25)p eop
+%%Page: 26 28
+26 27 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)641
+b(3.4.)71 b(SYNCHR)m(ONISA)-8 b(TION)p 382 299 2989 4
+v 382 539 a Fj(3.4)130 b(Sync)l(hronisation)382 786 y
+Fp(Neb)s(en)20 b(der)h(Replik)-5 b(ation)21 b(der)f(Daten)m(bl\366)s(c)
+m(k)m(e,)25 b(die)20 b(Bestandteil)i(der)e(normalen)i(Sc)m(hreib-)382
+899 y(op)s(erationen)36 b(ist,)f(m)m(u\377)g(es)f(auc)m(h)i(die)f
+(M\366glic)m(hk)m(eit)h(geb)s(en,)g(den)e(Inhalt)h(der)g(gespie-)382
+1012 y(gelten)c(F)-8 b(estplatten)32 b(wieder)f(in)g(den)g(aktuellen)g
+(Zustand)g(zu)g(bringen,)h(w)m(enn)f(w)m(egen)382 1125
+y(des)23 b(Ausfalls)g(einer)i(K)m(omp)s(onen)m(te)h(die)e(F)-8
+b(estplatten)25 b(nic)m(h)m(t)g(mehr)g(die)f(gleic)m(hen)h(Daten)382
+1238 y(en)m(thalten.)382 1395 y(Die)e(o\033ensic)m(h)m(tlic)m(he)k
+(L\366sung)d(f\374r)f(das)g(Problem)i(ist)e(es,)i(alle)e(Bl\366)s(c)m
+(k)m(e)h(einer)g(der)g(b)s(eiden)382 1508 y(F)-8 b(estplatten)38
+b(auf)e(die)h(andere)h(zu)e(k)m(opieren.)61 b(Diese)36
+b(V)-8 b(organgsw)m(eise)38 b(ist)f(allerdings)382 1621
+y(f\374r)23 b(viele)g(An)m(w)m(endungsf\344lle)j(nic)m(h)m(t)f
+(geeignet.)39 b(Bei)23 b(gro\377en)i(P)m(artitionen)g(z.B.)f(\(T)-8
+b(erra-)382 1734 y(b)m(yte\))26 b(w\374rde)g(der)g(K)m(opierv)m(orang)i
+(sehr)e(lange)g(dauern,)h(b)s(ei)f(geographisc)m(h)h(v)m(erteilten)382
+1847 y(Knoten)38 b(k)-5 b(ann)37 b(die)g(Not)m(w)m(endigk)m(eit,)k
+(derart)d(viele)f(Daten)g(zu)g(transp)s(ortieren,)j(mit)382
+1960 y(hohen)31 b(K)m(osten)g(v)m(erbunden)h(sein.)382
+2245 y Fo(3.4.1)112 b(Sc)m(hnelle)37 b(Sync)m(hronisation)382
+2461 y Fp(Daher)27 b(ist)g(in)g(DRBD)g(no)s(c)m(h)g(zus\344tzlic)m(h)i
+(ein)e(v)m(erb)s(essertes)g(Sync)m(hronisationsv)m(erfah-)382
+2574 y(ren)d(v)m(orhanden.)40 b(Dab)s(ei)24 b(w)m(erden)i(n)m(ur)f
+(jene)f(Bl\366)s(c)m(k)m(e)h(k)m(opiert,)h(die)f(v)m(er\344ndert)g
+(wurden,)382 2687 y(w)m(\344hrend)31 b(die)e(V)-8 b(erbindung)31
+b(zum)e(Knoten)h(mit)g(der)f(gespiegelten)i(F)-8 b(estplatte)30
+b(un)m(ter-)382 2800 y(bro)s(c)m(hen)h(w)m(ar.)382 2957
+y(Daf\374r)j(ist)g(es)f(not)m(w)m(endig,)38 b(genau)d(zu)f(wissen,)h(w)
+m(elc)m(he)h(Daten)m(bl\366)s(c)m(k)m(e)g(v)m(om)f(empfan-)382
+3070 y(genden)k(Knoten)g(ordn)m(ungsgem\344\377)h(auf)e(die)g(F)-8
+b(estplatte)39 b(gesc)m(hrieb)s(en)h(wurden.)64 b(In)382
+3183 y(den)31 b(Protok)m(ollen)h(A)e(und)h(B)f(ist)g(ab)s(er)h(eine)g
+(solc)m(he)g(Benac)m(hric)m(h)m(tigung)k(nic)m(h)m(t)d(v)m(orge-)382
+3296 y(sehen.)40 b(Daher)27 b(wird)h(ein)f(w)m(eiteres)h(P)m(ak)m(et)g
+(in)f(das)g(Protok)m(oll)i(aufgenommen.)41 b(Dieses)382
+3409 y(P)m(ak)m(et)g(wird)e(v)m(om)h(sekund\344ren)g(Knoten)h(an)e(den)
+h(prim\344ren)g(gesendet,)j(w)m(enn)d(alle)382 3522 y(Daten)m(bl\366)s
+(c)m(k)m(e)c(einer)f(der)f(in)g(Absc)m(hnitt)h(3.3.1.1)g
+(eingef\374hrten)g(Menge)f(gesc)m(hrieb)s(en)382 3635
+y(wurden.)41 b(Dieses)30 b(Best\344tigungspak)m(et)i(ist)f(in)f(allen)h
+(drei)g(Protok)m(ollen)h(v)m(orhanden.)382 3792 y(Bric)m(h)m(t)j(n)m
+(un)f(die)f(V)-8 b(erbindung)35 b(zwisc)m(hen)f(zw)m(ei)g(Knoten)h
+(zusammen,)f(wird)g(am)f(sen-)382 3905 y(denden)e(Knoten)f(angenommen,)
+i(da\377)e(alle)h(P)m(ak)m(ete,)g(die)f(in)g(no)s(c)m(h)g(nic)m(h)m(t)i
+(b)s(est\344tigten)382 4018 y(Mengen)37 b(en)m(thalten)i(sind,)f(no)s
+(c)m(h)g(nic)m(h)m(t)g(gesc)m(hrieb)s(en)g(wurden.)61
+b(Diese)37 b(Bl\366)s(c)m(k)m(e)g(und)382 4131 y(alle)29
+b(Bl\366)s(c)m(k)m(e,)h(die,)g(w)m(\344hrend)h(die)e(V)-8
+b(erbindung)31 b(un)m(terbro)s(c)m(hen)g(ist,)e(gesc)m(hrieb)s(en)h(w)m
+(er-)382 4244 y(den,)h(w)m(erden)h(in)e(einem)h(Bitfeld)g(markiert.)382
+4401 y(In)f(diesem)h(Bitfeld)g(en)m(tspric)m(h)m(t)i(jedes)d(Bit)h
+(einer)g(b)s(estimm)m(ten)h(Datenmenge,)g(die)f(in)382
+4514 y(k)m(einer)g(\034xen)g(Bezieh)m(ung)h(zur)e(Blo)s(c)m
+(kgr\366\377e)i(auf)e(dem)h(Ger\344t)f(steh)m(t.)382
+4672 y(W)-8 b(enn)39 b(die)f(K)m(omm)m(unik)-5 b(ation)41
+b(wieder)e(hergestellt)h(ist,)g(l\344uft)e(die)g(Sync)m(hronisation)382
+4785 y(parallel)g(zum)g(normalen)g(Betrieb.)61 b(Die)38
+b(Bandbreite,)i(die)d(der)h(Sync)m(hronisations-)382
+4898 y(proze\377)31 b(maximal)g(b)s(elegen)g(darf,)g(m)m(u\377)g(v)m
+(om)g(An)m(w)m(ender)h(k)m(on\034guriert)g(w)m(erden.)382
+5055 y(Die)d(Daten)m(bl\366)s(c)m(k)m(e,)i(die)e(im)g(Zuge)h(der)f
+(Sync)m(hronisation)i(v)m(ersendet)e(w)m(erden,)i(stehen)382
+5168 y(au\377erhalb)22 b(des)e(in)g(Absc)m(hnitt)i(3.3.1.1)f(b)s(esc)m
+(hrieb)s(enen)g(W)-8 b(rite-Barrier-Mec)m(hanism)m(us.)382
+5281 y(F\374r)47 b(sie)g(wird)h(immer)h(eine)e(Sc)m(hreibb)s
+(est\344tigung)j(nac)m(h)f(Protok)m(oll)g(C)e(zur\374c)m(kge-)382
+5394 y(sc)m(hic)m(kt.)61 b(Das)36 b(en)m(tsprec)m(hende)k(Bit)c(im)h
+(Bitfeld)h(wird)f(erst)g(dann)g(wieder)h(gel\366sc)m(h)m(t,)1831
+5622 y(26)p eop
+%%Page: 27 29
+27 28 bop 382 262 a Fl(KAPITEL)31 b(3.)71 b(DRBD)30 b(DESIGN)641
+b(3.4.)71 b(SYNCHR)m(ONISA)-8 b(TION)p 382 299 2989 4
+v 382 539 a Fp(w)m(enn)37 b(f\374r)f(alle)h(Bl\366)s(c)m(k)m(e,)i(die)d
+(v)m(om)h(Bit)f(abgedec)m(kt)i(sind,)g(eine)f(Sc)m(hreibb)s
+(est\344tigung)382 652 y(v)m(orliegt.)h(Das)21 b(erm\366glic)m(h)m(t)i
+(die)e(F)-8 b(ortsetzung)23 b(eines)e(sc)m(hnellen)h(Sync)m
+(hronisationsv)m(or-)382 764 y(ganges)k(nac)m(h)i(einer)e(erneuten)i
+(Un)m(terbrec)m(h)m(ung)h(des)d(K)m(omm)m(unik)-5 b(ationsk)g(anals,)30
+b(ohne)382 877 y(da\377)h(eine)f(Un)m(v)m(ollst\344ndigk)m(eit)j(der)e
+(Sync)m(hronisation)h(b)s(ef\374rc)m(h)m(tet)g(w)m(erden)g(m)m(u\377.)
+382 1171 y Fo(3.4.2)112 b(Datensic)m(herheit)382 1392
+y Fp(V)-8 b(or)36 b(der)h(Sync)m(hronisation)h(en)m(th\344lt)f(die)g
+(gespiegelte)g(F)-8 b(estplatte)37 b(einen)g(v)m(eralteten)382
+1505 y(ab)s(er)23 b(k)m(onsisten)m(ten)i(Datenstand,)h(w)m(\344rend)e
+(der)g(Sync)m(hronisation)h(ist)e(ihr)h(Filesystem)382
+1618 y(in)k(k)m(einem)h(k)m(onsisten)m(ten)h(Zustand.)41
+b(F\344llt)28 b(n)m(un)h(w)m(\344hrend)h(der)f(Sync)m(hronisation)h
+(die)382 1731 y(F)-8 b(estplatte)36 b(des)f(Knotens)g(mit)g(dem)h
+(aktuellen)f(Datenstand)h(aus,)g(k)-5 b(ann)35 b(n)m(ur)h(mehr)382
+1844 y(ein)j(Bac)m(kup)g(helfen,)i(denn)e(der)f(Zustand)h(auf)g(der)f
+(gespiegelten)i(F)-8 b(estplatte,)42 b(eine)382 1957
+y(Misc)m(h)m(ung)30 b(aus)f(dem)h(v)m(eralteten)h(Zustand)f(und)f(dem)h
+(aktuellen)g(Zustand,)g(ist)f(nic)m(h)m(t)382 2069 y(brauc)m(h)m(bar.)
+382 2232 y(W\344hrend)36 b(der)f(Sync)m(hronisation)h(bietet)g(ein)f
+(Cluster)g(aus)g(zw)m(ei)h(Knoten)g(k)m(eine)f(Si-)382
+2345 y(c)m(herheit.)382 2508 y(Dieses)30 b(Problem)j(k)m(\366nn)m(te)f
+(durc)m(h)g(den)f(Einsatz)h(eines)f(Log-Structured-Filesystems)382
+2621 y(gel\366st)k(w)m(erden.)57 b(Es)35 b(m)m(\374\377ten)h(der)g
+(Sync)m(hronisationsmec)m(hanism)m(us)j(und)c(das)g(File-)382
+2734 y(system)30 b(eng)g(zusammenarb)s(eiten)j(und)d(z.B.)h(die)f(Sync)
+m(hronisation)j(als)d(eine)h(einzige)382 2847 y(T)-8
+b(ransaktion)32 b(auf)e(dem)h(empfangenden)h(Knoten)f(durc)m
+(hf\374hren.)1831 5622 y(27)p eop
+%%Page: 28 30
+28 29 bop 382 1211 a Fk(Kapitel)62 b(4)382 1676 y Fm(Lin)-6
+b(ux)382 2171 y Fp(Dieses)31 b(Kapitel)i(gibt)g(einen)f(kleinen)h
+(\334b)s(erblic)m(k)f(\374b)s(er)g(Ger\344tetreib)s(er)h(un)m(ter)g
+(Lin)m(ux)382 2284 y(und)i(bildet)g(die)f(Grundlage)i(f\374r)e(die)h(w)
+m(eiterf\374hrenden)i(Kapitel.)53 b(Die)35 b(Informatio-)382
+2397 y(nen)26 b(in)g(diesem)g(Kapitel)h(wurden)f(haupts\344c)m(hlic)m
+(h)j(dem)d(Quellco)s(de)h(des)e(Kernels)i(en)m(t-)382
+2510 y(nommen.)39 b(Die)23 b(meisten)g(B\374c)m(her)h([Rus98][BBDK97)q
+(][Rub98)q(])f(und)g(Artik)m(el)g([Rub97)q(])382 2622
+y(\374b)s(er)i(den)g(Lin)m(ux-Kernel)j(geb)s(en)d(zw)m(ar)h(einen)g
+(guten)f(\334b)s(erblic)m(k)h(\374b)s(er)f(den)g(gesam)m(ten)382
+2735 y(Kernel,)31 b(jedo)s(c)m(h)g(k)m(eine)g(Details)g(\374b)s(er)f
+(den)h(Bu\033er-Cac)m(he.)382 3072 y Fj(4.1)130 b(GPL)382
+3324 y Fp(Die)34 b(au\033allendste)g(Eigensc)m(haft)i(des)d(jetzt)h(so)
+f(p)s(opul\344ren)i(Betriebssystems)e(Lin)m(ux)382 3437
+y(ist)k(seine)g(Lizenz,)j(die)d(Gn)m(u)h(General)f(Public)i(License.)61
+b(Diese)37 b(Lizenz)h(erm\366glic)m(h)m(t)382 3550 y(einerseits)44
+b(die)g(rasend)h(sc)m(hnelle)f(V)-8 b(erbreitung)46 b(des)e(Systems,)j
+(sic)m(hert)e(ab)s(er)e(auc)m(h)382 3663 y(dessen)30
+b(W)-8 b(eiteren)m(t)m(wic)m(klung.)382 3826 y(Die)34
+b(Lizenz)g(r\344um)m(t)h(dem)f(An)m(w)m(ender)i(das)d(Rec)m(h)m(t)i
+(ein,)g(die)f(b)s(etro\033ene)g(Soft)m(w)m(are)h(zu)382
+3939 y(mo)s(di\034zieren.)56 b(Wird)35 b(Soft)m(w)m(are,)j(die)e(un)m
+(ter)g(den)f(Bestimm)m(ungen)j(der)d(GPL)h(steh)m(t,)382
+4052 y(als)28 b(T)-8 b(eil)28 b(eines)g(gr\366\377eren)h(Pro)s(duktes)g
+(o)s(der)e(als)h(eigenst\344ndiges)h(Pro)s(dukt)f(in)g(bin\344rer)382
+4164 y(F)-8 b(orm)39 b(w)m(eitergegeb)s(en,)j(m)m(u\377)c(dem)h
+(Empf\344nger)g(der)f(Soft)m(w)m(are)h(der)f(Quellco)s(de)h(zu-)382
+4277 y(g\344nglic)m(h)32 b(gemac)m(h)m(t)h(w)m(erden.)42
+b(Es)31 b(m)m(u\377)g(auc)m(h)h(der)e(Quellco)s(de)i(aller)f(V)-8
+b(er\344nderungen,)382 4390 y(die)33 b(ev)m(en)m(tuell)h(an)f(dem)g
+(Pro)s(dukt)g(v)m(orgenommen)i(wurden,)f(an)f(den)g(Ben)m(utzer)h(w)m
+(ei-)382 4503 y(tergegeb)s(en)d(w)m(erden.)382 4839 y
+Fj(4.2)130 b(Ger\344tetreib)t(er)382 5092 y Fp(Zu)39
+b(den)h(grundlegenden)h(Aufgab)s(en)e(eines)g(Betriebssystems)g
+(geh\366rt)h(es,)h(Zugri\033e)382 5205 y(auf)26 b(die)h(v)m
+(erf\374gbare)g(Hardw)m(are)h(in)f(geregelten)h(Bahnen)f(zu)f(erlaub)s
+(en.)40 b(Lin)m(ux)28 b(bietet)382 5318 y(hier)40 b(grunds\344tzlic)m
+(h)h(die)e(M\366glic)m(hk)m(eit)i(f\374r)f(zeic)m(henorien)m(tierte)j
+(Ger\344te)c(\(c)m(haracter)1831 5622 y(28)p eop
+%%Page: 29 31
+29 30 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095
+b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v
+382 539 a Fp(devices\),)31 b(blo)s(c)m(k)m(orien)m(tierte)j(Ger\344te)e
+(\(blo)s(c)m(k)f(devices\))g(und)h(Netzw)m(erkk)-5 b(arten)m(treib)s
+(er)382 652 y(\(net)m(w)m(ork)32 b(driv)m(ers\).)382
+813 y(Im)41 b(Filesystem)g(sind)g(die)g(Ger\344te)g(durc)m(h)i(sp)s
+(ezielle)e(Ein)m(tr\344ge)i(f\374r)e(An)m(w)m(enderpro-)382
+926 y(gramme)d(sic)m(h)m(tbar.)60 b(Diese)37 b(Ein)m(tr\344ge)h(\(sp)s
+(ecial)f(\034les\))f(tragen)i(zw)m(ei)f(Nummern,)i(die)382
+1038 y(f\374r)31 b(den)g(Kernel)h(Bedeutung)g(hab)s(en.)43
+b(Die)31 b(erste)g(Nummer)h(iden)m(ti\034ziert)h(den)f(ange-)382
+1151 y(spro)s(c)m(henen)d(T)-8 b(reib)s(er,)30 b(die)e(zw)m(eite)i(das)
+e(angespro)s(c)m(hene)i(Ger\344t)e(des)g(T)-8 b(reib)s(ers.)40
+b(So)29 b(ist)382 1264 y(das)35 b(Ger\344t)h(/dev/hda4,)i(die)e(vierte)
+g(P)m(artition)h(des)f(ersten)f(IDE-Ger\344tes,)j(f\374r)d(den)382
+1377 y(Kernel)c(durc)m(h)h(das)e(T)-8 b(up)s(el)31 b(\(3,4\))g(iden)m
+(ti\034ziert.)382 1538 y(Die)h(erste)g(der)g(b)s(eiden)h(Nummern)f
+(\(ma)5 b(jor)33 b(n)m(um)m(b)s(er\))g(wird)g(innerhalb)g(des)f
+(Kernels)382 1651 y(v)m(erw)m(endet,)k(um)e(die)f(Einsprungspunkte)i
+(des)f(T)-8 b(reib)s(ers)34 b(in)f(einem)h(statisc)m(hen)h(F)-8
+b(eld)382 1764 y(zu)30 b(\034nden.)382 1925 y(Ob)m(w)m(ohl)c(der)e
+(Kernel)h(nic)m(h)m(t)h(in)e(einer)g(ob)5 b(jektorien)m(tierten)27
+b(Programmiersprac)m(he)g(im-)382 2038 y(plemen)m(tiert)34
+b(ist,)f(k)-5 b(ann)32 b(man)h(das)f(Design)h(der)f(T)-8
+b(reib)s(er)33 b(ob)5 b(jektorien)m(tiert)35 b(b)s(esc)m(hrei-)382
+2151 y(b)s(en:)633 2336 y(Das)29 b(VFS)989 2303 y Fg(1)1029
+2336 y Fp(-In)m(terface)h(ist)g(die)g(abstrakte)g(Basisklasse)f(aller)h
+(T)-8 b(reib)s(er.)41 b(Da)m(v)m(on)633 2449 y(abgeleitet)26
+b(sind)f(die)g(Sprungtab)s(ellen)i(der)f(einzelnen)g(T)-8
+b(reib)s(er,)27 b(da)e(sie)g(die)g(ab-)633 2562 y(strakten)30
+b(F)-8 b(unktionen)32 b(des)e(In)m(terfaces)g(mit)h(reellen)g
+(Prozeduren)h(f\374llen.)40 b(Bei)633 2675 y(der)f(Initialisierung)h
+(eines)f(T)-8 b(reib)s(ers)40 b(suc)m(h)m(t)g(dieser)f(nac)m(h)h(der)g
+(v)m(orhandenen)633 2788 y(Hardw)m(are)f(und)g(erzeugt)g(f\374r)f(jede)
+h(gefundene)g(Instanz)f(der)h(Hardw)m(are)g(ein)633 2901
+y(Ob)5 b(jekt)30 b(des)g(T)-8 b(reib)s(ers.)382 3192
+y Fo(4.2.1)112 b(Zeic)m(henorien)m(tierte)35 b(T)-9 b(reib)s(er)382
+3412 y Fp(Das)30 b(VFS-In)m(terface,)h(ist)f(in)h(include/lin)m
+(ux/fs.h)h(folgenderma\377en)g(de\034niert:)609 3668
+y Fc(struct)47 b(file_operations)g({)844 3781 y(loff_t)g(\(*llseek\))g
+(\(struct)f(file)h(*,)g(loff_t,)g(int\);)844 3893 y(ssize_t)g
+(\(*read\))g(\(struct)g(file)f(*,)h(char)g(*,)g(size_t,)g(loff_t)g
+(*\);)844 4006 y(ssize_t)g(\(*write\))g(\(struct)f(file)h(*,)g(const)g
+(char)g(*,)g(size_t,)1690 4119 y(loff_t)f(*\);)844 4232
+y(int)h(\(*readdir\))g(\(struct)g(file)f(*,)h(void)g(*,)g(filldir_t\);)
+844 4345 y(unsigned)g(int)g(\(*poll\))g(\(struct)f(file)h(*,)1878
+4458 y(struct)f(poll_table_struct)h(*\);)844 4571 y(int)g(\(*ioctl\))g
+(\(struct)g(inode)f(*,)h(struct)g(file)g(*,)1502 4684
+y(unsigned)g(int,)f(unsigned)h(long\);)844 4797 y(int)g(\(*mmap\))g
+(\(struct)g(file)f(*,)h(struct)g(vm_area_struct)g(*\);)844
+4910 y(int)g(\(*open\))g(\(struct)g(inode)f(*,)h(struct)g(file)g(*\);)
+844 5023 y(int)g(\(*flush\))g(\(struct)g(file)f(*\);)844
+5135 y(int)h(\(*release\))g(\(struct)g(inode)f(*,)h(struct)g(file)g
+(*\);)844 5248 y(int)g(\(*fsync\))g(\(struct)g(file)f(*,)h(struct)g
+(dentry)g(*\);)p 382 5308 1196 4 v 486 5362 a Ff(1)520
+5394 y Fe(Virtual)26 b(Filesystem)f(Switc)n(h)1831 5622
+y Fp(29)p eop
+%%Page: 30 32
+30 31 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095
+b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v
+844 539 a Fc(int)47 b(\(*fasync\))g(\(int,)g(struct)f(file)h(*,)g
+(int\);)844 652 y(int)g(\(*check_media_change\))f(\(kdev_t)h(dev\);)844
+764 y(int)g(\(*revalidate\))g(\(kdev_t)f(dev\);)844 877
+y(int)h(\(*lock\))g(\(struct)g(file)f(*,)h(int,)g(struct)g(file_lock)g
+(*\);)609 990 y(};)382 1253 y Fp(Zeic)m(henorien)m(tierte)39
+b(T)-8 b(reib)s(er)35 b(k)m(\366nnen)h(op)s(en\(\),)g(release\(\),)h
+(read\(\),)g(write\(\),)g(io)s(ctl\(\),)382 1365 y(p)s(oll\(\),)31
+b(llseek\(\),)f(mmap\(\))i(und)e(fasync\(\))h(implemen)m(tieren.)382
+1628 y Fn(op)s(en\(\))46 b Fp(Wird)21 b(aufgerufen,)j(w)m(enn)e(ein)g
+(Programm)h(op)s(en\(2\))f(mit)f(dem)h(en)m(tsprec)m(hen-)609
+1741 y(den)38 b(Ger\344teein)m(trag)h(im)f(Filesystem)f(aufruft.)61
+b(V)-8 b(om)38 b(Kernel)g(wird)g(automa-)609 1854 y(tisc)m(h)c(eine)h
+(Instanz)e(v)m(om)h(T)m(yp)g(\034le)g(angelegt)h(und)f(mit)g(op)s
+(en\(\))g(dem)g(T)-8 b(reib)s(er)609 1967 y(\374b)s(ergeb)s(en.)47
+b(W)-8 b(enn)33 b(der)f(T)-8 b(reib)s(er)34 b(ein)e(Ger\344t,)h(das)g
+(v)m(on)f(mehreren)i(Prozessen)609 2079 y(gleic)m(hzeitig)d
+(ge\366\033net)d(w)m(erden)i(k)-5 b(ann,)29 b(v)m(erw)m(altet,)i(so)c
+(hat)i(er)f(die)h(M\366glic)m(hk)m(eit,)609 2192 y(in)f(\034le->priv)-5
+b(ate_data)30 b(einen)e(Zeiger)g(auf)f(den)h(eigenen)h(K)m(on)m(text)g
+(abzulegen,)609 2305 y(der)39 b(genau)g(dem)g(momen)m(tanen)i
+(Proze\377)f(und)f(dem)g(angespro)s(c)m(henen)h(Ger\344t)609
+2418 y(zugeh\366rig)28 b(ist.)39 b(Handelt)27 b(es)g(sic)m(h)g(um)f
+(ein)h(Ger\344t,)h(das)f(v)m(on)g(n)m(ur)g(einem)g(Proze\377)609
+2531 y(angesteuert)41 b(w)m(erden)h(k)-5 b(ann,)42 b(so)e(k)-5
+b(ann)39 b(op)s(en\(\))i(mit)f(einem)h(en)m(tsprec)m(henden)609
+2644 y(errno-Co)s(de)32 b(b)s(eendet)f(w)m(erden.)382
+2832 y Fn(release\(\))47 b Fp(En)m(tspric)m(h)m(t)31
+b(dem)e(close\(2\))f(im)g(K)m(on)m(text)i(eines)e(An)m(w)m
+(enderprogrammes.)382 3019 y Fn(read\(\))46 b Fp(K)m(opiert)32
+b(Daten)f(v)m(om)g(Ger\344t)g(in)f(den)h(A)m(dre\377raum)h(des)e
+(Prozesses.)382 3207 y Fn(write\(\))46 b Fp(Sendet)32
+b(Daten)f(v)m(om)f(A)m(dre\377raum)i(des)f(Prozesses)f(zum)h(Ger\344t.)
+382 3395 y Fn(mmap\(\))45 b Fp(Mit)29 b(dieser)g(F)-8
+b(unktion)29 b(k)-5 b(ann)29 b(der)g(Proze\377)h(eine)f(Repr\344sen)m
+(tation)h(des)e(Ge-)609 3507 y(r\344tes)36 b(in)g(seinen)g(A)m
+(dre\377raum)i(ein)m(blenden.)59 b(Dies)35 b(wird)i(z.B.)f(b)s(ei)f
+(den)i(neuen)609 3620 y(Graphiktreib)s(ern)32 b(v)m(on)f(Lin)m(ux)g
+(2.2.x)f(gen)m(utzt,)i(um)f(dem)g(Proze\377)g(den)g(F)-8
+b(rame-)609 3733 y(bu\033er)38 b(direkt)h(zug\344nglic)m(h)g(zu)f(mac)m
+(hen.)65 b(Dab)s(ei)38 b(k)-5 b(ann)38 b(allerdings)h(\374b)s(er)f(das)
+609 3846 y(ph)m(ysisc)m(he)23 b(F)-8 b(ormat)24 b(der)e(graphisc)m(hen)
+i(Daten)f(nic)m(h)m(t)h(abstrahiert)g(w)m(erden.)39 b(Das)609
+3959 y(VM-Subsystem)46 b(des)h(Kernels)f(bietet)i(f\374r)e(die)g
+(Implemen)m(tierung)j(den)e(re-)609 4072 y(map_page_range\(\))34
+b(Aufruf.)609 4185 y(Die)26 b(neuen)h(Soundtreib)s(er)h(hingegen)f
+(bieten)g(\374b)s(er)f(mmap\(\))h(die)g(M\366glic)m(hk)m(eit,)609
+4298 y(einen)h(Pu\033er)g(mit)f(dem)h(Proze\377)g(zu)f(teilen,)i(so)s
+(da\377)e(das)g(aufw)m(endige)i(K)m(opieren)609 4411
+y(der)i(Daten)g(b)s(ei)f(read\(\))h(o)s(der)g(write\(\))g(en)m(tfallen)
+h(k)-5 b(ann.)609 4524 y(Um)39 b(ph)m(ysisc)m(hen)h(Sp)s(eic)m(her)h
+(in)e(den)h(A)m(dre\377raum)h(des)e(Prozesses)g(einzublen-)609
+4637 y(den,)e(gibt)e(es)g(leider)h(k)m(eine)g(ma\377gesc)m(hneiderte)h
+(F)-8 b(unktion.)56 b(Es)35 b(ist)g(en)m(t)m(w)m(eder)609
+4749 y(m\366glic)m(h,)k(mit)d(Hilfe)f(der)i(VM-Primitiv)m(e)g(die)f(en)
+m(tsprec)m(henden)i(P)m(age-T)-8 b(able-)609 4862 y(Ein)m(tr\344ge)41
+b(selbst)e(zu)g(erzeugen,)j(o)s(der)d(ein)g(eigenes)g(VM)g(Ob)5
+b(jekt)38 b(mit)i(einem)609 4975 y(eigenen)32 b(vm_ops->nopage\(\))g
+(Handler)f(zu)g(erzeugen.)382 5163 y Fn(p)s(oll\(\))45
+b Fp(Mu\377)29 b(implemen)m(tiert)j(w)m(erden,)f(um)e(Aufrufe)g(v)m(on)
+g(p)s(oll\(2\))g(und)h(select\(2\))f(zu)609 5276 y(erm\366glic)m(hen.)
+43 b(Diese)30 b(Prozedur)i(m)m(u\377)g(folgende)f(Seman)m(tik)g(hab)s
+(en:)1831 5622 y(30)p eop
+%%Page: 31 33
+31 32 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095
+b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v
+609 539 a Fp(Daten)31 b(v)m(orhanden)359 b(Gibt)25 b(die)h
+(zutre\033enden)g(Ereignisse)g(im)f(R\374c)m(kga-)1648
+652 y(b)s(ew)m(ert)32 b(zur\374c)m(k.)609 798 y(k)m(eine)f(Daten)g(v)m
+(orhanden)128 b(L\344\377t)42 b(den)f(Proze\377)h(mit)f(p)s(oll_w)m
+(ait\(\))i(sc)m(hlafen,)1648 911 y(bis)g(Daten)g(v)m(orhanden)i(sind,)h
+(und)d(gibt)g(0)g(zu-)1648 1023 y(r\374c)m(k.)382 1236
+y Fn(io)s(ctl\(\))j Fp(Mit)26 b(Hilfe)f(dieser)h(F)-8
+b(unktion)27 b(k)m(\366nnen)g(Metadaten)g(zwisc)m(hen)g(einem)f
+(Proze\377)609 1349 y(und)c(dem)g(Ger\344tetreib)s(er)h(ausgetausc)m(h)
+m(t)h(w)m(erden.)39 b(W\344hrend)23 b(z.B.)e(ein)h(T)-8
+b(reib)s(er)609 1462 y(f\374r)32 b(die)g(serielle)h(Sc)m(hnittstelle)g
+(mit)g(read\(2\))g(und)f(write\(2\))h(den)f(Datenstrom)609
+1575 y(zug\344nglic)m(h)44 b(mac)m(h)m(t,)j(k)-5 b(ann)42
+b(der)h(Proze\377)g(\374b)s(er)f(den)g(io)s(ctl\(2\))h(Systemruf)f(die)
+609 1688 y(Baudrate,)32 b(die)e(Anzahl)h(der)g(Daten)m(bits,)h(etc.)40
+b(einstellen.)382 1950 y(Mit)29 b(Hilfe)f(dieses)h(In)m(terfaces)g(k)m
+(\366nnen)h(T)-8 b(reib)s(er)29 b(f\374r)g(zeic)m(henorien)m(tiere)j
+(Ger\344te)e(k)m(om-)382 2063 y(plett)36 b(gek)-5 b(apselt)35
+b(w)m(erden.)56 b(Es)35 b(ist)f(daher)i(auc)m(h)g(mit)g(geringem)g
+(Aufw)m(and)g(m\366glic)m(h,)382 2176 y(sie)d(zu)h(mo)s(dularisieren.)
+52 b(Diese)34 b(Mo)s(dule)g(k)m(\366nnen)h(zur)f(Laufzeit)g(des)g
+(Kernels)g(nac)m(h)382 2289 y(Belieb)s(en)d(nac)m(hgeladen)i(und)d(en)m
+(tfern)m(t)i(w)m(erden.)382 2582 y Fo(4.2.2)112 b(Blo)s(c)m(k)m(orien)m
+(tierte)34 b(Ger\344te)382 2803 y Fp(Das)i(VFS-In)m(terface)i(wird)f
+(nic)m(h)m(t)h(n)m(ur)f(f\374r)g(zeic)m(henorien)m(tierte)j(Ger\344te)d
+(v)m(erw)m(endet,)382 2916 y(sondern)h(auc)m(h)h(f\374r)f(blo)s(c)m(k)m
+(orien)m(tierte)j(Ger\344te)d(und)h(alle)f(anderen)h(Ob)5
+b(jekte,)40 b(die)e(in)382 3029 y(einem)44 b(Filesystem)f(abgelegt)h(w)
+m(erden)g(k)m(\366nnen)g(\(FIF)m(Os,)j(Unix-Domain-So)s(c)m(k)m(ets,)
+382 3142 y(Files\).)57 b(Es)35 b(w)m(\344re)i(theoretisc)m(h)h
+(m\366glic)m(h,)h(ein)d(blo)s(c)m(k)m(orien)m(tiertes)i(Ger\344t)e
+(aufbauend)382 3255 y(auf)e(das)h(VFS-In)m(terface)h(zu)f(implemen)m
+(tieren)i(und)f(dab)s(ei)f(die)g(read\(\))g(und)g(write\(\))382
+3368 y(F)-8 b(unktionen)48 b(zu)f(implemen)m(tieren.)92
+b(Dieses)46 b(Ger\344t)h(w)m(\344re)h(allerdings)f(f\374r)g(Filesy-)382
+3481 y(steme)d(un)m(brauc)m(h)m(bar,)50 b(da)43 b(diese)h(den)g
+(Bu\033er-Cac)m(he)h(ansprec)m(hen)g(und)f(nic)m(h)m(t)h(das)382
+3594 y(VFS-In)m(terface)35 b(des)g(Ger\344tes)g(v)m(erw)m(enden.)55
+b(Die)34 b(k)m(orrekte)i(V)-8 b(organgsw)m(eise)36 b(b)s(esteh)m(t)382
+3707 y(darin,)e(b)s(ei)f(read\(\))h(und)f(write\(\))h(die)f(generisc)m
+(hen)i(F)-8 b(unktionen)35 b(blo)s(c)m(k_read\(\))f(und)382
+3820 y(blo)s(c)m(k_write\(\))27 b(anzugeb)s(en.)40 b(Diese)25
+b(F)-8 b(unktionen)26 b(\374b)s(ertragen)g(die)g(Daten)f(v)m(om)h(bzw.)
+382 3932 y(in)k(den)h(Bu\033er-Cac)m(he.)382 4222 y Fn(4.2.2.1)103
+b(Bu\033er-Cac)m(he)382 4444 y Fp(Es)40 b(gibt)g(eine)h(ganze)f(Reihe)g
+(v)m(on)g(Cac)m(hes)h(un)m(ter)g(Lin)m(ux,)j(do)s(c)m(h)c(der)h
+(Bu\033er-Cac)m(he)382 4557 y(ist)27 b(mit)h(blo)s(c)m(k)m(orien)m
+(tierten)j(Ger\344ten)d(un)m(w)m(eigerlic)m(h)j(v)m(erbunden.)41
+b(Der)28 b(Bu\033er-Cac)m(he)382 4670 y(v)m(erw)m(altet)k(Daten)m
+(bl\366)s(c)m(k)m(e)h(blo)s(c)m(k)m(orien)m(tierter)g(Ger\344te)e(w)m
+(\344hrend)i(sie)d(im)g(Sp)s(eic)m(her)i(lie-)382 4782
+y(gen.)61 b(Jedem)39 b(dieser)e(Daten)m(bl\366)s(c)m(k)m(e)i(ist)e
+(eine)h(Instanz)f(v)m(om)h(T)m(yp)g(bu\033er_head)g(zu-)382
+4895 y(geordnet,)j(die)d(alle)g(Metadaten)h(zu)f(dem)g(Daten)m(blo)s(c)
+m(k)h(en)m(th\344lt.)64 b(Die)38 b(wic)m(h)m(tigsten)382
+5008 y(F)-8 b(elder)31 b(v)m(on)g(bu\033er_head:)609
+5271 y Fc(...)609 5384 y(unsigned)47 b(long)g(b_blocknr;)g(/*)g(block)f
+(number)h(*/)1831 5622 y Fp(31)p eop
+%%Page: 32 34
+32 33 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095
+b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v
+609 539 a Fc(unsigned)47 b(long)g(b_size;)188 b(/*)47
+b(block)f(size)h(*/)609 652 y(kdev_t)g(b_dev;)564 b(/*)47
+b(device)f(\(B_FREE)h(=)g(free\))g(*/)609 764 y(unsigned)g(long)g
+(b_state;)141 b(/*)47 b(buffer)f(state)h(bitmap)g(\(see)g(above\))g(*/)
+609 877 y(unsigned)g(int)g(b_count;)188 b(/*)47 b(users)f(using)h(this)
+g(block)g(*/)609 990 y(void)g(\(*b_end_io\)\(struct)g(buffer_head)f
+(*bh,)h(int)g(uptodate\);)609 1103 y(void)g(*b_dev_id;)609
+1216 y(...)382 1465 y Fn(b_blo)s(c)m(knr)d Fp(Die)30
+b(P)m(osition)i(des)e(Blo)s(c)m(k)m(es)h(auf)f(dem)h(Ger\344t.)382
+1650 y Fn(b_size)45 b Fp(Die)f(Gr\366\377e)g(des)f(Blo)s(c)m(k)m(es)h
+(in)g(Bytes.)80 b(Alle)43 b(Bl\366)s(c)m(k)m(e)h(eines)g(Ger\344tes,)j
+(die)609 1763 y(zu)39 b(einem)h(Zeitpunkt)h(im)e(Sp)s(eic)m(her)h
+(sind,)i(hab)s(en)d(die)h(gleic)m(he)g(Gr\366\377e.)67
+b(Die)609 1876 y(Blo)s(c)m(kgr\366\377e)39 b(eines)e(Ger\344tes)h(k)-5
+b(ann)38 b(zur)g(Laufzeit)g(ge\344ndert)h(w)m(erden.)63
+b(Dab)s(ei)609 1989 y(w)m(erden)27 b(alle)f(Bl\366)s(c)m(k)m(e)g(mit)g
+(der)f(alten)i(Gr\366\377e)e(aus)h(dem)g(Bu\033er-Cac)m(he)h(en)m
+(tfern)m(t.)382 2173 y Fn(b_dev)45 b Fp(Das)30 b(Ger\344t,)h(zu)f(dem)h
+(dieser)g(Blo)s(c)m(k)f(geh\366rt.)382 2357 y Fn(b_coun)m(t)45
+b Fp(Referenzz\344hler)31 b(dieses)f(Blo)s(c)m(k)m(es.)382
+2542 y Fn(b_state)47 b Fp(Die)30 b(wic)m(h)m(tigsten)j(Zust\344nde)e
+(eines)f(Blo)s(c)m(k)m(es:)609 2749 y(dirt)m(y)267 b(Der)26
+b(Blo)s(c)m(k)g(wurde)g(v)m(er\344ndert)i(und)e(m)m(u\377)g(auf)g(das)f
+(Ger\344t)h(zur\374c)m(k-)1066 2862 y(gesc)m(hrieb)s(en)32
+b(w)m(erden.)609 3005 y(upto)s(date)104 b(Der)37 b(Blo)s(c)m(k)g(wurde)
+g(gelesen)g(o)s(der)f(gesc)m(hrieb)s(en)i(und)f(en)m(tspric)m(h)m(t)
+1066 3118 y(somit)31 b(dem)g(Blo)s(c)m(k)f(des)g(Ger\344tes.)609
+3261 y(lo)s(c)m(k)m(ed)212 b(Die)33 b(Daten)m(\374b)s(ertragung)i(v)m
+(om)e(o)s(der)f(zum)h(Ger\344t)f(\034ndet)h(derzeit)1066
+3374 y(statt.)382 3582 y Fn(b_end_io)44 b Fp(Diese)g(F)-8
+b(unktion)45 b(wird)f(nac)m(h)h(dem)f(Absc)m(hlu\377)h(einer)f(IO-Op)s
+(eration)609 3694 y(aufgerufen.)382 3879 y Fn(b_dev_id)g
+Fp(Dieser)31 b(Zeiger)g(wird)g(der)f(b_end_io)i(F)-8
+b(unktion)32 b(\374b)s(ergeb)s(en.)382 4128 y(Die)c(Aufgab)s(e)h(des)f
+(Bu\033er-Cac)m(hes)i(ist)e(es,)g(die)h(Zugri\033e)g(auf)g(das)f
+(Ger\344t)h(zu)f(optimie-)382 4241 y(ren)22 b(und)g(den)f(darauf)h
+(aufsetzenden)h(Dateisystemen)f(eine)g(einfac)m(h)g(zu)g(handhab)s
+(ende)382 4354 y(V)-8 b(erw)m(altung)38 b(der)e(Pu\033ersp)s(eic)m(her)
+h(zur)f(V)-8 b(erf\374gung)37 b(zu)f(stellen.)57 b(Der)36
+b(Bu\033er-Cac)m(he)382 4467 y(w)m(\344c)m(hst,)25 b(w)m(enn)e(gen)m
+(ug)g(freier)f(Sp)s(eic)m(her)h(v)m(orhanden)g(ist)f(und)g(IO-Op)s
+(erationen)h(durc)m(h-)382 4580 y(gef\374hrt)33 b(w)m(erden.)47
+b(Wird)32 b(der)g(ph)m(ysisc)m(he)h(Sp)s(eic)m(her)h(knapp,)f(dann)f
+(wird)h(der)f(Bu\033er-)382 4693 y(Cac)m(he)37 b(v)m(erkleinert,)h
+(indem)e(Bl\366)s(c)m(k)m(e,)i(die)e(w)m(eder)h(v)m(er\344ndert)g
+(wurden)f(\(dirt)m(y\))h(no)s(c)m(h)382 4806 y(referenziert)26
+b(sind,)h(v)m(erw)m(orfen)f(w)m(erden.)40 b(Dateisysteme)26
+b(v)m(erw)m(enden)h(un)m(ter)f(anderem)382 4919 y(die)31
+b(folgenden)g(Prozeduren)h(des)e(Bu\033er-Cac)m(hes:)382
+5168 y Fn(getblk\(\))46 b Fp(Liefert)25 b(einen)f(bu\033er_head.)40
+b(W)-8 b(enn)24 b(der)g(Blo)s(c)m(k)g(sc)m(hon)g(im)g(Bu\033er-Cac)m
+(he)609 5281 y(w)m(ar,)31 b(wird)g(der)g(Referenzz\344hler)g(erh\366h)m
+(t,)g(w)m(enn)h(nic)m(h)m(t,)g(b)s(ek)m(omm)m(t)f(man)g(einen)609
+5394 y(neuen,)g(der)g(auf)f(einen)h(uninitialisierten)i(Blo)s(c)m(k)d
+(zeigt.)1831 5622 y(32)p eop
+%%Page: 33 35
+33 34 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1095
+b(4.2.)71 b(GER\304)-8 b(TETREIBER)p 382 301 2989 4 v
+382 539 a Fn(brelse\(\))46 b Fp(Gibt)28 b(einen)h(Blo)s(c)m(k)e(frei.)
+40 b(F)-8 b(alls)28 b(der)g(Blo)s(c)m(k)g(nic)m(h)m(t)h(mehr)g
+(referenziert)g(wird)609 652 y(und)43 b(er)f(v)m(er\344ndert)i(wurde,)i
+(wird)d(der)f(Zeitpunkt)h(festgelegt,)j(zu)c(dem)h(der)609
+764 y(Blo)s(c)m(k)31 b(auf)f(das)g(Ger\344t)h(zur\374c)m(kgesc)m(hrieb)
+s(en)h(wird.)382 944 y Fn(ll_rw_blo)s(c)m(k\(\))44 b
+Fp(F\374hrt)38 b(eine)f(IO-Op)s(eration)h(\(Lesen)g(o)s(der)f(Sc)m
+(hreib)s(en\))h(auf)f(den)609 1057 y(angegeb)s(enen)28
+b(Bl\366)s(c)m(k)m(en)f(aus.)39 b(Diese)26 b(F)-8 b(unktion)27
+b(k)m(ehrt)f(v)m(or)h(dem)f(Absc)m(hlu\377)h(der)609
+1170 y(Op)s(eration)32 b(zur\374c)m(k.)382 1350 y Fn(w)m
+(ait_on_bu\033er\(\))45 b Fp(W)-8 b(artet)31 b(auf)g(den)f(Absc)m
+(hlu\377)i(einer)f(IO-Op)s(eration.)382 1628 y Fn(4.2.2.2)103
+b(Request-Queue)382 1841 y Fp(Die)35 b(Request-Queue)h(ist)f(ein)g(F)-8
+b(eld)36 b(statisc)m(her)g(Gr\366\377e,)h(in)e(das)g(ll_rw_blo)s(c)m
+(k\(\))i(die)382 1954 y(IO-Auftr\344ge)28 b(ein)m(tr\344gt.)41
+b(Beim)27 b(Ein)m(tragen)j(w)m(erden)f(die)e(Auftr\344ge)h(so)f
+(geordnet,)i(da\377)382 2067 y(die)42 b(Bew)m(egungen)h(des)f(Sc)m
+(hreib-/Lesek)m(opfes)h(der)f(F)-8 b(estplatte)43 b(optimiert)g(w)m
+(erden.)382 2180 y(Zur)36 b(Zeit)h(wird)f(der)g(sogenann)m(te)i(Elev)-5
+b(ator-Algorithm)m(us)38 b(implemen)m(tiert.)60 b(F)-8
+b(r\374her)382 2293 y(wurden)39 b(Leseop)s(erationen)i(gegen)m(\374b)s
+(er)f(Sc)m(hreib)s(op)s(erationen)h(b)s(ev)m(orzugt,)h(do)s(c)m(h)d(es)
+382 2406 y(hat)h(sic)m(h)h(herausgestellt,)j(da\377)d(dadurc)m(h)h(die)
+e(Gesam)m(tleistung)i(des)e(Systems)g(her-)382 2519 y(abgesetzt)g
+(wurde.)67 b(Jetzt)41 b(w)m(erden)f(Sc)m(hreib-)h(und)e(Leseop)s
+(erationen)i(mit)f(gleic)m(her)382 2631 y(Priorit\344t)35
+b(b)s(ehandelt,)i(die)d(Sc)m(hreib)s(op)s(erationen)j(d\374rfen)d
+(allerdings)h(n)m(ur)g(66)f(\045)g(der)382 2744 y(Request-Queue)g
+(ausf\374llen.)52 b(Das)34 b(letzte)h(Drittel)f(k)-5
+b(ann)34 b(n)m(ur)h(v)m(on)g(Leseop)s(erationen)382 2857
+y(b)s(elegt)c(w)m(erden.)382 3012 y(Die)i(Auftr\344ge,)h(die)g(einen)f
+(Ger\344tetreib)s(er)i(b)s(etre\033en,)f(w)m(erden)h(durc)m(h)f(Zeiger)
+g(zu)f(ei-)382 3125 y(ner)j(Liste)h(v)m(erk)m(ettet,)i(und)d(die)h
+(Abarb)s(eitung)g(dieser)f(Liste)h(wird)f(durc)m(h)h(den)g(Auf-)382
+3238 y(ruf)k(der)g(do_request\(\))h(Prozedur)g(des)f(T)-8
+b(reib)s(ers)42 b(gestartet.)73 b(Die)41 b(Zeiger)g(auf)g(die)382
+3351 y(do_request\(\))g(Prozeduren)h(sind)d(in)h(einem)h(globalen)g(F)
+-8 b(eld)41 b(abgelegt,)i(die)d(ma)5 b(jor)382 3464 y(n)m(um)m(b)s(er)
+32 b(der)f(T)-8 b(reib)s(er)31 b(gibt)g(die)f(P)m(osition)i(im)f(F)-8
+b(eld)31 b(an.)382 3618 y(Do)s(c)m(h)23 b(leider)h(wurden)g(b)s(ei)e
+(der)h(Implemen)m(tierung)j(der)d(Request-Queue)h(die)f(K)m(onzep-)382
+3731 y(te)32 b(nic)m(h)m(t)i(so)d(deutlic)m(h)j(getrenn)m(t)g(wie)e(in)
+g(anderen)h(Bereic)m(hen)h(des)e(Kernels.)46 b(So)32
+b(gibt)382 3844 y(es)i(eine)h(Unzahl)g(sp)s(ezieller)f(Eigenheiten)j
+(in)d(den)h(einzelnen)h(T)-8 b(reib)s(ern,)37 b(die)e(sic)m(h)f(in)382
+3957 y(der)26 b(einen)h(o)s(der)f(anderen)h(F)-8 b(orm)27
+b(im)f(Quellco)s(de)h(der)f(Request-Queue)g(wieder\034nden,)382
+4070 y(die,)j(w\374rde)f(man)g(den)h(Co)s(de)f(der)g(T)-8
+b(reib)s(er)28 b(streng)h(v)m(on)f(den)g(allgemeinen)i(T)-8
+b(eilen)29 b(des)382 4183 y(Kernels)i(trennen,)g(dort)g(nic)m(h)m(ts)h
+(v)m(erloren)g(h\344tten.)382 4338 y(Mit)37 b(Lin)m(ux)i(2.3.38)f(wird)
+g(diese)g(Situation)h(n)m(un)f(deutlic)m(h)i(v)m(erb)s(essert.)62
+b(Es)37 b(ist)h(n)m(un)382 4451 y(m\366glic)m(h,)h(die)e
+(IO-Auftr\344ge)g(eines)f(Ger\344tes)h(in)f(einer)h(eigenen)g
+(Request-Queue)g(zu)382 4563 y(v)m(erw)m(alten.)k(Diese)28
+b(ger\344tesp)s(ezi\034sc)m(he)h(Request-Queue)f(ist)f(in)g(einer)h
+(Datenstruktur)382 4676 y(abgelegt,)36 b(die)e(auc)m(h)h(6)f(Zeiger)g
+(auf)g(Prozeduren)i(en)m(th\344lt,)g(die)e(die)g(V)-8
+b(erw)m(altung)36 b(der)382 4789 y(IO-Auftr\344ge)31
+b(in)f(der)h(Request-Queue)g(steuern.)382 5067 y Fn(4.2.2.3)103
+b(Blo)s(c)m(kn)m(ummern)382 5281 y Fp(Der)35 b(Bu\033er-Cac)m(he)i
+(iden)m(ti\034ziert)h(die)e(v)m(on)f(ihm)h(v)m(erw)m(alteten)i(Bl\366)s
+(c)m(k)m(e)e(durc)m(h)g(Num-)382 5394 y(mern.)62 b(W)-8
+b(elc)m(he)38 b(Daten)g(w)m(elc)m(her)h(Nummer)f(zugeordnet)h(w)m
+(erden,)i(wird)d(durc)m(h)g(die)1831 5622 y(33)p eop
+%%Page: 34 36
+34 35 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764
+b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301
+2989 4 v 382 539 a Fp(momen)m(tane)29 b(Blo)s(c)m(kgr\366\377e)f
+(festgelegt.)40 b(Diese)27 b(Blo)s(c)m(kgr\366\377e)g(k)-5
+b(ann)27 b(jederzeit)h(ge\344ndert)382 652 y(w)m(erden.)78
+b(Bei)42 b(Dateisystemen)h(z.B.)f(ist)g(es)g(b)s(eliebt,)k(den)c(Sup)s
+(erblo)s(c)m(k)h(mit)g(einer)382 764 y(Blo)s(c)m(kgr\366\377e)31
+b(v)m(on)f(1K)g(zu)g(sc)m(hreib)s(en,)h(w)m(\344hrend)h(auf)e(alle)g
+(anderen)h(Bl\366)s(c)m(k)m(e)g(mit)f(einer)382 877 y(Blo)s(c)m
+(kgr\366\377e)h(v)m(on)g(4K)g(zugegri\033en)g(wird.)382
+1024 y(Jedesmal,)36 b(w)m(enn)f(die)f(Blo)s(c)m(kgr\366\377e)h
+(ge\344ndert)g(wird,)h(m)m(\374ssen)e(alle)g(Bl\366)s(c)m(k)m(e,)i(die)
+e(mo-)382 1137 y(men)m(tan)25 b(im)e(Bu\033er-Cac)m(he)i(sind,)g(aus)e
+(dem)h(Bu\033er-Cac)m(he)h(en)m(tfern)m(t)f(w)m(erden,)j(da)c(sic)m(h)
+382 1249 y(die)31 b(Bedeutung)g(der)g(Blo)s(c)m(kn)m(ummern)h
+(\344ndert.)382 1396 y(In)21 b(den)h(IO-Requests,)h(die)f(die)g
+(do_request\(\))h(Prozeduren)g(der)g(T)-8 b(reib)s(er)22
+b(b)s(ek)m(ommen,)382 1509 y(w)m(erden)30 b(die)f(Daten)h(als)e
+(Sektoren)i(adressiert,)g(w)m(ob)s(ei)f(jeder)g(Sektor)g(512)h(Bytes)e
+(hat.)382 1655 y(W)-8 b(enn)42 b(jedo)s(c)m(h)f(die)g(Gr\366\377e)g
+(eines)g(Ger\344tes)h(angegeb)s(en)g(wird,)i(w)m(erden)e(1K-Bl\366)s(c)
+m(k)m(e)382 1768 y(v)m(erw)m(endet.)805 2464 y @beginspecial
+4 @llx 716 @lly 261 @urx 786 @ury 2570 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//blk_sizes.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu May 11 14:42:19 2000
+%%Title: blk_sizes.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 4 716 261 786
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+255.118 737.008 m
+56.6929 737.008 l
+56.6929 722.835 l
+255.118 722.835 l
+closepath
+0.879 0.879 0.879 rgb
+F
+255.118 737.008 m
+56.6929 737.008 l
+56.6929 722.835 l
+255.118 722.835 l
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 11 sf
+(Daten)
+150 725 T
+newpath
+56.6929 742.677 m
+255.118 742.677 l
+S
+newpath
+56.6929 745.512 m
+56.6929 742.677 l
+S
+newpath
+70.8661 745.512 m
+70.8661 742.677 l
+S
+newpath
+85.0394 745.512 m
+85.0394 742.677 l
+S
+newpath
+99.2126 745.512 m
+99.2126 742.677 l
+S
+newpath
+113.386 745.512 m
+113.386 742.677 l
+S
+newpath
+127.559 745.512 m
+127.559 742.677 l
+S
+newpath
+141.732 745.512 m
+141.732 742.677 l
+S
+newpath
+155.906 745.512 m
+155.906 742.677 l
+S
+newpath
+170.079 745.512 m
+170.079 742.677 l
+S
+newpath
+184.252 745.512 m
+184.252 742.677 l
+S
+newpath
+198.425 745.512 m
+198.425 742.677 l
+S
+newpath
+212.598 745.512 m
+212.598 742.677 l
+S
+newpath
+226.772 745.512 m
+226.772 742.677 l
+S
+newpath
+240.945 745.512 m
+240.945 742.677 l
+S
+newpath
+255.118 745.512 m
+255.118 742.677 l
+S
+newpath
+56.6929 754.016 m
+255.118 754.016 l
+S
+newpath
+56.6929 756.85 m
+56.6929 754.016 l
+S
+newpath
+85.0394 756.85 m
+85.0394 754.016 l
+S
+newpath
+113.386 756.85 m
+113.386 754.016 l
+S
+newpath
+141.732 756.85 m
+141.732 754.016 l
+S
+newpath
+170.079 756.85 m
+170.079 754.016 l
+S
+newpath
+198.425 756.85 m
+198.425 754.016 l
+S
+newpath
+226.772 756.85 m
+226.772 754.016 l
+S
+newpath
+255.118 756.85 m
+255.118 754.016 l
+S
+newpath
+56.6929 765.354 m
+255.118 765.354 l
+S
+newpath
+56.6929 768.189 m
+56.6929 765.354 l
+S
+newpath
+113.386 768.189 m
+113.386 765.354 l
+S
+newpath
+170.079 768.189 m
+170.079 765.354 l
+S
+newpath
+226.772 768.189 m
+226.772 765.354 l
+S
+newpath
+56.6929 776.693 m
+255.118 776.693 l
+S
+newpath
+56.6929 779.528 m
+56.6929 776.693 l
+S
+newpath
+170.079 779.528 m
+170.079 776.693 l
+S
+/Times-Roman 10 sf
+(Sektoren)
+18 742 T
+(1K-Bl\366cke)
+7 754 T
+(2K-Bl\366cke)
+7 765 T
+(4K-Bl\366cke)
+7 776 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 382 2800 a Fn(4.2.2.4)103 b(Die)35 b(Rolle)f(des)h(VFS-In)
+m(terfaces)382 3005 y Fp(Die)23 b(Prozeduren,)j(die)d(die)h(Br\374c)m
+(k)m(e)g(zwisc)m(hen)g(dem)f(VFS-In)m(terface)h(und)f(dem)g(Bu\033er-)
+382 3118 y(Cac)m(he)f(bilden,)h(sind)d(f\374r)g(alle)h(blo)s(c)m(k)m
+(orien)m(tierten)j(Ger\344te)c(gleic)m(h,)k(n\344mlic)m(h)e(blo)s(c)m
+(k_read\(\),)382 3231 y(blo)s(c)m(k_write\(\))45 b(und)f(blo)s(c)m
+(k_fsync\(\).)81 b(Diese)44 b(Prozeduren)h(k)m(ommen)g(somit)f(zum)382
+3344 y(Einsatz,)e(w)m(enn)e(ein)f(Proze\377)h(ein)f(blo)s(c)m(k)m
+(orien)m(tiertes)j(Ger\344t)d(direkt)g(anspric)m(h)m(t)i(und)382
+3457 y(nic)m(h)m(t)h(den)f(Um)m(w)m(eg)i(\374b)s(er)d(ein)h
+(Dateisystem)g(geh)m(t.)73 b(Daher)41 b(m)m(u\377)h(sic)m(h)f(der)g
+(Autor)382 3570 y(eines)34 b(Ger\344tetreib)s(ers)i(n)m(ur)f(um)g(die)f
+(Implemen)m(tierung)j(v)m(on)e(op)s(en\(\))g(und)g(release\(\))382
+3683 y(der)d(im)g(VFS)g(v)m(ork)m(ommenden)j(Prozeduren)f(k\374mmern.)
+46 b(Des)32 b(w)m(eiteren)h(b)s(einhaltet)382 3796 y(das)k(VFS-In)m
+(terface)h(zw)m(ei)h(Prozeduren,)i(die)c(n)m(ur)h(v)m(on)g(blo)s(c)m(k)
+m(orien)m(tierten)j(Ger\344ten)382 3909 y(gen)m(utzt)29
+b(w)m(erden)g(k)m(\366nnen:)40 b(c)m(hec)m(k_media_c)m(hange\(\))32
+b(und)c(rev)-5 b(alidate\(\).)41 b(Die)28 b(Rolle)382
+4022 y(des)i(VFS)g(in)h(Lin)m(ux)g(v)m(or)g(der)f(V)-8
+b(ersion)31 b(2.3.38)h(ist)e(in)g(Abbildung)h(4.1)g(dargestellt.)382
+4168 y(Da)k(sic)m(h)g(der)g(v)m(on)g(blo)s(c)m(k)m(orien)m(tierten)j
+(Ger\344ten)e(und)f(v)m(on)h(zeic)m(henorien)m(tierten)i(Ge-)382
+4281 y(r\344ten)32 b(gemeinsam)h(b)s(en)m(utzte)g(T)-8
+b(eil)33 b(des)f(VFS-In)m(terfaces)g(auf)f(op)s(en\(\))i(und)f
+(release\(\))382 4394 y(b)s(esc)m(hr\344nkt,)45 b(hab)s(en)d(sic)m(h)f
+(n)m(un)i(die)f(Kernel-En)m(t)m(wic)m(kler)j(dazu)d(durc)m(hgerungen)i
+(in)382 4507 y(Zukunft,)28 b(das)e(In)m(terface)i(f\374r)f(blo)s(c)m(k)
+m(orien)m(tierte)j(Ger\344te)d(v)m(on)g(dem)h(der)f(zeic)m(henorien-)
+382 4620 y(tierten)f(Ger\344te)f(zu)g(trennen.)40 b(Diese)24
+b(T)-8 b(renn)m(ung)27 b(wurde)f(b)s(eginnend)g(mit)f(der)g(V)-8
+b(ersion)382 4732 y(2.3.38)31 b(eingef\374hrt.)382 5045
+y Fj(4.3)130 b(P)l(arallelausf\374hrung)382 5281 y Fp(Neb)s(en)21
+b(der)h(P)m(arallelausf\374hrung,)k(die)c(dadurc)m(h)h(zustande)f(k)m
+(omm)m(t,)j(da\377)d(ein)f(Compu-)382 5394 y(ter)33 b(mit)g(mehreren)g
+(Prozessoren)h(ausger\374stet)f(ist,)g(gibt)g(es)f(no)s(c)m(h)h(eine)g
+(Vielzahl)g(an)1831 5622 y(34)p eop
+%%Page: 35 37
+35 36 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764
+b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301
+2989 4 v 1235 1614 a @beginspecial 135 @llx 659 @lly
+289 @urx 799 @ury 1540 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//vfs.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Wed May 17 13:41:22 2000
+%%Title: vfs.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 135 659 289 799
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+172.913 756.85 m
+172.913 765.354 l
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+172.913 765.354 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+167.244 765.354 m
+167.244 756.85 l
+S
+pusht
+167.244 756.85 translate
+-90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+212.598 728.504 m
+198.425 728.504 l
+S
+pusht
+198.425 728.504 translate
+180 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[56.6929 0 0 -28.3464 141.732 751.181] rect
+gsave
+0.888 0.888 0.888 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[22.6772 0 0 -8.50397 158.74 756.85] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.283465 w
+0 j
+0 J
+[] 0 d
+S
+newpath
+198.425 734.173 m
+212.598 734.173 l
+1 w
+S
+pusht
+212.598 734.173 translate
+0 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+246.614 756.85 m
+246.614 765.354 l
+S
+pusht
+246.614 765.354 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+246.614 700.157 m
+246.614 708.661 l
+S
+pusht
+246.614 708.661 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+246.614 737.008 m
+246.614 745.512 l
+S
+pusht
+246.614 745.512 translate
+90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+240.945 765.354 m
+240.945 756.85 l
+S
+pusht
+240.945 756.85 translate
+-90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+240.945 708.661 m
+240.945 700.157 l
+S
+pusht
+240.945 700.157 translate
+-90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+240.945 745.512 m
+240.945 737.008 l
+S
+pusht
+240.945 737.008 translate
+-90 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+212.598 751.181 m
+283.465 751.181 l
+283.465 666.142 l
+141.732 666.142 l
+141.732 694.488 l
+277.795 694.488 l
+277.795 745.512 l
+212.598 745.512 l
+212.598 751.181 l
+closepath
+0.88 0.88 0.88 rgb
+F
+212.598 751.181 m
+283.465 751.181 l
+283.465 666.142 l
+141.732 666.142 l
+141.732 694.488 l
+277.795 694.488 l
+277.795 745.512 l
+212.598 745.512 l
+212.598 751.181 l
+0 0 0 rgb
+S
+[56.6929 0 0 -8.50397 212.598 700.157] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.283465 w
+0 j
+0 J
+[] 0 d
+S
+[22.6772 0 0 -8.50397 232.441 756.85] rect
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.283465 w
+0 j
+0 J
+[] 0 d
+S
+[141.732 0 0 -28.3465 141.732 793.701] rect
+gsave
+0.89 0.89 0.89 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 212.598 737.008] rect
+gsave
+0.89 0.89 0.89 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 10 sf
+(do_request\(\))
+[1 0 0 0.814962 215.917 693.422] T
+(VFS)
+[1 0 0 0.814962 234.61 750.115] T
+/Times-Roman 11 sf
+(Application)
+186 776 T
+(Buffer)
+218 725 T
+/Times-Roman 12 sf
+(cache)
+239 714 T
+/Times-Roman 11 sf
+(Block device)
+183 674 T
+(File)
+147 737 T
+(system)
+162 728 T
+/Times-Roman 10 sf
+(VFS)
+[1 0 0 0.814962 160.909 750.115] T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1076 1810 a Fp(Abbildung)31 b(4.1:)41 b(Rolle)31
+b(des)f(VFS-In)m(terfaces)382 2085 y(v)m(ersc)m(hiedenen)40
+b(Ausf\374hrungsk)m(on)m(texten)g(im)f(Lin)m(ux-Kernel.)67
+b(Da)38 b(der)h(Zugri\033)g(auf)382 2198 y(viele)h(Ressourcen,)i(die)f
+(aus)f(mehreren)h(Ausf\374hrungsk)m(on)m(texten)g(v)m(erw)m(endet)h(w)m
+(er-)382 2311 y(den,)29 b(nic)m(h)m(t)g(atomar)g(ist,)f(b)s(en\366tigt)
+g(man)g(geeignete)h(Mec)m(hanismen,)h(um)e(den)g(Zugri\033)382
+2424 y(zu)i(regeln.)42 b([Russ00)o(])382 2717 y Fo(4.3.1)112
+b(Ausf\374hrungsk)m(on)m(texte)382 2926 y Fn(In)m(terrupts)45
+b Fp(In)m(terrupthandler)g(sind)d(Prozeduren)j(des)d(Betriebssystems,)k
+(deren)609 3039 y(Ausf\374hrung)36 b(durc)m(h)h(zur)f(CPU)g(externe)h
+(Ereignisse)f(angesto\377en)h(wird.)57 b(Die)609 3152
+y(Ausf\374hrung)26 b(eines)f(In)m(terrupthandlers)j(k)-5
+b(ann)25 b(wiederum)i(v)m(on)f(In)m(terrupts)g(un-)609
+3265 y(terbro)s(c)m(hen)d(w)m(erden;)i(daher)d(m)m(u\377)f(ein)h(In)m
+(terrupthandler)h(auc)m(h)f(reen)m(tran)m(t)h(pro-)609
+3377 y(grammiert)37 b(w)m(erden)f(\(es)f(sei)f(denn,)j(er)e(un)m
+(terbindet)i(den)e(Aufruf)f(v)m(on)i(In)m(ter-)609 3490
+y(rupthandlern\).)382 3678 y Fn(Bottom)f(Halv)m(es)46
+b Fp(Aktionen,)41 b(die)f(aufgrund)g(eines)f(In)m(terrupts)h
+(ausgef\374hrt)f(w)m(er-)609 3791 y(den,)24 b(ab)s(er)d(nic)m(h)m(t)j
+(so)d(dringend)i(sind,)g(da\377)f(sie)f(unmittelbar)i(im)f(In)m
+(terrupthand-)609 3904 y(ler)g(ausgef\374hrt)h(w)m(erden)g(m)m
+(\374ssen,)h(w)m(erden)f(in)f(Bottom)h(Halv)m(es)f(un)m(tergebrac)m(h)m
+(t.)609 4017 y(Die)31 b(32)f(Bottom)h(Halv)m(es)f(un)m(ter)h(Lin)m(ux)h
+(sind)e(statisc)m(h)h(v)m(ergeb)s(en.)41 b(W)-8 b(enn)31
+b(man)609 4130 y(als)23 b(Autor)h(eines)f(mo)s(dularisierten)i(T)-8
+b(reib)s(ers)24 b(eine)g(Prozedur)h(als)e(Bottom)h(Half)609
+4243 y(ausf\374hren)34 b(lassen)f(will,)i(m)m(u\377)f(man)g(sic)m(h)g
+(der)f(T)-8 b(ask-Queue)35 b(\022tq_immediate\021)609
+4355 y(b)s(edienen.)45 b(In)31 b(einem)h(In)m(terrupthandler)i(k)m
+(\366nnen)f(b)s(eliebige)f(Bottom)h(Halv)m(es)609 4468
+y(markiert)f(w)m(erden.)44 b(Die)31 b(Ausf\374hrung)g(aller)g
+(markierten)i(Bottom)e(Halv)m(es)g(er-)609 4581 y(folgt)k(b)s(ei)g
+(jedem)g(Sc)m(heduling-V)-8 b(organg)39 b(und)c(b)s(ei)g(der)g(R\374c)m
+(kk)m(ehr)g(v)m(on)h(einem)609 4694 y(Systemruf.)47 b(Die)33
+b(Markierung)g(wird)g(b)s(ei)g(der)f(Ausf\374hrung)h(wieder)h
+(gel\366sc)m(h)m(t.)609 4807 y(Bottom)d(Halv)m(es)g(m)m(\374ssen)f(nic)
+m(h)m(t)i(reen)m(tran)m(t)h(sein.)609 4920 y(Mit)21 b(der)g(Kernelv)m
+(ersion)i(2.3.43)f(w)m(erden)g(die)f(Bottom)h(Halv)m(es)f(durc)m(h)h
+(SoftIR)m(Qs)609 5033 y(abgel\366st.)56 b(SoftIR)m(Qs)34
+b(un)m(tersc)m(heiden)k(sic)m(h)e(dadurc)m(h)h(v)m(on)e(den)h(Bottom)f
+(Hal-)609 5146 y(v)m(es,)30 b(da\377)g(einzelne)h(SoftIR)m(Qs)e(auf)h
+(v)m(ersc)m(hiedenen)i(CPUs)d(gleic)m(hzeitig)j(laufen)609
+5259 y(d\374rfen.)1831 5622 y(35)p eop
+%%Page: 36 38
+36 37 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764
+b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301
+2989 4 v 382 539 a Fn(T)f(ask)35 b(Queues)46 b Fp(Hier)d(k)-5
+b(ann)43 b(man)h(dynamisc)m(h)g(Prozeduren)h(registrieren,)j(die)43
+b(zu)609 652 y(b)s(estimm)m(ten)i(Zeitpunkten)f(ausgef\374hrt)g(w)m
+(erden)h(sollen.)80 b(Da)43 b(die)h(Ausf\374h-)609 764
+y(rung)25 b(der)g(T)-8 b(ask-Queues)25 b(im)f(Rahmen)h(der)g(Abarb)s
+(eitung)g(der)f(Bottom)i(Halv)m(es)609 877 y(statt\034ndet,)34
+b(gilt)e(das)f(dort)i(Angef\374hrte.)45 b(T)-8 b(ask)32
+b(Queues,)g(die)h(im)e(Kernel)i(zur)609 990 y(V)-8 b(erf\374gung)32
+b(stehen:)609 1203 y(tq_immediate)78 b(Wird)36 b(b)s(ei)f(jeder)h
+(Ausf\374hrung)g(der)g(Bottom)g(Halv)m(es)g(abge-)1234
+1316 y(arb)s(eitet.)609 1462 y(tq_timer)262 b(Wird)41
+b(nac)m(h)i(jedem)e(Timerin)m(terrupt)j(abgearb)s(eitet.)74
+b(\(100)1234 1575 y(mal)36 b(pro)f(Sekunde)h(auf)e(i386,)j(1000)e(mal)h
+(pro)f(Sekunde)h(auf)1234 1688 y(Alpha\))609 1834 y(tq_sc)m(heduler)109
+b(Wird)31 b(b)s(ei)f(jedem)h(Aufruf)e(des)i(Sc)m(hedulers)h(abgearb)s
+(eitet.)382 2046 y Fn(Proze\377)46 b Fp(Ein)37 b(Proze\377)i(k)-5
+b(ann)37 b(en)m(t)m(w)m(eder)j(seinen)d(Programmco)s(de,)k(o)s(der)c
+(ab)s(er)g(auc)m(h)609 2159 y(den)27 b(Co)s(de)f(des)g(Betriebssystems)
+g(ausf\374hren.)39 b(Im)26 b(ersten)h(F)-8 b(all)26 b(k)-5
+b(ann)27 b(die)f(Aus-)609 2272 y(f\374hrung)32 b(jederzeit)f(un)m
+(terbro)s(c)m(hen)i(und)f(mit)f(einem)g(anderen)h(Proze\377)g(fortge-)
+609 2385 y(setzt)d(w)m(erden.)42 b(Dies)28 b(ist)h(eine)g(ganz)g
+(normale)h(Eigensc)m(haft)h(eines)e(Betriebssy-)609 2498
+y(stems,)h(das)h(pr\344emptiv)m(es)g(Multitasking)g(hat.)609
+2611 y(F\374hrt)22 b(der)g(Proze\377)g(gerade)h(einen)f(T)-8
+b(eil)22 b(des)f(Kernels)h(aus,)h(b)s(e\034ndet)f(er)g(sic)m(h)g(also)
+609 2724 y(im)35 b(Kernelk)m(on)m(text,)i(k)-5 b(ann)35
+b(er)f(zw)m(ar)i(durc)m(h)f(einen)g(In)m(terrupt)h(kurzfristig)e(un-)
+609 2837 y(terbro)s(c)m(hen)h(w)m(erden;)h(danac)m(h)f(wird)f(er)f
+(allerdings)h(w)m(eiter)h(ausgef\374hrt.)49 b(D.h.)609
+2950 y(im)40 b(Kernelk)m(on)m(text)i(ist)e(Lin)m(ux)g(zum)h(heutigen)g
+(Zeitpunkt)g(nic)m(h)m(t)g(pr\344em)m(tiv.)609 3062 y(Im)34
+b(Laufe)h(der)g(2.3.x)f(En)m(t)m(wic)m(klung)j(wurden)f(die)e
+(M\366glic)m(hk)m(eiten)j(diskutiert,)609 3175 y(auc)m(h)i(den)g
+(Kernelk)m(on)m(text)h(pr\344emptiv)f(zu)f(gestalten,)j(es)d(ist)f(ab)s
+(er)h(un)m(w)m(ahr-)609 3288 y(sc)m(heinlic)m(h,)33 b(da\377)d(das)h(b)
+s(ereits)f(b)s(ei)g(Lin)m(ux)h(2.4.x)g(der)g(F)-8 b(all)31
+b(sein)f(wird.)382 3582 y Fo(4.3.2)112 b(Sync)m(hronisationsprimitiv)m
+(e)382 3803 y Fp(Die)35 b(grundlegenden)h(Mec)m(hanismen,)i(aus)c
+(denen)h(die)g(h\366heren)h(Sync)m(hronisations-)382
+3916 y(ob)5 b(jekte)30 b(aufgebaut)i(sind:)382 4178 y
+Fn(cti\(\)/sti\(\))47 b Fp(Sp)s(erren)24 b(und)g(F)-8
+b(reigeb)s(en)25 b(aller)f(In)m(terrupts.)39 b(Es)23
+b(gibt)h(no)s(c)m(h)g(w)m(eitere)h(V)-8 b(a-)609 4291
+y(rian)m(ten)31 b(dieser)f(K)m(ommandos,)i(die)e(ab)s(er)f(k)m(eine)i
+(grunds\344tzlic)m(h)g(andere)g(F)-8 b(unk-)609 4404
+y(tion)31 b(zur)g(V)-8 b(erf\374gung)31 b(stellen.)382
+4592 y Fn(Spinlo)s(c)m(ks)44 b Fp(Ein)32 b(Spinlo)s(c)m(k)g(ist)f(ein)g
+(Sync)m(hronisationsob)5 b(jekt,)33 b(das)f(n)m(ur)g(einmal)g(b)s(e-)
+609 4705 y(legt)24 b(w)m(erden)i(k)-5 b(ann.)38 b(Ist)23
+b(es)h(b)s(ereits)g(b)s(elegt,)h(wird)g(so)e(lange)i(eine)f(W)-8
+b(artesc)m(hleife)609 4817 y(ausgef\374hrt,)31 b(bis)f(der)h(Spinlo)s
+(c)m(k)g(wieder)g(frei)f(ist.)40 b(Ein)31 b(Spinlo)s(c)m(k)g(k)-5
+b(ann)31 b(n)m(ur)g(f\374r)609 4930 y(die)i(Sync)m(hronisation)i(zwisc)
+m(hen)f(zw)m(ei)f(CPUs)g(v)m(erw)m(endet)h(w)m(erden.)49
+b(F)-8 b(alls)33 b(ein)609 5043 y(Kernel)27 b(f\374r)e(einen)i
+(Computer)g(mit)f(n)m(ur)h(einem)f(Prozessor)g(erzeugt)h(wird,)g(w)m
+(er-)609 5156 y(den)k(Spinlo)s(c)m(ks)g(b)s(ei)f(der)h(\334b)s
+(ersetzung)f(des)h(Quellco)s(des)g(eliminiert.)1831 5622
+y(36)p eop
+%%Page: 37 39
+37 38 bop 382 264 a Fl(KAPITEL)31 b(4.)71 b(LINUX)764
+b(4.3.)71 b(P)-8 b(ARALLELA)m(USF\334HR)m(UNG)p 382 301
+2989 4 v 382 539 a Fn(W)f(ait)36 b(Queues)46 b Fp(Eine)35
+b(W)-8 b(ait-Queue)36 b(bietet)g(zw)m(ei)f(F)-8 b(unktionen:)51
+b(Ein)35 b(Proze\377)g(k)-5 b(ann)609 652 y(mit)28 b(sleep_on\(\))g
+(auf)f(ein)h(Ereignis)g(w)m(arten.)41 b(Dab)s(ei)27 b(wird)h(der)f(Sc)m
+(heduler)j(auf-)609 764 y(gerufen,)j(und)f(der)g(Proze\377)h(gibt)f
+(die)g(CPU)g(ab.)45 b(T)-8 b(ritt)33 b(n)m(un)g(das)e(Ereignis)i(ein,)
+609 877 y(so)38 b(k)-5 b(ann)37 b(man)h(alle)h(Prozesse,)h(die)e(in)f
+(einer)i(W)-8 b(ait-Queue)39 b(w)m(arten,)i(w)m(ec)m(k)m(en.)609
+990 y(F\374r)f(den)g(gew)m(ec)m(kten)i(Proze\377)f(b)s(edeutet)f(das,)i
+(da\377)e(der)g(sleep_on\(\))h(Aufruf)609 1103 y(zur\374c)m(kk)m(ehrt.)
+609 1216 y(Sleep_on\(\))29 b(gibt)f(es)f(in)g(zw)m(ei)h(V)-8
+b(arian)m(ten;)31 b(eine)d(l\344\377t)f(den)h(Proze\377)g(im)g(Zustand)
+609 1329 y(T)-8 b(ASK_UNINTERR)m(UPTIBLE)22 b(w)m(arten,)i(w)m
+(\344hrend)e(sleep_on_in)m(terruptible\(\))609 1442 y(den)36
+b(Proze\377)h(im)e(Zustand)h(T)-8 b(ASK_INTERR)m(UPTIBLE)38
+b(w)m(arten)f(l\344\377t.)56 b(Ein)609 1555 y(Proze\377)37
+b(im)f(ersten)g(der)g(b)s(eiden)g(Zust\344nde)g(reagiert)h(auf)e(k)m
+(eine)h(Signale)h(und)609 1668 y(k)-5 b(ann)31 b(daher)h(auc)m(h)g(nic)
+m(h)m(t)h(mit)e(dem)g(Kill-K)m(ommando)j(aus)d(dem)h(System)f(en)m(t-)
+609 1781 y(fern)m(t)g(w)m(erden.)382 2043 y(Darauf)e(aufbauend)h(gibt)f
+(es)g(Semaphore)i(und)e(in)g(neueren)h(V)-8 b(ersionen)30
+b(\(2.3.x\))f(auc)m(h)382 2156 y(eine)f(Sc)m(hreib-)i(und)e(Lesev)-5
+b(arian)m(te)29 b(v)m(on)g(Semaphoren.)41 b(Semaphore)30
+b(k)m(\366nne)e(zur)g(Syn-)382 2269 y(c)m(hronisation)h(v)m(on)f
+(Prozessen)h(im)e(Kernelk)m(on)m(text)j(eingesetzt)f(w)m(erden.)41
+b(Semaphore)382 2382 y(k)m(\366nnen)36 b(nat\374rlic)m(h)g(nic)m(h)m(t)
+h(in)e(In)m(terrupthandlern)j(und)d(Bottom)h(Halv)m(es)e(eingesetzt)382
+2495 y(w)m(erden,)46 b(da)c(diese)g(au\377erhalb)i(eines)e(Proze\377k)m
+(on)m(textes)i(ausgef\374hrt)f(w)m(erden)g(und)382 2608
+y(Semaphore)32 b(einen)f(Proze\377k)m(on)m(text)i(brauc)m(hen.)382
+2770 y(Spinlo)s(c)m(ks)39 b(k)m(\366nnen)h(eb)s(enfalls)f(f\374r)g(die)
+g(Sync)m(hronisation)i(zwisc)m(hen)g(Prozessen)e(im)382
+2883 y(Kernelk)m(on)m(text)32 b(eingesetzt)e(w)m(erden.)42
+b(Spinlo)s(c)m(ks)30 b(gibt)g(es)g(b)s(ereits)f(in)h(den)g(2.2.x)g(V)-8
+b(er-)382 2996 y(sionen)39 b(des)g(Kernels)g(in)g(Sc)m(hreib-)i(und)e
+(Lesev)-5 b(arian)m(ten.)67 b(Sie)40 b(eignen)f(sic)m(h)h(gut)f(f\374r)
+382 3109 y(Sync)m(hronisationsaufgab)s(en,)44 b(b)s(ei)c(denen)h(die)f
+(Ressource)f(n)m(ur)i(f\374r)f(kurze)g(Zeit)g(ge-)382
+3222 y(sc)m(h)m(\374tzt)f(w)m(erden)g(m)m(u\377.)62 b(W\344hrend)38
+b(man)g(einen)g(Spinlo)s(c)m(k)g(b)s(esetzt)f(hat,)j(darf)d(man)382
+3335 y(auf)30 b(k)m(einen)h(F)-8 b(all)31 b(den)g(Sc)m(heduler)h
+(aufrufen.)382 3498 y(F\374r)37 b(die)g(Sync)m(hronisation)i(zwisc)m
+(hen)f(In)m(terrupts)f(und)g(Prozessen)h(im)f(Kernelk)m(on-)382
+3610 y(text)24 b(steh)m(t)h(eine)f(V)-8 b(arian)m(te)26
+b(der)e(Spinlo)s(c)m(ks)g(zur)h(V)-8 b(erf\374gung,)26
+b(die)f(die)f(Ausf\374hrung)g(v)m(on)382 3723 y(In)m(terrupts)j(auf)f
+(der)h(lok)-5 b(alen)27 b(CPU)f(v)m(erhindert.)41 b(F)-8
+b(alls)26 b(es)g(sic)m(h)h(um)g(die)f(Sc)m(hreib-)i(und)382
+3836 y(Lesev)-5 b(arian)m(te)40 b(der)e(Spinlo)s(c)m(ks)g(handelt)h
+(und)g(man)f(innerhalb)h(des)f(In)m(terrupthand-)382
+3949 y(lers)31 b(n)m(ur)h(lesend)g(auf)f(die)h(Ressource)f(zugreifen)h
+(will,)g(k)-5 b(ann)32 b(man)g(dort)g(die)f(normale)382
+4062 y(V)-8 b(arian)m(te)32 b(des)e(Spinlo)s(c)m(ks)h(v)m(erw)m(enden.)
+680 4250 y(Innerhalb)25 b(des)e(In)m(terrupthandlers)j(m)m(u\377)f(im)f
+(Normalfall)g(eb)s(enfalls)g(die)g(_ir-)680 4363 y(qsa)m(v)m(e\(\))34
+b(V)-8 b(arian)m(te)36 b(der)e(Spinlo)s(c)m(k-Op)s(erationen)i(v)m(erw)
+m(endet)g(w)m(erden,)g(denn)680 4476 y(w)m(enn)d(der)g(In)m(terrupt)h
+(w)m(\344hrend)f(der)g(Abarb)s(eitung)g(des)f(In)m(terrupthandlers)680
+4588 y(ein)41 b(w)m(eiteres)g(Mal)f(auftritt)1671 4555
+y Fg(2)1711 4588 y Fp(,)j(wird)e(diese)f(un)m(terbro)s(c)m(hen,)45
+b(der)c(In)m(terrupt-)680 4701 y(handler)48 b(no)s(c)m(heinmal)h
+(aufgerufen)f(und)f(der)h(erste)f(Aufruf)f(danac)m(h)j(wie-)680
+4814 y(der)43 b(fortgesetzt.)77 b(Im)41 b(Proze\377k)m(on)m(text)k(ist)
+d(die)h(_irqsa)m(v)m(e\(\))g(V)-8 b(arian)m(te)44 b(der)680
+4927 y(Spinlo)s(c)m(k-Op)s(erationen)g(not)m(w)m(endig,)k(um)42
+b(die)g(A)m(tomizit\344t)h(zu)f(gew)m(\344hrlei-)680
+5040 y(sten,)33 b(im)f(K)m(on)m(text)h(des)f(In)m(terrupthandlers)i
+(wird)f(dadurc)m(h)h(auc)m(h)f(no)s(c)m(h)f(ein)680 5153
+y(Deadlo)s(c)m(k)f(v)m(erhindert.)p 382 5214 1196 4 v
+486 5268 a Ff(2)520 5300 y Fe(Das)26 b(ist)g(nat\374rlic)n(h)g(n)n(ur)e
+(mit)h(\035ank)n(engetriggerten)h(In)n(terrupts)e(m\366glic)n(h.)1831
+5622 y Fp(37)p eop
+%%Page: 38 40
+38 39 bop 382 262 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1451
+b(4.4.)71 b(THREADS)p 382 299 2989 4 v 680 539 a Fp(Handelt)33
+b(es)f(sic)m(h)h(n)m(un)h(um)e(einen)h(Sc)m(heib-)h(und)f(Lese-Spinlo)s
+(c)m(k)h(und)f(ist)f(im)680 652 y(In)m(terrupthandler)26
+b(n)m(ur)e(lesender)f(Zugri\033)h(erforderlic)m(h,)i(k)-5
+b(ann)23 b(innerhalb)i(des)680 764 y(In)m(terrupts)31
+b(die)g(normale)g(V)-8 b(arian)m(te)32 b(der)e(Op)s(erationen)i(v)m
+(erw)m(endet)g(w)m(erden.)680 877 y(Da)37 b(mehrere)h(Leser)g(auf)f
+(einmal)h(erlaubt)g(sind,)g(k)-5 b(ann)38 b(es)e(daher)i(b)s(ei)f
+(einer)680 990 y(zw)m(eiten,)25 b(gleic)m(hzeitigen)f(Ausf\374hrung)e
+(des)f(In)m(terrupthandlers)j(auf)d(der)h(glei-)680 1103
+y(c)m(hen)31 b(CPU)g(nic)m(h)m(t)h(zu)f(diesem)f(Deadlo)s(c)m(k)h(k)m
+(ommen.)382 1439 y Fj(4.4)130 b(Threads)382 1692 y Fp(In)30
+b(vielen)g(anderen)i(Betriebssystemen)e(wurde)h(mit)g(der)g
+(Einf\374hrung)g(v)m(on)g(Threads)382 1805 y(der)42 b(Proze\377)g
+(derart)h(v)m(er\344ndert,)j(da\377)c(er)f(n)m(ur)i(mehr)f(eine)g
+(Umgebung)g(ist,)j(in)c(der)382 1918 y(eine)33 b(b)s(eliebige)h(Zahl)g
+(v)m(on)f(Threads)h(laufen)f(k)-5 b(ann.)49 b(Der)33
+b(Proze\377)h(stellt)g(dab)s(ei)f(k)m(eine)382 2031 y(Einheit)40
+b(f\374r)e(den)h(Sc)m(heduler)i(dar,)g(ist)d(ab)s(er)h(no)s(c)m(h)g
+(eine)g(Einheit)h(f\374r)e(viele)h(andere)382 2144 y(Subsysteme)h(des)f
+(Betriebssystems,)j(wie)d(z.B.)h(f\374r)f(die)h(Sp)s(eic)m(herv)m(erw)m
+(altung)j(und)382 2257 y(Filesysteme.)382 2419 y(Da)25
+b(dieser)g(\334b)s(ergang)h(eine)g(einsc)m(hneidende)h(V)-8
+b(er\344nderung)27 b(f\374r)e(ein)g(Betriebssystem)382
+2532 y(darstellt,)35 b(wurde)f(un)m(ter)g(Lin)m(ux)g(ein)g(anderer)g
+(Ansatz)f(gew)m(\344hlt.)51 b(Dab)s(ei)33 b(wurde)h(der)382
+2645 y(Sp)s(eic)m(herk)m(on)m(text)i(und)e(der)f(Dateisystemk)m(on)m
+(text)i(aus)e(dem)h(Proze\377)g(herausgel\366st,)382
+2758 y(so)s(da\377)39 b(n)m(un)h(Prozesse)g(diese)g(gemeinsam)g(b)s(en)
+m(utzen)h(k)m(\366nnen.)69 b(Dies)39 b(spiegelt)h(sic)m(h)382
+2871 y(auc)m(h)35 b(in)f(der)g(Implemen)m(tierung)j(wieder;)f(das)e(In)
+m(terface)h(der)f(Systemrufe)g(hat)g(sic)m(h)382 2984
+y(n)m(ur)e(dadurc)m(h)g(v)m(er\344ndert,)h(da\377)f(eine)f(v)m
+(erallgemeinerte)j(F)-8 b(orm)32 b(des)e(fork\(2\))h(System-)382
+3097 y(rufes)f(hinzugek)m(ommen)j(ist.)382 3260 y(Mit)g(Hilfe)g(dieser)
+h(Kernelerw)m(eiterung)j(wurde)d(eine)g(POSIX-k)m(onforme)h(Threading)
+382 3372 y(Library)29 b(gesc)m(ha\033en.)41 b(Diese)28
+b(stellt)g(den)g(Applik)-5 b(ationsprogrammen)31 b(mit)e(einer)f(klei-)
+382 3485 y(nen)34 b(Ausnahme)970 3452 y Fg(3)1043 3485
+y Fp(das)f(POSIX-k)m(onforme)i(V)-8 b(erhalten,)36 b(in)d(dem)h
+(Threads)g(Bestand-)382 3598 y(teile)d(eines)f(Prozesses)h(sind,)f(zur)
+h(V)-8 b(erf\374gung.)382 3891 y Fo(4.4.1)112 b(Kernel-Threads)382
+4113 y Fp(Diese)22 b(Ausk)m(opp)s(elung)g(des)g(Sp)s(eic)m(herk)m(on)m
+(textes)j(und)d(des)g(Dateisystemk)m(on)m(textes)h(er-)382
+4226 y(m\366glic)m(h)m(te)33 b(auc)m(h)e(die)f(problemlose)i
+(Einf\374hrung)f(v)m(on)g(Kernel-Threads.)42 b(Diese)30
+b(sind)382 4339 y(Prozesse,)47 b(die)c(innerhalb)h(des)f(Kernels)h
+(erzeugt)g(w)m(erden)g(k)m(\366nnen,)k(um)43 b(dort)h(b)s(e-)382
+4452 y(stimm)m(te)30 b(Aufgab)s(en)g(zu)f(\374b)s(ernehmen.)42
+b(Da)29 b(sie)g(nie)h(Programmco)s(de)h(im)f(Userspace)382
+4565 y(ausf\374hren,)h(hab)s(en)g(sie)f(auc)m(h)h(k)m(einen)g(Sp)s(eic)
+m(herk)m(on)m(text.)p 382 4626 1196 4 v 486 4680 a Ff(3)520
+4712 y Fe(W\344hrend)g(laut)g(POSIX)f(Signale,)k(die)e(an)f(einen)g
+(Proze\377)i(adressiert)f(sind,)h(an)f(alle)g(Threads)382
+4803 y(geliefert)j(w)n(erden,)h(wird)e(un)n(ter)f(Lin)n(ux)f(ein)i
+(Signal)g(n)n(ur)f(an)h(jenen)f(Thread)h(geliefert,)k(an)33
+b(den)g(es)382 4894 y(adressiert)27 b(wurde.)1831 5622
+y Fp(38)p eop
+%%Page: 39 41
+39 40 bop 382 262 a Fl(KAPITEL)31 b(4.)71 b(LINUX)1491
+b(4.5.)71 b(MODULE)p 382 299 2989 4 v 382 539 a Fj(4.5)130
+b(Mo)t(dule)382 791 y Fp(V)-8 b(or)29 b(der)g(V)-8 b(ersion)29
+b(2.0)f(des)h(Lin)m(ux-Kernels)h(k)m(onn)m(ten)g(Ger\344tetreib)s(er)g
+(n)m(ur)f(statisc)m(h)g(in)382 904 y(den)k(Kernel)g(eincompiliert)h(w)m
+(erden.)48 b(Damals)32 b(w)m(ar)i(es)d(\374blic)m(h,)k(nac)m(h)e(der)g
+(erfolgrei-)382 1017 y(c)m(hen)h(Installation)h(des)e(Lin)m
+(ux-Systems,)i(den)f(Kernel)h(selbst)e(neu)h(zu)g(compilieren,)382
+1130 y(und)f(dab)s(ei)g(n)m(ur)h(jene)f(Ger\344tetreib)s(er)h(in)f(den)
+g(Kernel)h(einzubinden,)h(die)e(man)g(auc)m(h)382 1243
+y(tats\344c)m(hlic)m(h)f(brauc)m(h)m(te.)382 1406 y(Nic)m(h)m(t)24
+b(n)m(ur)h(f\374r)e(den)h(An)m(w)m(ender)h(w)m(ar)f(diese)g(Situation)h
+(nic)m(h)m(t)g(zufriedenstellend,)h(auc)m(h)382 1519
+y(w)m(ar)40 b(damals)f(die)h(En)m(t)m(wic)m(klung)i(eines)d(neuen)h
+(Ger\344tetreib)s(ers)f(sehr)g(umst\344ndlic)m(h,)382
+1632 y(denn)29 b(die)g(einzige)g(M\366glic)m(hk)m(eit,)i(den)e(T)-8
+b(reib)s(er)29 b(neu)g(zu)g(starten,)g(w)m(ar)h(es,)e(das)h(Zielsy-)382
+1744 y(stem)h(mit)h(dem)g(neuen)g(Kernel)g(neu)g(zu)g(starten.)382
+1907 y(Mit)c(V)-8 b(ersion)28 b(2.0)f(wurde)h(der)g(Kernel)g(um)g
+(einen)g(Loader)g(erw)m(eitert,)i(der)d(es)g(erlaubt,)382
+2020 y(in)j(den)h(laufenden)g(Kernel)h(Mo)s(dule)e(einzuf\374gen)i
+(bzw.)41 b(zu)30 b(en)m(tfernen.)382 2183 y(Die)37 b(Sc)m(hnittstelle,)
+j(der)e(sic)m(h)f(ein)g(Autor)g(eines)g(Mo)s(duls)g(b)s(edienen)g(k)-5
+b(ann,)39 b(ist)d(ab)s(er)382 2296 y(k)m(ein)26 b(F)-8
+b(ramew)m(ork,)28 b(wie)e(das)g(b)s(ei)f(T)-8 b(reib)s(ersc)m
+(hnittstellen)29 b(vieler)c(Betriebssysteme)h(der)382
+2409 y(F)-8 b(all)35 b(ist.)53 b(Es)34 b(stehen)h(eine)g(Menge)g
+(Prozeduren)i(und)e(Makros)f(zur)g(V)-8 b(erf\374gung,)37
+b(die)382 2522 y(neb)s(en)g(den)f(F)-8 b(unktionen,)40
+b(die)d(sp)s(eziell)f(f\374r)h(Mo)s(dule)f(zur)h(V)-8
+b(erf\374gung)37 b(stehen)g(\(z.B.)382 2634 y
+(register_\034lesystem\(\),)30 b(restister_blkdev\(\),)f(usw.\),)f(auc)
+m(h)h(eine)f(gute)g(Ausw)m(ahl)g(der)382 2747 y(allgemeinen)k(F)-8
+b(unktionen)32 b(des)e(Kernels)h(aufw)m(eisen.)382 2910
+y(Diese)37 b(Kernelsc)m(hnittstelle)j(ist)e(zwisc)m(hen)g(v)m(ersc)m
+(hiedenen)i(V)-8 b(ersionen)39 b(des)e(Kernels)382 3023
+y(nic)m(h)m(t)32 b(bin\344rk)m(ompatib)s(el,)g(man)f(k)-5
+b(ann)30 b(jeo)s(c)m(h)g(Mo)s(dule)g(anderer)h(Kernelv)m(ersionen)h
+(la-)382 3136 y(den)26 b(und)g(wird)f(zumindest)i(darauf)f(aufmerksam)f
+(gemac)m(h)m(t,)k(da\377)d(dieser)g(V)-8 b(organg)26
+b(zu)382 3249 y(einem)31 b(Systemabsturz)g(f\374hren)g(k)-5
+b(ann.)382 3411 y(Do)s(c)m(h)35 b(b)s(eim)g(V)-8 b(ersuc)m(h,)37
+b(ein)e(Mo)s(dul,)h(das)f(f\374r)f(eine)i(Ein-Prozessor-Masc)m(hine)h
+(\374b)s(er-)382 3524 y(setzt)27 b(wurde,)h(in)f(einen)g
+(Mehr-Prozessor-Kernel)j(zu)d(laden,)h(wird)f(man)g(leider)h(nic)m(h)m
+(t)382 3637 y(gew)m(arn)m(t.)48 b(So)m(w)m(ohl)34 b(diese,)f(als)f(auc)
+m(h)h(die)g(umgek)m(ehrte)h(K)m(om)m(bination)h(\(SMP-Mo)s(dul)382
+3750 y(in)30 b(UP-Kernel\))i(ist)e(leider)h(sehr)g(instabil.)1831
+5622 y(39)p eop
+%%Page: 40 42
+40 41 bop 382 1211 a Fk(Kapitel)62 b(5)382 1676 y Fm(Implemen)-6
+b(tierung)382 2171 y Fp(Es)33 b(gibt)g(zw)m(ar)h(ein)g(paar)f(w)m
+(enige,)i(jedo)s(c)m(h)f(in)f(der)g(Regeln)g(nic)m(h)m(t)i(aktuelle,)f
+(Un)m(terla-)382 2284 y(gen,)k(die)e(einem)h(b)s(ei)f(der)g(Implemen)m
+(tierung)j(eines)d(T)-8 b(reib)s(ers)37 b(f\374r)f(Lin)m(ux)h(b)s
+(ehil\035ic)m(h)382 2397 y(sind.)59 b(Nun)36 b(wurde)h(endlic)m(h)h
+(eine)f(Neuau\035age)h(des)e(diesb)s(ez\374glic)m(h)i(b)s(esten)f(Buc)m
+(hes)382 2510 y([Rub98])j(angek\374ndigt,)j(die)c(den)h(Lin)m
+(ux-Kernel)i(in)d(der)h(V)-8 b(ersion)40 b(2.2.x)f(ab)s(dec)m(k)m(en)
+382 2622 y(soll.)h(Es)28 b(wird)h(sic)m(h)g(allerdings)g(erst)f
+(herausstellen,)i(ob)f(diese)g(zw)m(eite)g(Au\035age)g(wirk-)382
+2735 y(lic)m(h)i(erh\344ltlic)m(h)h(ist,)f(b)s(ev)m(or)f(die)h(V)-8
+b(ersion)31 b(2.4.x)f(des)h(Lin)m(ux-Kernels)h(fertig)e(ist.)382
+2898 y(Auc)m(h)i(ist)g(das)g(F)-8 b(ramew)m(ork,)34 b(in)e(das)f(sic)m
+(h)i(ein)f(T)-8 b(reib)s(er)33 b(eingliedern)g(m)m(u\377,)h(v)m
+(erst\344nd-)382 3011 y(lic)m(herw)m(eise)i(auf)e(T)-8
+b(reib)s(er)35 b(ausgeric)m(h)m(tet,)i(die)e(ric)m(h)m(tige)h(Hardw)m
+(are)f(ansprec)m(hen,)i(w)m(as)382 3124 y(nic)m(h)m(t)27
+b(zuletzt)f(zu)f(einigen)h(Problemen)h(b)s(ei)e(der)h(Implemen)m
+(tierung)i(dieses)d(virtuellen)382 3237 y(Massensp)s(eic)m
+(herger\344tes)31 b(f\374hrte.)382 3400 y(Dieses)22 b(Kapitel)i(b)s
+(ezieh)m(t)g(sic)m(h)f(auf)g(V)-8 b(ersion)23 b(0.5.3)h(v)m(on)f(DRBD.)
+f(Alle)h(v)m(er\366\033en)m(tlic)m(h)m(ten)382 3512 y(V)-8
+b(ersionen)21 b(v)m(on)g(DRBD)f(sind)g(un)m(ter)h(h)m
+(ttp://www.complang.tu)m(wien.)q(ac.at/)q(reisner/)q(drb)s(d/)382
+3625 y(erh\344ltlic)m(h.)382 3962 y Fj(5.1)130 b(Struktur)382
+4214 y Fp(Den)33 b(Hauptteil)g(des)f(Programmco)s(des,)j(knapp)e(2500)g
+(Zeilen)h(C,)e(bildet)i(ein)f(Mo)s(dul)382 4327 y(f\374r)d(den)i
+(Kernel,)g(das)e(ein)h(Blo)s(c)m(kger\344t)h(implemen)m(tiert.)44
+b(Da)31 b(f\374r)g(die)g(K)m(on\034guration)382 4440
+y(Information)46 b(v)m(om)g(An)m(w)m(ender)h(erforderlic)m(h)g(ist)e
+(und)g(DRBD)g(auc)m(h)h(auf)f(externe)382 4553 y(Ereignisse)d
+(reagieren)g(m)m(u\377,)j(k)-5 b(ann)41 b(das)g(Kernelmo)s(dul,)k(das)c
+(aus)g(dem)h(Userspace)382 4666 y(n)m(ur)h(als)e(Blo)s(c)m(kger\344t)i
+(sic)m(h)m(tbar)g(ist,)h(\374b)s(er)e(den)g(io)s(ctl\(\))h(Systemruf)e
+(Informationen)382 4779 y(en)m(tgegennehmen.)382 4942
+y(Die)g(f\374r)g(den)h(An)m(w)m(ender)h(greifbare)f(Seite)g(der)f(io)s
+(ctl\(\))h(Systemrufe)f(ist)g(im)g(drb)s(d-)382 5054
+y(setup)31 b(\(rund)g(350)g(Zeilen\))g(Utilit)m(y)g(implemen)m(tiert.)
+43 b(Es)31 b(wird)g(un)m(ter)g(anderem)h(dazu)382 5167
+y(v)m(erw)m(endet,)27 b(die)c(not)m(w)m(endigen)j(IP-A)m(dressen)d(an)h
+(das)f(Kernelmo)s(dul)h(w)m(eiterzugeb)s(en.)382 5280
+y(Es)40 b(wurde)g(allerdings)h(so)f(ausgelegt,)j(da\377)e(sic)m(h)f(k)m
+(ein)g(f\374r)g(das)g(F)-8 b(unktionieren)42 b(des)382
+5393 y(Ger\344tes)30 b(not)m(w)m(endiger)k(Programm)m(teil)f(im)e(drb)s
+(dsetup)f(Utilit)m(y)h(b)s(e\034ndet.)1831 5622 y(40)p
+eop
+%%Page: 41 43
+41 42 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fp(Als)29 b(K)m(on)m(trast)j(dazu)e(sei)f(das)h(n)m(b)s(d-clien)m(t)i
+(Utilit)m(y)e(v)m(on)g(NBD)2506 506 y Fg(1)2575 539 y
+Fp(erw)m(\344hn)m(t.)42 b(Nb)s(d-clien)m(t)382 652 y(baut)21
+b(die)g(TCP/IP-V)-8 b(erbindung)24 b(zum)d(Serv)m(er,)i(der)e(im)g(F)-8
+b(alle)21 b(v)m(on)g(NBD)f(eb)s(enfalls)g(ein)382 764
+y(normales)j(An)m(w)m(endungsprogramm)j(ist,)e(auf)f(und)g(\374b)s
+(ergibt)g(die)g(fertige)g(V)-8 b(erbindung)382 877 y(an)30
+b(den)h(Kernel-Co)s(de.)382 1040 y(Da)49 b(drb)s(dsetup)h(n)m(ur)g
+(Information)g(w)m(eitergibt,)56 b(wird)50 b(es)f(einfac)m(her)i(sein,)
+j(Ro)s(ot-)382 1153 y(Filesystem-Un)m(terst\374tzung)29
+b(in)f(DRBD)f(zu)h(implemen)m(tieren,)j(w)m(enn)e(DRBD)d(in)i(den)382
+1266 y(Lin)m(ux-Kernel)33 b(eingebunden)f(wird.)382 1429
+y(Daneb)s(en)h(gibt)h(es)e(no)s(c)m(h)i(Shell-Skripts,)g(die)g(die)f
+(In)m(tegration)h(v)m(on)g(DRBD)e(mit)h(der)382 1542
+y(Cluster-Managemen)m(t-Soft)m(w)m(are)25 b(Heartb)s(eat)c(erm\366glic)
+m(hen,)k(so)m(wie)c(eine)g(Benc)m(hmark-)382 1654 y(Applik)-5
+b(ation.)382 1991 y Fj(5.2)130 b(Kernel-Mo)t(dul)382
+2243 y Fp(Als)23 b(T)-8 b(reib)s(er)24 b(m)m(u\377)h(DRBD)d
+(nat\374rlic)m(h)k(eine)e(Instanz)f(der)h(\034le_op)s(erations)h(im)e
+(System)382 2356 y(registrieren,)40 b(und)d(DRBD)f(m)m(u\377)i(eine)f
+(do_request)g(Prozedur)i(dem)e(Bu\033er-Cac)m(he)382
+2469 y(zur)k(V)-8 b(erf\374gung)42 b(stellen.)73 b(W)-8
+b(eiters)41 b(registriert)h(DRBD)e(einen)i(neuen)g(Ein)m(trag)g(im)382
+2582 y(/pro)s(c)25 b(Filesystem,)i(\374b)s(er)e(den)h(sic)m(h)g(der)f
+(A)m(dministrator)i(ein)f(Bild)g(\374b)s(er)f(die)h(in)m(ternen)382
+2695 y(Zust\344nde)31 b(der)g(DRBD-Ger\344te)f(v)m(ersc)m(ha\033en)i(k)
+-5 b(ann.)382 2988 y Fo(5.2.1)112 b(Bu\033er-Cac)m(he)382
+3210 y Fp(W)-8 b(enn)35 b(der)g(Bu\033er-Cac)m(he)i(Anforderungen)f
+(durc)m(h)f(einen)h(Aufruf)e(der)h(do_request)382 3323
+y(Prozedur)i(\374b)s(ergibt,)g(m)m(\374ssen)f(diese)f(m\366glic)m(hst)i
+(sc)m(hnell)f(erf\374llt)f(w)m(erden.)57 b(Handelt)382
+3435 y(es)43 b(sic)m(h)i(um)f(eine)g(Au\033orderung)h(zum)f(Lesen)h
+(eines)e(Blo)s(c)m(k)m(es,)48 b(m)m(u\377)d(DRBD)e(den)382
+3548 y(Daten)m(transfer)30 b(v)m(on)f(der)h(zugrundeliegenden)h(F)-8
+b(estplatte)30 b(durc)m(hf\374hren.)42 b(Dies)29 b(wird)382
+3661 y(mit)g(Hilfe)g(einer)g(temp)s(or\344ren)h(K)m(opie)h(des)d
+(bu\033er_heads)i(erledigt.)41 b(Diese)29 b(Metho)s(de)382
+3774 y(wird)i(auc)m(h)g(b)s(eim)g(ext3)f(Dateisystem)h(v)m(erw)m
+(endet.)42 b([T)-8 b(w)m(e98)r(])382 3937 y(Durc)m(h)31
+b(dieses)g(V)-8 b(erhalten)31 b(b)s(e\034nden)g(sind)g(immer)g(n)m(ur)g
+(Bl\366)s(c)m(k)m(e)g(des)g(DRBD-Ger\344tes)382 4050
+y(im)48 b(Bu\033er-Cac)m(he,)54 b(Bl\366)s(c)m(k)m(e)48
+b(des)f(ph)m(ysisc)m(hen)i(F)-8 b(estplattenger\344tes)50
+b(liegen)e(nie)g(im)382 4163 y(Bu\033er-Cac)m(he.)382
+4325 y(Bei)41 b(der)g(V)-8 b(erarb)s(eitung)42 b(einer)g(Sc)m
+(hreibanforderung)i(m)m(u\377)d(der)h(Daten)m(blo)s(c)m(k)g(aller-)382
+4438 y(dings)23 b(auc)m(h)h(\374b)s(er)f(das)g(Netzw)m(erk)h(v)m
+(ersendet)g(w)m(erden.)39 b(Da)23 b(die)g(do_request\(\))h(Proze-)382
+4551 y(dur)f(immer)h(im)g(K)m(on)m(text)g(eines)g(Prozesses)f
+(aufgerufen)2297 4518 y Fg(2)2360 4551 y Fp(wird)h(\(vgl.)38
+b(Absc)m(hnitt)24 b(4.3.1)382 4664 y(auf)i(Seite)i(35\),)f(ist)g(das)f
+(V)-8 b(ersenden)28 b(des)e(Datenpak)m(etes)i(\374b)s(er)f(die)g(TCP-V)
+-8 b(erbindung)382 4777 y(ohne)41 b(w)m(eiteres)h(m\366glic)m(h.)73
+b(Sollte)41 b(der)g(Pu\033ersp)s(eic)m(her)h(des)f(So)s(c)m(k)m(ets)g
+(v)m(oll)g(w)m(erden,)382 4890 y(blo)s(c)m(kiert)33 b(der)g(Aufruf)f(v)
+m(on)h(so)s(c)m(k_sendmsg\(\),)h(und)f(der)g(Proze\377,)h(der)f(die)g
+(Sc)m(hreib-)382 5003 y(op)s(eration)42 b(v)m(erursac)m(h)m(t)h(hat,)h
+(wird)e(blo)s(c)m(kiert.)74 b(Diese)41 b(Eigensc)m(haft)h(ist)f(auc)m
+(h)h(sehr)p 382 5064 1196 4 v 486 5118 a Ff(1)520 5150
+y Fe(Net)n(w)n(ork)25 b(blo)r(c)n(k)h(device,)g(h)n(ttp://atrey)-6
+b(.k)l(arlin.m\033.cuni.cz/\003pa)n(v)n(el/n)n(b)r(d/n)n(b)r(d.h)n(tml)
+486 5209 y Ff(2)520 5241 y Fe(En)n(t)n(w)n(eder)37 b(im)g(K)n(on)n
+(text)f(eines)h(Prozesses,)43 b(der)37 b(eine)g(IO-Op)r(eration)g(durc)
+n(hf\374hrt,)i(o)r(der)e(im)382 5333 y(K)n(on)n(text)24
+b(des)i(k\035ushd)e(o)r(der)i(kup)r(date)f(Kernel-Threads.)1831
+5622 y Fp(41)p eop
+%%Page: 42 44
+42 43 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fp(hilfreic)m(h,)40 b(w)m(enn)f(das)e(Computersystem,)j(das)d(die)h
+(Daten)m(bl\366)s(c)m(k)m(e)h(empf\344ngt,)h(lang-)382
+652 y(samer)d(ist)f(als)h(das)f(sendende)i(System,)g(da)f(in)f(diesem)i
+(F)-8 b(all)37 b(eb)s(enfalls)f(der)h(Proze\377)382 764
+y(am)31 b(sendenden)g(System)g(so)f(lange)i(blo)s(c)m(kiert)f(wird,)g
+(bis)g(das)f(empfangende)i(System)382 877 y(wieder)f(b)s(ereit)g(ist,)f
+(Daten)h(en)m(tgegenzunehmen.)382 1162 y Fn(5.2.1.1)103
+b(Deadlo)s(c)m(k)382 1380 y Fp(Da)40 b(Lin)m(ux)i(eine)f(\034xe)f
+(Anzahl)i(an)e(Ein)m(tr\344gen)j(f\374r)d(IO-Anforderungen)i(hat)f
+(\(siehe)382 1493 y(4.2.2.2)26 b(auf)e(Seite)i(33\),)h(k)-5
+b(ann)25 b(es)f(zu)h(einem)h(Deadlo)s(c)m(k)f(k)m(ommen,)j(w)m(enn)e
+(die)f(Request-)382 1606 y(Queue)31 b(k)m(eine)g(Sc)m
+(hreibanforderungen)j(mehr)d(aufnehmen)h(k)-5 b(ann.)382
+1765 y(Kann)21 b(die)g(Request-Queue)f(k)m(eine)h(Sc)m
+(hreibanforderungen)j(mehr)d(aufnehmen)3114 1732 y Fg(3)3155
+1765 y Fp(,)h(wird)382 1878 y(der)27 b(Proze\377,)i(dessen)d(Sc)m
+(hreibanforderungen)31 b(nic)m(h)m(t)d(mehr)f(Platz)h(hab)s(en,)g
+(einfac)m(h)g(so)382 1991 y(lange)43 b(in)f(den)h(Zustand)g(T)-8
+b(ASK_UNINTERR)m(UPTIBLE)44 b(gebrac)m(h)m(t,)j(bis)c(wieder)382
+2104 y(Ein)m(tr\344ge)28 b(frei)e(sind.)39 b(Dieses)25
+b(Sc)m(hema)i(funktioniert)g(mit)f(normalen)i(F)-8 b(estplatten)m
+(trei-)382 2217 y(b)s(ern)30 b(ohne)h(Probleme.)382 2376
+y(W)-8 b(enn)41 b(n)m(un)h(alle)f(Ein)m(tr\344ge)i(mit)f(Sc)m
+(hreibanforderungen)i(an)d(DRBD)f(b)s(elegt)h(sind,)382
+2489 y(wird)36 b(der)g(Proze\377,)i(der)d(v)m(ersuc)m(h)m(t,)k(die)c
+(Anforderungen)i(abzuarb)s(eiten,)h(b)s(eim)e(V)-8 b(er-)382
+2602 y(suc)m(h,)40 b(eine)d(Sc)m(hreibanforderung)k(an)c(den)h(darun)m
+(terliegenden)j(F)-8 b(estplatten)m(treib)s(er)382 2715
+y(zu)33 b(senden,)i(blo)s(c)m(kiert.)50 b(Da)33 b(ab)s(er)h(k)m(eine)g
+(Sc)m(hreibanforderung)i(abgesc)m(hlossen)e(w)m(er-)382
+2828 y(den)c(k)-5 b(ann,)30 b(ist)g(der)g(Computer)h(derart)f(blo)s(c)m
+(kiert,)h(da\377)f(er)g(auc)m(h)h(nic)m(h)m(t)g(mehr)g(herun-)382
+2941 y(tergefahren)h(w)m(erden)f(k)-5 b(ann.)382 3100
+y(Das)29 b(lo)s(op-blo)s(c)m(k-device,)j(das)d(sc)m(hon)i(sehr)e(lange)
+i(Bestandteil)g(des)e(Kernels)h(ist,)g(hat)382 3213 y(im)43
+b(Grunde)h(dasselb)s(e)f(Problem.)80 b(Es)43 b(wurde)g(b)s(eim)g(lo)s
+(op-blo)s(c)m(k-device)i(dadurc)m(h)382 3326 y(gel\366st,)33
+b(da\377)f(Sc)m(hreibanforderungen)k(des)31 b(lo)s(op-blo)s(c)m
+(k-devices)i(und)g(des)e(NBDs)h(n)m(ur)382 3439 y(ein)41
+b(Drittel)h(der)f(Request-Queue)h(b)s(elegen)g(d\374rfen.)73
+b(Es)41 b(handelt)h(sic)m(h)f(um)h(einen)382 3552 y(Sonderfall,)31
+b(der)g(in)g(lin)m(ux/driv)m(ers/blo)s(c)m(k/ll_rw_blo)s(c)m(k.c)j
+(fest)c(v)m(erank)m(ert)i(wurde.)382 3711 y(DRBD)40 b(ist)h(bis)g
+(jetzt)g(als)g(Mo)s(dul)g(implemen)m(tiert,)47 b(da)41
+b(dies)g(die)h(Installation)g(w)m(e-)382 3824 y(sen)m(tlic)m(h)47
+b(v)m(ereinfac)m(h)m(t.)88 b(Daher)46 b(k)-5 b(ann)46
+b(DRBD)f(k)m(einen)h(eigenen)h(Sonderfall)g(in)e(li-)382
+3937 y(n)m(ux/driv)m(ers/blo)s(c)m(k/ll_rw_blo)s(c)m(k.c)38
+b(hab)s(en.)50 b(Ic)m(h)34 b(hab)s(e)g(mic)m(h)h(dazu)f(en)m(tsc)m
+(hlossen,)382 4050 y(bis)40 b(auf)f(w)m(eiteres)j(die)e(Ma)5
+b(jor)40 b(Nummer)g(des)g(net)m(w)m(ork-blo)s(c)m(k-devices)j(zu)d(v)m
+(erw)m(en-)382 4163 y(den.)59 b(Dadurc)m(h)38 b(k)m(\366nnen)f(Sc)m
+(hreibanforderungen)j(an)c(DRBD)g(n)m(ur)h(ein)g(Drittel)g(der)382
+4276 y(Request-Queue)25 b(b)s(elegen,)h(und)e(es)g(k)-5
+b(ann)24 b(nic)m(h)m(t)i(zu)f(dem)f(erw)m(\344hn)m(ten)j(Deadlo)s(c)m
+(k)e(k)m(om-)382 4389 y(men.)382 4548 y(Dadurc)m(h)33
+b(en)m(tsteh)m(t)h(der)e(Nac)m(h)m(teil,)j(da\377)d(NBD)f(und)i(DRBD)e
+(nic)m(h)m(t)j(gleic)m(hzeitig)g(v)m(er-)382 4661 y(w)m(endet)46
+b(w)m(erden)g(k)m(\366nnen.)83 b(Der)45 b(V)-8 b(orteil)45
+b(liegt)g(in)g(einer)g(w)m(esen)m(tlic)m(h)i(einfac)m(heren)382
+4774 y(Installation,)31 b(da)g(die)f(Implemen)m(tierung)j(als)e(Mo)s
+(dul)f(m\366glic)m(h)i(ist.)382 4933 y(Mit)40 b(Lin)m(ux)i(2.4)f(wird)g
+(diese)g(Einsc)m(hr\344nkung)i(aufgehob)s(en)e(w)m(erden)h(k)m
+(\366nnen,)j(w)m(eil)382 5046 y(dann)36 b(DRBD)f(seine)h(eigene)g
+(Request-Queue)g(hab)s(en)g(k)-5 b(ann)35 b(und)h(die)g(V)-8
+b(erw)m(endung)382 5159 y(einer)31 b(eigenen)g(Ma)5 b(jor)30
+b(Nummer)i(wieder)f(m\366glic)m(h)h(ist.)p 382 5217 1196
+4 v 486 5271 a Ff(3)520 5302 y Fe(Nur)e(66)h(\045)f(der)h
+(Request-Queue)d(k)n(\366nnen)h(mit)h(Sc)n(hreibanforderungen)g
+(gef\374llt)h(w)n(erden,)h(das)382 5394 y(letzte)26 b(Drittel)g(steh)n
+(t)f(immer)f(f\374r)i(Leseanforderungen)g(zur)g(V)-6
+b(erf\374gung.)1831 5622 y Fp(42)p eop
+%%Page: 43 45
+43 44 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fo(5.2.2)112 b(Threads)382 755 y Fp(Am)34 b(Anfang)h(der)g(En)m(t)m
+(wic)m(klung)j(wurde)d(v)m(orgesehen,)i(da\377)f(der)f(Empfang)g(v)m
+(on)g(Da-)382 868 y(tenpak)m(eten)24 b(durc)m(h)f(einen)g(normalen)h
+(Proze\377)g(im)e(Userspace)h(v)m(orgenommen)h(w)m(erden)382
+981 y(sollte.)40 b(Diese)29 b(V)-8 b(organgsw)m(eise)31
+b(h\344tte)f(neb)s(en)f(sc)m(hlec)m(h)m(terer)j(P)m(erformance)f(und)f
+(k)m(om-)382 1094 y(plizierterer)i(A)m(dministration)g(v)m(or)f(allem)g
+(mit)g(folgendem)g(Problem)h(zu)e(k)-5 b(\344mpfen:)680
+1274 y(Im)20 b(folgenden)i(wird)f(ein)f(Knoten)i(eines)e(Clusters)h(b)s
+(estehend)g(aus)f(zw)m(ei)i(Com-)680 1387 y(putern)31
+b(b)s(etrac)m(h)m(tet.)764 1567 y(1.)46 b(Das)29 b(Ger\344t)h(des)g
+(Knotens)g(b)s(e\034ndet)g(sic)m(h)g(im)g(prim\344ren)h(Zustand,)f(da-)
+880 1680 y(her)43 b(k)-5 b(ann)43 b(eine)g(Applik)-5
+b(ation)43 b(auf)f(das)h(Blo)s(c)m(kger\344t)g(zugreifen.)78
+b(Bei)880 1793 y(der)40 b(Durc)m(hf\374hrung)h(v)m(on)f(Sc)m(hreib)s
+(op)s(erationen)i(w)m(erden)e(K)m(opien)h(der)880 1906
+y(Bl\366)s(c)m(k)m(e)h(im)g(Bu\033er-Cac)m(he)h(gesp)s(eic)m(hert.)75
+b(Diese)41 b(Bl\366)s(c)m(k)m(e)h(tragen)g(die)880 2019
+y(Ma)5 b(jor)30 b(Num)m(b)s(er)h(des)f(DRBD-Ger\344tes.)764
+2160 y(2.)46 b(Der)39 b(Zustand)g(des)f(Clusters)g(wird)h(ge\344ndert,)
+j(und)d(das)f(b)s(etrac)m(h)m(tete)880 2273 y(Blo)s(c)m(kger\344t)j
+(wird)f(v)m(on)g(n)m(un)h(an)f(in)g(der)g(sekund\344ren)g(F)-8
+b(unktion)41 b(v)m(er-)880 2386 y(w)m(endet.)764 2527
+y(3.)46 b(Daten)m(bl\366)s(c)m(k)m(e)35 b(w)m(erden)g(v)m(om)e
+(Proze\377)i(im)e(Userspace)g(empfangen)h(und)880 2640
+y(auf)g(die)h(dazugeh\366rige)h(F)-8 b(estplatte)36 b(gesc)m(hrieb)s
+(en.)54 b(Dab)s(ei)34 b(w)m(erden)i(sie)880 2753 y(im)28
+b(Bu\033er-Cac)m(he)h(mit)f(der)g(Ma)5 b(jor)28 b(Num)m(b)s(er)g(des)f
+(F)-8 b(estplatten)m(treib)s(ers)880 2866 y(gesp)s(eic)m(hert.)764
+3007 y(4.)46 b(Nun)f(wird)h(der)f(Cluster)h(wieder)g(in)g(den)f
+(urspr\374nglic)m(hen)j(Zustand)880 3120 y(gebrac)m(h)m(t.)764
+3261 y(5.)e(Wird)21 b(n)m(un)g(v)m(om)h(DRBD-Ger\344t)e(gelesen,)k
+(liefert)d(der)g(Bu\033er-Cac)m(he)h(die)880 3374 y(Bl\366)s(c)m(k)m(e)
+35 b(aus)g(Punkt)g(1,)g(ob)m(w)m(ohl)i(sie)d(in)h(Punkt)g(3)f(durc)m(h)
+i(neue)f(Bl\366)s(c)m(k)m(e)880 3487 y(\374b)s(ersc)m(hrieb)s(en)d
+(wurden.)382 3770 y Fn(5.2.2.1)103 b(Empfang)382 3986
+y Fp(Um)45 b(nic)m(h)m(t)i(auf)d(dieses)h(Problem)i(zu)e(sto\377en,)k
+(wurde)d(das)f(Empfangen)i(v)m(on)e(Da-)382 4099 y(ten)m(bl\366)s(c)m
+(k)m(en)c(zu)f(einem)g(in)m(tegralen)h(Bestandteil)f(v)m(on)g(DRBD,)f
+(der)g(im)h(Mo)s(dul)f(als)382 4212 y(Kernel-Thread)33
+b(implemen)m(tiert)g(ist.)382 4370 y(Dieser)21 b(Thread)h(w)m(artet)g
+(in)f(so)s(c)m(k_recvmsg\(\),)i(bis)d(ein)h(neuer)h(Daten)m(blo)s(c)m
+(k)g(v)m(om)f(Netz-)382 4483 y(w)m(erk)27 b(en)m(tgegengenommen)k(w)m
+(erden)d(k)-5 b(ann.)40 b(Danac)m(h)28 b(wird)f(v)m(om)h(Bu\033er-Cac)m
+(he)g(Puf-)382 4596 y(fersp)s(eic)m(her)e(f\374r)g(den)g(en)m(tsprec)m
+(henden)j(Blo)s(c)m(k)c(angefordert,)j(und)f(die)f(Daten)g(w)m(erden)
+382 4709 y(direkt)615 4676 y Fg(4)692 4709 y Fp(in)38
+b(diesem)g(Sp)s(eic)m(her)h(empfangen.)63 b(Bei)38 b(der)g(L\366sung)g
+(mit)g(dem)g(Daemon-)382 4822 y(Proze\377)23 b(im)f(Userspace)g
+(h\344tten)h(die)f(Daten)g(zuerst)g(in)g(den)h(A)m(dre\377raum)g(des)f
+(Daemons)382 4935 y(k)m(opiert)j(w)m(erden)h(m)m(\374ssen,)g(um)f(dann)
+g(v)m(on)g(dort)g(wiederum)h(in)e(den)h(Bu\033er-Cac)m(he)h(k)m(o-)382
+5047 y(piert)c(zu)f(w)m(erden.)39 b(Danac)m(h)23 b(wird)f(der)f(Befehl)
+h(gegeb)s(en,)h(den)f(Blo)s(c)m(k)f(im)h(Bu\033er-Cac)m(he)382
+5160 y(auf)30 b(die)h(F)-8 b(estplatte)31 b(zu)g(sc)m(hreib)s(en.)p
+382 5217 1196 4 v 486 5271 a Ff(4)520 5302 y Fe(W)-6
+b(enn)26 b(die)i(Netzw)n(erkk)l(arte)e(Daten)h(empf\344ngt,)h(w)n
+(erden)f(diese)h(zuerst)f(im)g(Pu\033ersp)r(eic)n(her)h(des)382
+5394 y(So)r(c)n(k)n(ets)d(abgelegt)i(und)e(v)n(on)g(dort)g(dann)g(mit)g
+(so)r(c)n(k_recvmsg\(\))g(k)n(opiert.)1831 5622 y Fp(43)p
+eop
+%%Page: 44 46
+44 45 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fp(Sollte)24 b(DRBD)f(einmal)i(erw)m(eitert)g(w)m(erden,)i(um)d(den)g
+(Einsatz)g(v)m(on)g(GFS)f(\374b)s(er)h(DRBD)382 652 y(zu)41
+b(erm\366glic)m(hen,)46 b(so)40 b(m)m(u\377)i(un)m(ter)f(anderem)h
+(hier)g(eine)f(\304nderung)g(v)m(orgenommen)382 764 y(w)m(erden.)h
+(DRBD)28 b(m)m(\374\377te)j(b)s(eim)e(Empfang)i(v)m(on)f(Daten)m
+(bl\366)s(c)m(k)m(en)h(direkt)f(auf)f(die)h(ph)m(y-)382
+877 y(sisc)m(he)21 b(F)-8 b(estplatte)22 b(sc)m(hreib)s(en)g(und)g
+(d\374rfte)f(den)h(Blo)s(c)m(k)f(nic)m(h)m(t)h(zuerst)f(im)h
+(Bu\033er-Cac)m(he)382 990 y(un)m(terbringen,)30 b(da)d(GFS)g(eb)s
+(enfalls)g(auf)f(diese)h(Bl\366)s(c)m(k)m(e)h(des)e(Bu\033er-Cac)m(hes)
+j(zugreifen)382 1103 y(w\374rde.)50 b(Ohne)33 b(diese)h(\304nderung)g
+(w\374rde)g(auc)m(h)g(jeder)f(Daten)m(blo)s(c)m(k)i(endlos)f(hin)f(und)
+382 1216 y(her)e(gesendet)g(w)m(erden.)382 1378 y(Der)45
+b(Thread)h(ist,)j(w)m(enn)e(das)e(DRBD-Ger\344t)g(mit)g(einem)h(P)m
+(artnerger\344t)i(v)m(erbun-)382 1490 y(den)g(wurde,)53
+b(mit)48 b(dem)g(ps-K)m(ommando)i(sic)m(h)m(tbar)f(und)f(tr\344gt)g
+(z.B.)g(den)g(Namen)382 1603 y(\022drb)s(dd_0\021,)36
+b(w)m(ob)s(ei)f(die)g(Zi\033er)f(immer)h(die)g(Minor)f(Num)m(b)s(er)h
+(des)f(Ger\344tes)g(anzeigt,)382 1716 y(zu)c(dem)h(der)g(Thread)g
+(geh\366rt.)382 2004 y Fn(5.2.2.2)103 b(Senden)382 2224
+y Fp(W\344hrend)41 b(das)e(Senden)i(der)g(Daten)f(im)g(K)m(on)m(text)i
+(jenes)d(Prozesses)h(durc)m(hgef\374hrt)382 2337 y(wird,)27
+b(der)f(den)g(Aufruf)f(der)h(do_request\(\))h(Prozedur)g(v)m(erursac)m
+(h)m(t)h(hat,)f(gibt)f(es)f(auc)m(h)382 2450 y(Ereignisse,)k(die)f(das)
+g(Senden)h(eines)f(P)m(ak)m(etes)h(ausl\366sen,)g(die)f(allerdings)h
+(nic)m(h)m(t)h(inner-)382 2563 y(halb)h(eines)f(Proze\377k)m(on)m
+(textes)j(auftreten.)41 b(Beispiele:)518 2821 y Fd(\017)46
+b Fp(Der)e(T)-8 b(reib)s(er)44 b(der)g(F)-8 b(estplatte)44
+b(meldet,)k(da\377)43 b(eine)h(Sc)m(hreib)s(op)s(eration)i(abge-)609
+2933 y(sc)m(hlossen)37 b(ist.)59 b(W)-8 b(enn)37 b(n)m(un)g(dieser)g
+(Blo)s(c)m(k)f(in)h(der)g(momen)m(tanen)i(Menge)e(f\374r)609
+3046 y(die)j(Bestimm)m(ung)h(der)e(W)-8 b(rite-Barriers)41
+b(en)m(thalten)g(ist,)h(so)d(m)m(u\377)h(ein)g(W)-8 b(rite-)609
+3159 y(Barrier-P)m(ak)m(et)33 b(gesendet)e(w)m(erden.)518
+3346 y Fd(\017)46 b Fp(Der)e(T)-8 b(reib)s(er)44 b(der)g(F)-8
+b(estplatte)44 b(meldet,)k(da\377)43 b(eine)h(Sc)m(hreib)s(op)s
+(eration)i(abge-)609 3459 y(sc)m(hlossen)31 b(ist.)40
+b(W)-8 b(enn)30 b(dieser)h(Blo)s(c)m(k)f(v)m(on)g(einer)h(\334b)s
+(ertragung)f(mit)h(Protok)m(oll)609 3571 y(C)j(\(o)s(der)g(dem)g
+(Resync)m(hronisationsproze\377\))i(stamm)m(t,)f(m)m(u\377)g(ein)f(W)-8
+b(rite-A)m(c)m(k-)609 3684 y(P)m(ak)m(et)32 b(gesendet)f(w)m(erden.)382
+3942 y(F)-8 b(estplatten)m(treib)s(er)29 b(rufen)d(diesen)h(Callbac)m
+(k,)i(\374b)s(er)d(den)h(sie)f(diese)g(Ereignisse)h(signa-)382
+4055 y(lisieren,)f(normalerw)m(eise)h(aus)e(einem)g(Bottom-Half)g(aus)g
+(auf,)g(der)g(an)g(den)g(In)m(terrupt,)382 4168 y(den)31
+b(die)f(F)-8 b(estplatte)32 b(b)s(eim)e(Absc)m(hlu\377)h(der)g(Op)s
+(eration)g(erzeugt,)g(gek)m(opp)s(elt)h(ist.)40 b(Ein)382
+4280 y(Bottom-Half)c(hat)g(k)m(einen)g(Proze\377k)m(on)m(text,)k(daher)
+c(k)m(\366nnen)g(auc)m(h)h(k)m(eine)f(Prozedu-)382 4393
+y(ren,)31 b(die)f(ev)m(en)m(tuell)j(sc)m(hlafen,)e(aufgerufen)g(w)m
+(erden.)382 4555 y(Um)25 b(die)g(not)m(w)m(endigen)j(P)m(ak)m(ete)e(do)
+s(c)m(h)g(v)m(ersenden)f(zu)g(k)m(\366nnen,)j(gibt)d(es)f(einen)i(zw)m
+(eiten)382 4668 y(Kernel-Thread.)44 b(Dieser)31 b(Thread)h(w)m(artet)g
+(in)g(der)f(asender_w)m(ait)i(W)-8 b(ait-Queue,)33 b(bis)382
+4781 y(er)k(v)m(on)g(einem)h(Bottom-Half)g(aus)f(gew)m(ec)m(kt)h(wird.)
+61 b(Um)37 b(w)m(elc)m(hes)i(Ereignis)e(es)g(sic)m(h)382
+4894 y(handelt)42 b(und)g(w)m(elc)m(he)h(Aktion)e(daher)h(zu)f(setzen)h
+(ist,)h(stellt)f(dieser)f(Thread)h(\374b)s(er)382 5006
+y(V)-8 b(ariablen)37 b(fest,)f(die)f(mit)h(den)g(anderen)g(Programm)m
+(teilen)j(gemeinsam)d(v)m(erw)m(endet)382 5119 y(w)m(erden.)382
+5281 y(Diese)26 b(Threads)h(sind)f(im)h(System)f(un)m(ter)h(der)g
+(Bezeic)m(hn)m(ung)i(\022drb)s(d_asender_X\021)35 b(zu)382
+5394 y(\034nden,)c(w)m(ob)s(ei)g(das)g(X)e(eb)s(enfalls)i(die)f(Minor)h
+(Nummer)g(des)f(Ger\344tes)h(wiedergibt.)1831 5622 y(44)p
+eop
+%%Page: 45 47
+45 46 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fn(5.2.2.3)103 b(Sync)m(hronisation)382 760 y Fp(F)-8
+b(alls)45 b(neb)s(en)f(der)h(automatisc)m(h)i(durc)m(hgef\374hrten)g
+(Replik)-5 b(ation)45 b(der)f(Daten)m(bl\366)s(c)m(k)m(e)382
+873 y(eine)30 b(Sync)m(hronisation)h(wie)f(in)g(Absc)m(hnitt)g(3.4)g
+(auf)g(Seite)g(26)f(b)s(esc)m(hrieb)s(en)i(durc)m(hge-)382
+986 y(f\374hrt)g(wird,)g(so)g(wird)g(dies)g(durc)m(h)h(einen)f(eigenen)
+h(Kernel-Thread)h(erledigt.)43 b(Dieser)382 1099 y(Thread)26
+b(l\344uft)g(n)m(ur)g(w)m(\344hrend)i(des)d(Sync)m(hronisationsv)m
+(organges)j(auf)e(jenem)f(Knoten,)382 1212 y(v)m(on)31
+b(dem)f(aus)h(die)f(Daten)h(v)m(ersendet)h(w)m(erden.)382
+1374 y(Bei)44 b(der)g(\374blic)m(hen)i(V)-8 b(organgsw)m(eise,)49
+b(um)44 b(Daten)h(v)m(on)f(einem)h(Blo)s(c)m(kger\344t)g(zu)f(b)s(e-)
+382 1487 y(k)m(ommen,)37 b(wird)e(zuerst)g(der)g(Blo)s(c)m(k)g(v)m(om)g
+(Bu\033er-Cac)m(he)i(angefordert)f(und)f(\026)g(falls)382
+1600 y(dieser)g(nic)m(h)m(t)h(aktuell)f(ist)g(\026)g(w)m(erden)h(die)f
+(Daten)g(v)m(om)h(Ger\344t)f(mit)g(ll_rw_blo)s(c)m(k\(\))382
+1713 y(eingelesen.)382 1876 y(Eine)43 b(der)h(Anforderungen)g(an)f(den)
+g(Sync)m(hronisationsmec)m(hanism)m(us)j(ist,)g(da\377)d(er)382
+1989 y(parallel)38 b(zum)f(Normalb)s(etrieb)i(laufen)e(m)m(u\377.)61
+b(Im)37 b(normalen)h(Betrieb)g(arb)s(eitet)f(al-)382
+2102 y(lerdings)d(ein)f(Dateisystem)g(aktiv)g(mit)g(dem)h(Bu\033er-Cac)
+m(he.)50 b(Es)33 b(k)-5 b(ann)34 b(z.B.)f(Bl\366)s(c)m(k)m(e)382
+2215 y(anfordern,)j(sie)d(einlesen,)j(Mo)s(di\034k)-5
+b(ationen)34 b(durc)m(hf\374hren,)j(sie)c(freigeb)s(en)2972
+2182 y Fg(5)3046 2215 y Fp(o)s(der)h(ex-)382 2327 y(plizit)d(das)f
+(Zur\374c)m(ksc)m(hreib)s(en)j(v)m(erlangen.)382 2490
+y(W\374rde)i(der)h(Kernel-Thread,)j(der)c(die)g(Sync)m(hronisation)j
+(durc)m(hf\374hrt,)g(die)d(\374blic)m(he)382 2603 y(V)-8
+b(organgsw)m(eise)31 b(b)s(eim)e(Einlesen)h(v)m(on)g(Daten)f(an)m(w)m
+(enden,)j(w\374rde)e(der)g(Bu\033er-Cac)m(he)382 2716
+y(einfac)m(h)35 b(die)f(A)m(dressen)g(der)g(Bl\366)s(c)m(k)m(e)g(im)g
+(Sp)s(eic)m(her)h(auc)m(h)g(an)f(das)g(DRBD-Ger\344t)g(b)s(e-)382
+2829 y(k)-5 b(ann)m(tgeb)s(en,)28 b(und)d(es)g(k)m(\366nn)m(ten)i
+(Daten)f(auf)f(die)h(gespiegelte)h(F)-8 b(estplatte)26
+b(gesc)m(hrieb)s(en)382 2942 y(w)m(erden,)32 b(die)f(das)f(Filesystem)g
+(no)s(c)m(h)h(gar)g(nic)m(h)m(t)h(sc)m(hreib)s(en)f(will)2607
+2909 y Fg(6)2647 2942 y Fp(.)382 3105 y(Daher)i(m)m(u\377)h(der)f
+(Bu\033er-Cac)m(he)i(b)s(eim)e(Einlesen)h(der)f(Daten)g(f\374r)g(die)g
+(Sync)m(hronisa-)382 3217 y(tion)k(umgangen)i(w)m(erden.)62
+b(Dab)s(ei)37 b(wird,)j(\344hnlic)m(h)e(wie)g(in)f(5.2.1)g(mit)h(einem)
+g(selbst)382 3330 y(erzeugten)32 b(bu\033er_head)f(gearb)s(eitet.)382
+3493 y(Die)c(Implemen)m(tierung)j(des)e(Bitfeldes)f(wurde)h(v)m(om)g
+(Rest)f(durc)m(h)h(eine)g(Sprungtab)s(el-)382 3606 y(le)34
+b(k)m(omplett)h(getrenn)m(t.)53 b(Das)33 b(erm\366glic)m(h)m(t,)k
+(da\377)e(das)e(Bitfeld)h(durc)m(h)h(andere)g(Imple-)382
+3719 y(men)m(tierungen)g(ersetzt)d(wird.)47 b(So)32 b(k)m(\366nn)m(te)i
+(eine)e(Implemen)m(tierung,)k(die)c(mit)h(einem)382 3832
+y(Filesystem)24 b(in)m(tegriert)i(ist,)f(Informationen)g(aus)f(dem)h
+(Filesystem)f(heranziehen,)j(um)382 3945 y(den)k(Sync)m(hronisationsv)m
+(organg)i(b)s(esser)d(zu)g(steuern.)382 4238 y Fo(5.2.3)112
+b(Datenstrukturen)382 4459 y Fp(Wie)29 b(b)s(ereits)h(erw)m(\344hn)m
+(t,)i(greifen)d(die)h(Threads)g(auf)g(einige)g(gemeinsame)h(Ressourcen)
+382 4572 y(zu.)72 b(F\374r)41 b(Datenstrukturen)h(wurden)g(aussc)m
+(hlie\377lic)m(h)h(Spinlo)s(c)m(ks)e(v)m(erw)m(endet.)74
+b(Da)382 4685 y(die)33 b(Zugri\033e)g(auf)f(diese)h(Datenstrukturen)h
+(sehr)e(kurz)h(sind,)g(w)m(\344ren)h(Semaphore)g(zu)382
+4798 y(aufw)m(endig.)p 382 4860 1196 4 v 486 4913 a Ff(5)520
+4945 y Fe(Ein)i(Blo)r(c)n(k,)i(der)e(mo)r(di\034ziert)f(und)f
+(freigegeb)r(en)j(wurde,)h(wird)e(sp\344ter)f(durc)n(h)g(k\035ushd)e(o)
+r(der)382 5036 y(kup)r(date)25 b(zur\374c)n(kgesc)n(hrieb)r(en.)486
+5096 y Ff(6)520 5128 y Fe(Da)19 b(genau)h(dieser)g(F)-6
+b(ehler)19 b(v)n(om)g(Kernel-Thread)g(f\374r)g(die)h(Sync)n
+(hronisation)f(des)h(Soft)n(w)n(are-Raid-)382 5219 y(Subsystems)26
+b(un)n(ter)h(Lin)n(ux)g(gemac)n(h)n(t)g(wird,)j(ist)e(momen)n(tan)e
+(\(Lin)n(ux)h(2.2.x\))h(die)h(V)-6 b(erw)n(endung)26
+b(v)n(on)382 5310 y(JFSs)g(auf)g(Soft)n(w)n(are-Raid)g(un)n(ter)f(Lin)n
+(ux)g(nic)n(h)n(t)g(m\366glic)n(h.)1831 5622 y Fp(45)p
+eop
+%%Page: 46 48
+46 47 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fn(transfer_log)45 b Fp(Im)40 b(transfer_log,)k(das)d(als)f
+(Ringpu\033ersp)s(eic)m(her)i(organisiert)g(ist,)609
+652 y(w)m(erden)50 b(Referenzen)e(auf)f(die)i(gesendeten)g(Bl\366)s(c)m
+(k)m(e)f(gesp)s(eic)m(hert.)94 b(Eb)s(enso)609 764 y(w)m(erden)42
+b(gesendete)f(write-barriers)i(im)d(transfer_log)i(abgelegt.)72
+b(Wird)40 b(ein)609 877 y(Best\344tigungspak)m(et)34
+b(f\374r)e(ein)h(W)-8 b(rite-Barrier-P)m(ak)m(et)36 b(empfangen,)e(k)m
+(\366nnen)f(al-)609 990 y(le)j(Ein)m(tr\344ge)i(im)e(transfer_log,)i
+(die)e(v)m(or)g(der)g(dazugeh\366rigen)i(W)-8 b(rite-Barrier)609
+1103 y(liegen,)31 b(freigegeb)s(en)f(w)m(erden.)41 b(Die)30
+b(Menge)f(f\374r)g(die)h(Bestimm)m(ung)h(der)f(W)-8 b(rite-)609
+1216 y(Barriers)28 b(sind)f(all)g(jene)g(Ein)m(tr\344ge,)j(die)e(nac)m
+(h)g(der)f(j\374ngsten)h(W)-8 b(rite-Barrier)29 b(ins)609
+1329 y(transfer_log)i(eingetragen)i(wurden.)609 1442
+y(Auf)e(das)f(transfer_log)i(wird)g(somit)f(aus)g(der)g(do_request\(\))
+h(Prozedur,)h(v)m(om)609 1555 y(Empfangs-Thread,)27 b(v)m(om)c
+(Sende-Thread)i(und)e(v)m(om)g(K)m(on)m(text)i(eines)e(Bottom-)609
+1668 y(Half)k(aus)g(zugegri\033en.)40 b(Um)27 b(auc)m(h)h(die)g(A)m
+(tomizit\344t)g(gegen)m(\374b)s(er)h(dem)f(Bottom-)609
+1781 y(Half)k(gew)m(\344hrleisten)i(zu)e(k)m(\366nnen,)h(m)m(u\377)g
+(ein)f(Spinlo)s(c)m(k)h(mit)f(den)g(_irqsa)m(v)m(e\(\))h(/)609
+1894 y(_irqrestore\(\))f(Op)s(erationen)f(eingesetzt)h(w)m(erden.)382
+2081 y Fn(ep)s(o)s(c)m(h_set)46 b Fp(Das)29 b(ep)s(o)s(c)m(h_set)i
+(wird)f(b)s(eim)g(Empfang)h(v)m(on)g(Daten)m(bl\366)s(c)m(k)m(en)h(v)m
+(erw)m(en-)609 2194 y(det,)d(um)f(dort)g(Referenzen)h(auf)e(die)h
+(empfangenen)i(Bl\366)s(c)m(k)m(e)e(abzulegen.)41 b(Wird)609
+2307 y(ein)36 b(W)-8 b(rite-Barrier-P)m(ak)m(et)39 b(empfangen,)g(m)m
+(u\377)d(auf)g(die)g(Beendigung)h(der)f(IO-)609 2420
+y(Op)s(erationen)22 b(aller)f(im)f(ep)s(o)s(c)m(h_set)h(en)m(thaltenen)
+i(Bl\366)s(c)m(k)m(e)e(gew)m(artet,)j(das)c(ep)s(o)s(c)m(h_set)609
+2533 y(geleert)48 b(und)g(ansc)m(hlie\377end)h(die)e(Best\344tigung)h
+(der)g(W)-8 b(rite-Barrier)49 b(an)e(den)609 2646 y(Absender)f
+(zur\374c)m(kgesc)m(hic)m(kt)i(w)m(erden.)88 b(Der)46
+b(Sende-Thread)i(m)m(u\377)e(auf)g(das)609 2759 y(ep)s(o)s(c)m(h_set)31
+b(zugreifen,)g(um)f(festzustellen,)g(f\374r)g(w)m(elc)m(he)i(Bl\366)s
+(c)m(k)m(e)e(eine)h(Sc)m(hreib-)609 2872 y(b)s(est\344tigung)g
+(gesendet)g(w)m(erden)h(k)-5 b(ann.)609 2984 y(Das)45
+b(ep)s(o)s(c)m(h_set)h(m)m(u\377)h(daher)f(v)m(om)g(Empfangs-Thread)i
+(und)e(v)m(om)g(Sende-)609 3097 y(Thread)41 b(v)m(erw)m(endet)h(w)m
+(erden.)72 b(Ein)40 b(Spinlo)s(c)m(k)h(ist)f(f\374r)g(die)g(Sync)m
+(hronisation)609 3210 y(der)31 b(Zugri\033e)g(ausreic)m(hend.)382
+3398 y Fn(sync_log)44 b Fp(Das)29 b(sync_log)g(ist)f(eb)s(enfalls)h
+(eine)g(Datenstruktur,)h(die)f(auf)g(der)g(Emp-)609 3511
+y(f\344ngerseite)21 b(v)m(erw)m(endet)i(wird.)37 b(Da)21
+b(Daten)m(bl\366)s(c)m(k)m(e,)j(die)d(v)m(om)g(Sync)m(hronisations-)609
+3624 y(Thread)h(stammen,)h(nic)m(h)m(t)g(am)e(W)-8 b(rite-Barrier)22
+b(Protok)m(oll)h(teilnehmen,)h(w)m(erden)609 3737 y(Referenzen)29
+b(auf)g(diese)g(Bl\366)s(c)m(k)m(e)g(hier)g(gesp)s(eic)m(hert,)i(bis)d
+(deren)i(Sc)m(hreibb)s(est\344ti-)609 3850 y(gung)h(an)g(den)f
+(Absender)h(zur\374c)m(kgesc)m(hic)m(kt)i(w)m(erden)f(k)-5
+b(ann.)609 3962 y(Das)36 b(sync_log)g(wird)g(eb)s(enfalls)f(v)m(om)h
+(Empfangs-Thread)i(und)e(v)m(om)h(Sende-)609 4075 y(Thread)32
+b(v)m(erw)m(endet,)g(daher)f(ist)f(ein)h(normaler)h(Spinlo)s(c)m(k)f
+(ausreic)m(hend.)382 4263 y Fn(BitMap)46 b Fp(Das)29
+b(v)m(om)i(sc)m(hnellen)g(Sync)m(hronisationsmec)m(hanism)m(us)i(v)m
+(erw)m(endete)f(Bit-)609 4376 y(feld)j(\(siehe)h(Punkt)f(3.4.1)h(auf)f
+(Seite)h(26\))f(m)m(u\377)h(v)m(or)g(gleic)m(hzeitigen)i(Zugri\033en)
+609 4489 y(aus)28 b(mehreren)h(Proze\377k)m(on)m(texten)h(gesc)m(h)m
+(\374tzt)g(w)m(erden,)g(daher)e(wird)h(ein)f(Spin-)609
+4602 y(lo)s(c)m(k)j(v)m(erw)m(endet.)382 4789 y Fn
+(need_to_issue_barrier)44 b Fp(V)-8 b(on)46 b(dieser)f(V)-8
+b(ariable)45 b(wird)h(n)m(ur)f(ein)g(einziges)g(Bit)609
+4902 y(v)m(erw)m(endet.)56 b(Ist)34 b(dieses)h(Bit)g(gesetzt,)i(wird)e
+(v)m(or)g(dem)h(Senden)f(des)g(n\344c)m(hsten)609 5015
+y(Datenpak)m(etes)48 b(ein)f(W)-8 b(rite-Barrier-P)m(ak)m(et)51
+b(v)m(ersc)m(hic)m(kt.)91 b(Do)s(c)m(h)47 b(der)h(Sende-)609
+5128 y(Thread)j(v)m(ersuc)m(h)m(t)g(eb)s(enfalls,)j(w)m(enn)c(dieses)f
+(Bit)h(gesetzt)f(ist,)54 b(das)c(W)-8 b(rite-)609 5241
+y(Barrier-P)m(ak)m(et)39 b(zu)e(v)m(ersc)m(hic)m(k)m(en.)61
+b(Im)36 b(Quellco)s(de)h(sind)g(diese)f(Read-Mo)s(dify-)609
+5354 y(W)-8 b(rite-Zugri\033e)39 b(auf)e(dieses)g(Bit)g(durc)m(h)h
+(atomare)g(Op)s(erationen)h(ausgef\374hrt,)1831 5622
+y(46)p eop
+%%Page: 47 49
+47 48 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 609 539 a
+Fp(damit)28 b(ein)f(need_to_issue_barrier)j(Bit)d(nic)m(h)m(t)i(zw)m
+(eimal)f(v)m(ersc)m(hic)m(kt)h(w)m(erden)609 652 y(k)-5
+b(ann.)609 764 y(Do)s(c)m(h)34 b(dies)f(ist)g(n)m(ur)h(mehr)g(zu)f
+(Dokumen)m(tationszw)m(ec)m(k)m(en)k(im)d(Quelltext)g(v)m(or-)609
+877 y(handen,)d(denn)e(auf)g(das)g(Bit)g(darf)g(erst)g(nac)m(h)h
+(Erhalt)g(der)f(send_m)m(utex)i(zuge-)609 990 y(gri\033en)23
+b(w)m(erden,)j(da)d(man)g(das)g(P)m(ak)m(et)h(so)m(wieso)g(senden)f(m)m
+(u\377)g(und)h(diese)f(Aktion)609 1103 y(an)31 b(der)f(ric)m(h)m(tigen)
+j(Stelle)e(im)g(transfer_log)g(eingetragen)h(w)m(erden)g(m)m(u\377.)382
+1282 y Fn(request.rq_status)46 b Fp(Da)31 b(b)s(ei)g(einer)g(Sc)m
+(heibanforderung)k(auf)c(den)g(Absc)m(hlu\377)h(v)m(on)609
+1395 y(zw)m(ei)41 b(Op)s(erationen)g(gew)m(artet)h(w)m(erden)f(m)m
+(u\377,)i(wird)e(im)f(Statusfeld)g(des)g(Re-)609 1508
+y(quests)g(festgehalten,)j(w)m(elc)m(he)f(Op)s(eration)f(b)s(ereits)f
+(abgesc)m(hlossen)h(ist.)69 b(Die)609 1621 y(Prozedur,)49
+b(die)44 b(dieses)g(F)-8 b(eld)44 b(b)s(earb)s(eitet,)k(liest)c(zuerst)
+g(den)g(W)-8 b(ert)44 b(ein)g(und)609 1734 y(sc)m(hreibt)26
+b(ihn)g(ansc)m(hlie\377end)h(zur\374c)m(k.)39 b(W)-8
+b(eil)26 b(es)e(zumindest)i(einen)g(F)-8 b(estplatten-)609
+1847 y(treib)s(er,)28 b(der)e(diese)g(Prozedur)h(\(\374b)s(er)f(den)h
+(Callbac)m(k,)h(der)e(den)g(Absc)m(hlu\377)h(einer)609
+1960 y(IO-Op)s(eration)36 b(signalisiert,\))i(aus)d(dem)g(K)m(on)m
+(text)i(eines)e(In)m(terrupts)h(aufruft,)609 2073 y(gibt,)28
+b(m)m(\374ssen)f(der)f(Lesezugri\033)h(und)g(der)g(Sc)m(hreibzugri\033)
+h(mit)f(einem)g(Spinlo)s(c)m(k)609 2186 y(zusammengefa\377t)32
+b(w)m(erden.)382 2365 y Fn(So)s(c)m(k)m(et)46 b Fp(Da)d(aus)g(mehreren)
+i(Proze\377k)m(on)m(texten)2115 2332 y Fg(7)2200 2365
+y Fp(und)f(dem)f(Sende-Thread)i(\374b)s(er)609 2478 y(den)37
+b(So)s(c)m(k)m(et)h(gesendet)f(wird,)j(m)m(u\377)d(die)g(Sendeop)s
+(eration)i(mit)e(einem)h(Sema-)609 2591 y(phor)25 b(gesic)m(hert)g(w)m
+(erden,)i(da)d(sonst)g(ein)h(zuf\344lliges)f(Gemisc)m(h)h(der)f(Daten)m
+(bl\366)s(c)m(k)m(e)609 2704 y(en)m(tsteh)m(t.)609 2816
+y(Dieses)j(Semaphor,)i(mit)e(dem)g(Namen)g(send_m)m(utex,)i(stellt)e
+(eb)s(enfalls)g(sic)m(her,)609 2929 y(da\377)34 b(die)g(Ein)m
+(tragungen)i(in)e(das)f(transfer_log)h(in)g(genau)g(derselb)s(en)g
+(Reihen-)609 3042 y(folge)d(erfolgen,)g(in)f(der)h(auc)m(h)g(die)g
+(Daten)m(bl\366)s(c)m(k)m(e)i(v)m(ersendet)e(w)m(erden.)382
+3323 y Fo(5.2.4)112 b(Protok)m(oll)382 3536 y Fp(Da)25
+b(der)g(Lin)m(ux-Kernel)i(auf)d(einer)i(Vielzahl)f(v)m(on)g(Hardw)m
+(areplattformen)j(l\344uft,)e(wur-)382 3649 y(de)40 b(v)m(om)h(Anfang)f
+(an)g(darauf)h(geac)m(h)m(tet,)k(da\377)40 b(DRBD)g(so)g(implemen)m
+(tiert)j(ist,)f(da\377)382 3762 y(DRBD-Ger\344te,)36
+b(die)f(auf)f(un)m(tersc)m(hiedlic)m(hen)k(Hardw)m(areplattformen)g
+(laufen,)e(mit-)382 3875 y(einander)e(k)m(omm)m(unizieren)h(k)m
+(\366nnen.)47 b(Daher)33 b(wird)g(f\374r)g(die)f(Daten)h(in)g(den)g(P)m
+(ak)m(eten)382 3988 y(die)e(Big-Endian-Byteorder)i(v)m(erw)m(endet.)382
+4142 y(Allen)d(P)m(ak)m(eten)j(ist)d(folgender)h(Header)g(gemeinsam:)
+609 4371 y Fc(typedef)47 b(struct)g({)609 4484 y(__u32)g(magic;)609
+4597 y(__u16)g(command;)609 4709 y(__u16)g(length;)609
+4822 y(})g(Drbd_Packet;)382 5051 y Fp(Die)21 b(v)m(erw)m(endeten)i
+(Daten)m(t)m(yp)s(en)f(sind)e(in)h(den)g(Include-Dateien)h(v)m(on)f
+(Lin)m(ux)h(de\034niert,)382 5164 y(w)m(ob)s(ei)31 b(u16)g(b)s
+(edeutet,)g(da\377)g(es)f(sic)m(h)h(um)f(ein)h(unsigned)g(in)m(t)g(mit)
+g(16)f(Bit)h(handelt.)p 382 5217 1196 4 v 486 5271 a
+Ff(7)520 5302 y Fe(Es)21 b(k)n(\366nn)n(ten)d(b)r(eliebig)j(viele)g
+(Prozesse)g(das)f(Blo)r(c)n(kger\344t)i(gleic)n(hzeit)f(\366\033nen,)g
+(sc)n(hreib)r(en,)h(fsync\(2\))382 5394 y(o)r(der)k(fdatasync\(2\))g
+(aufrufen.)1831 5622 y Fp(47)p eop
+%%Page: 48 50
+48 49 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fn(magic)45 b Fp(Es)39 b(handelt)h(sic)m(h)g(dab)s(ei)f(um)h(eine)f(K)m
+(onstan)m(te.)69 b(Auf)38 b(der)h(Empfangsseite)609 652
+y(wird)d(diese)f(Zahl)h(immer)g(auf)f(ihre)h(K)m(orrektheit)h(\374b)s
+(erpr\374ft.)55 b(Ist)35 b(sie)g(einmal)609 764 y(nic)m(h)m(t)i(k)m
+(orrekt)f(v)m(orhanden,)i(wird)e(da)m(v)m(on)h(ausgegangen,)h(da\377)e
+(ein)g(F)-8 b(ehler)36 b(im)609 877 y(Programm)c(v)m(orliegt,)g(und)f
+(die)f(V)-8 b(erbindung)32 b(wird)f(un)m(terbro)s(c)m(hen.)382
+1064 y Fn(command)44 b Fp(Dieses)33 b(F)-8 b(eld)34 b(dien)m(t)g(dazu,)
+h(die)e(F)-8 b(unktion)34 b(der)g(folgenden)g(Daten,)h(also)609
+1177 y(den)27 b(T)m(yp)g(des)f(gesam)m(ten)h(P)m(ak)m(etes,)i
+(festzulegen.)40 b(F)-8 b(olgende)28 b(W)-8 b(erte)27
+b(sind)f(m\366g-)609 1290 y(lic)m(h:)57 b(Data,)41 b(Barrier,)g(RecvA)m
+(c)m(k,)f(W)-8 b(riteA)m(c)m(k,)42 b(BarrierA)m(c)m(k,)f(Rep)s(ortP)m
+(arams,)609 1403 y(BlkSizeChanged)32 b(und)f(CStateChanged.)382
+1590 y Fn(length)45 b Fp(Gibt)31 b(die)g(L\344nge)g(des)f(Daten)m
+(teils)i(des)e(P)m(ak)m(etes)i(an.)382 1878 y Fn(5.2.4.1)103
+b(Datenpak)m(et)609 2050 y Fc(typedef)47 b(struct)g({)609
+2163 y(__u64)g(block_nr;)609 2276 y(__u64)g(block_id;)609
+2389 y(})g(Drbd_Data_P;)382 2648 y Fp(Datenpak)m(ete)38
+b(b)s(einhalten)g(die)f(eigen)m(tlic)m(he)i(Nutzinformation.)61
+b(Die)37 b(Daten)g(selbst)382 2761 y(folgen)31 b(diesem)f(Header.)382
+3020 y Fn(blo)s(c)m(k_nr)44 b Fp(Die)30 b(Blo)s(c)m(kn)m(ummer)j(des)d
+(Daten)m(blo)s(c)m(k)m(es.)382 3207 y Fn(blo)s(c)m(k_id)44
+b Fp(Mit)31 b(Hilfe)g(dieser)g(64)h(Bits)f(wird)g(einerseits)h(un)m
+(tersc)m(hieden,)i(ob)d(es)g(sic)m(h)609 3319 y(um)f(einen)h(Daten)m
+(blo)s(c)m(k,)g(der)f(am)g(W)-8 b(rite-Barrier-Protok)m(oll)34
+b(teilnimm)m(t,)d(o)s(der)609 3432 y(einen)k(Blo)s(c)m(k)f(des)g(Sync)m
+(hronisationsprozesses)i(handelt.)52 b(Der)34 b(Inhalt)h(dieses)609
+3545 y(F)-8 b(eldes)28 b(wird)g(auc)m(h)h(b)s(ei)e(einem)h
+(Best\344tigungspak)m(et)h(wieder)g(zur\374c)m(kgesc)m(hic)m(kt.)609
+3658 y(Bei)42 b(Protok)m(oll)i(C)d(legt)i(hier)f(der)g(sendende)h
+(Knoten)f(die)h(A)m(dresse)e(der)i(IO-)609 3771 y(Au\033orderung)38
+b(ab.)61 b(Dadurc)m(h)38 b(k)-5 b(ann)37 b(b)s(eim)g(Empfang)h(des)f
+(zugeh\366rigen)h(Be-)609 3884 y(st\344tigungspak)m(etes,)32
+b(das)f(dieses)f(F)-8 b(eld)31 b(eb)s(enfalls)g(hat,)g(der)f(Absc)m
+(hlu\377)i(der)f(IO-)609 3997 y(Au\033orderung)h(sc)m(hneller)f(durc)m
+(hgef\374hrt)i(w)m(erden.)382 4286 y Fn(5.2.4.2)103 b(W)-9
+b(rite-Barrier-P)m(ak)m(et)609 4457 y Fc(typedef)47 b(struct)g({)609
+4570 y(__u32)g(barrier;)609 4683 y(__u32)g(_fill;)609
+4796 y(})g(Drbd_Barrier_P;)382 5055 y Fp(\334b)s(er)30
+b(dieses)h(P)m(ak)m(et)h(darf)f(k)m(ein)g(Daten)m(blo)s(c)m(k)h(v)m
+(ersc)m(hob)s(en)g(w)m(erden.)43 b(Auf)30 b(dem)h(Netz-)382
+5168 y(w)m(erk)24 b(ist)f(dies)g(ohnehin)i(nic)m(h)m(t)f(m\366glic)m
+(h,)j(da)c(TCP)i(die)e(Datenpak)m(ete)i(in)f(der)f(ric)m(h)m(tigen)382
+5281 y(Reihenfolge)h(\374b)s(ertr\344gt.)39 b(Do)s(c)m(h)24
+b(im)g(Bu\033er-Cac)m(he)h(m)m(u\377)f(dies)g(erst)f(mit)h(en)m(tsprec)
+m(hen-)382 5394 y(den)31 b(Ma\377nahmen)g(sic)m(hergestellt)h(w)m
+(erden.)1831 5622 y(48)p eop
+%%Page: 49 51
+49 50 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fn(barrier)44 b Fp(Hierb)s(ei)32 b(handelt)g(es)f(sic)m(h)h(um)f(eine)h
+(Nummer)g(zur)g(Iden)m(ti\034zierung)h(dieser)609 652
+y(W)-8 b(rite-Barrier.)74 b(Sie)41 b(ist)f(f\374r)h(die)g(prinzipielle)
+i(F)-8 b(unktion)41 b(nic)m(h)m(t)i(not)m(w)m(endig,)609
+764 y(wird)29 b(ab)s(er)f(denno)s(c)m(h)i(v)m(erw)m(endet,)g(um)f(die)g
+(k)m(orrekte)f(F)-8 b(unktion)30 b(des)e(Protok)m(oll)609
+877 y(st\344ndig)j(\374b)s(erpr\374fen)g(zu)g(k)m(\366nnen.)382
+1051 y Fn(_\034ll)45 b Fp(Da)21 b(gcc)g(auf)g(64-Bit-Plattformen)j(die)
+d(Gr\366\377e)h(des)f(Daten)m(t)m(yp)s(es)h(auf)f(ein)h(Vielfa-)609
+1164 y(c)m(hes)k(v)m(on)f(8)g(Byte)g(au\033\374llt,)i(ist)d(dieses)h(F)
+-8 b(eld)26 b(not)m(w)m(endig,)j(damit)d(der)f(Daten)m(t)m(yp)609
+1277 y(auc)m(h)32 b(auf)e(32-Bit-Plattformen)j(die)d(gleic)m(he)i
+(Gr\366\377e)f(hat.)382 1546 y Fn(5.2.4.3)103 b(P)m(arameterpak)m(et)
+609 1718 y Fc(typedef)47 b(struct)g({)609 1831 y(__u64)g(size;)609
+1944 y(__u32)g(state;)609 2057 y(__u32)g(blksize;)609
+2170 y(__u32)g(protocol;)609 2282 y(__u32)g(version;)609
+2395 y(})g(Drbd_Parameter_P;)382 2602 y Fp(Dieses)29
+b(P)m(ak)m(et)i(wird)f(b)s(ei)f(den)h(K)m(ommandos)h(Rep)s(ortP)m
+(arams)g(und)f(BlkSizeChanged)382 2715 y(gesendet.)41
+b(Es)29 b(wird)h(unmittelbar)h(nac)m(h)f(einem)g(erfolgreic)m(hen)h(V)
+-8 b(erbindungsaufbau)382 2828 y(ausgetausc)m(h)m(t.)50
+b(Stimmen)34 b(das)f(Protok)m(oll)h(o)s(der)f(die)g(V)-8
+b(ersion)34 b(der)f(b)s(eiden)g(K)m(omm)m(u-)382 2941
+y(nik)-5 b(ationspartner)32 b(nic)m(h)m(t)g(\374b)s(erein,)f(wird)g
+(die)g(V)-8 b(erbindung)32 b(sofort)e(un)m(terbro)s(c)m(hen.)382
+3148 y Fn(size)46 b Fp(In)30 b(diesem)h(F)-8 b(eld)31
+b(wird)g(die)f(Gr\366\377e)h(der)g(lok)-5 b(alen)31 b(F)-8
+b(estplatte)31 b(\374b)s(ermittelt.)382 3321 y Fn(state)47
+b Fp(Hier)30 b(wird)h(der)g(Zustand)g(des)f(DRBD-Ger\344tes)g(\374b)s
+(ermittelt,)i(en)m(t)m(w)m(eder)h(pri-)609 3434 y(m\344r)f(o)s(der)g
+(sekund\344r.)45 b(T)-8 b(re\033en)33 b(zw)m(ei)g(DRBD-Ger\344te,)f
+(die)g(sic)m(h)g(im)g(prim\344ren)609 3547 y(Zustand)f(b)s(e\034nden,)g
+(aufeinander,)h(wird)f(die)g(V)-8 b(erbindung)32 b(un)m(terbro)s(c)m
+(hen.)382 3721 y Fn(blksize)45 b Fp(Die)31 b(momen)m(tane)h(Blo)s(c)m
+(kgr\366\377e.)382 3895 y Fn(proto)s(col)45 b Fp(Das)35
+b(Protok)m(oll,)j(mit)e(dem)f(dieses)h(DRBD-Ger\344t)f(die)h(V)-8
+b(erbindung)37 b(b)s(e-)609 4008 y(treib)s(en)31 b(will.)382
+4181 y Fn(v)m(ersion)45 b Fp(Die)30 b(V)-8 b(ersion)31
+b(der)g(DRBD-Implemen)m(tierung.)382 4451 y Fn(5.2.4.4)103
+b(Best\344tigungspak)m(et)609 4622 y Fc(typedef)47 b(struct)g({)609
+4735 y(__u64)g(block_nr;)609 4848 y(__u64)g(block_id;)609
+4961 y(})g(Drbd_BlockAck_P;)382 5168 y Fp(Dieses)39 b(P)m(ak)m(et)h
+(wird)g(mit)f(dem)h(K)m(ommando)h(RecvA)m(c)m(k)f(im)f(Protok)m(oll)i
+(B)e(und)g(mit)382 5281 y(W)-8 b(riteA)m(c)m(k)35 b(im)f(Protok)m(oll)i
+(C)e(v)m(erw)m(endet.)53 b(Die)34 b(b)s(eiden)h(Datenfelder)g(w)m
+(erden)g(dab)s(ei)382 5394 y(aus)30 b(dem)h(Datenpak)m(et,)h(auf)e(das)
+g(sic)m(h)h(diese)g(Best\344tigung)g(b)s(ezieh)m(t,)h(\374b)s
+(ernommen.)1831 5622 y(49)p eop
+%%Page: 50 52
+50 51 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fn(5.2.4.5)103 b(W)-9 b(rite-Barrier-Best\344tigungspak)m(et)609
+710 y Fc(typedef)47 b(struct)g({)609 823 y(__u32)g(barrier;)609
+936 y(__u32)g(set_size;)609 1049 y(})g(Drbd_BarrierAck_P;)382
+1311 y Fp(W)-8 b(enn)35 b(alle)f(Bl\366)s(c)m(k)m(e,)i(die)e(v)m(or)g
+(einer)h(W)-8 b(rite-Barrier)36 b(empfangen)f(wurden,)h(auc)m(h)f(ge-)
+382 1424 y(sc)m(hrieb)s(en)k(sind,)i(wird)e(dieses)f(P)m(ak)m(et)i(v)m
+(ersendet.)65 b(Beide)39 b(Datenfelder)g(dieses)f(P)m(a-)382
+1537 y(k)m(etes)i(tragen)h(nic)m(h)m(t)h(zur)e(prinzipiellen)i(F)-8
+b(unktion)41 b(b)s(ei,)i(w)m(erden)e(ab)s(er)f(f\374r)g(in)m(terne)382
+1650 y(K)m(onsistenz\374b)s(erpr\374fungen)33 b(v)m(erw)m(endet.)382
+1912 y Fn(barrier)44 b Fp(Die)22 b(Nummer,)i(die)e(b)s(eim)f(Erzeugen)i
+(dieser)f(W)-8 b(rite-Barrier)23 b(generiert)g(wur-)609
+2025 y(de.)382 2213 y Fn(set_size)46 b Fp(Gibt)24 b(an,)h(wie)f(viele)g
+(Bl\366)s(c)m(k)m(e)g(v)m(or)g(dieser)g(W)-8 b(rite-Barrier)25
+b(empfangen)g(wur-)609 2326 y(den.)382 2616 y Fn(5.2.4.6)103
+b(C-Zustandspak)m(et)609 2787 y Fc(typedef)47 b(struct)g({)609
+2900 y(__u32)g(cstate;)609 3013 y(})g(Drbd_CState_P;)382
+3275 y Fp(Die)25 b(einzige)g(V)-8 b(erw)m(endung)27 b(dieses)e(P)m(ak)m
+(etes)h(b)s(esteh)m(t)f(darin,)i(dem)e(K)m(omm)m(unik)-5
+b(ations-)382 3388 y(partner)33 b(den)f(Anfang)g(und)g(das)g(Ende)h
+(des)e(Sync)m(hronisationsv)m(organges)k(mitzutei-)382
+3501 y(len.)382 3763 y Fn(cstate)47 b Fp(F)-8 b(olgende)32
+b(W)-8 b(erte)31 b(sind)g(m\366glic)m(h:)609 3976 y Fn(SyncingAll)45
+b Fp(Jetzt)31 b(w)m(erden)h(alle)e(Bl\366)s(c)m(k)m(e)h(k)m(opiert.)609
+4122 y Fn(SyncingQuic)m(k)44 b Fp(Jetzt)31 b(b)s(eginn)m(t)h(ein)e(sc)m
+(hneller)i(Sync)m(hronisationsv)m(organg.)609 4268 y
+Fn(Connected)46 b Fp(Der)31 b(Sync)m(hronisationsv)m(organg)i(ist)d(b)s
+(eendet.)382 4558 y Fn(5.2.4.7)103 b(Timeouts)382 4779
+y Fp(Da)25 b(aus)g(dem)h(K)m(on)m(text)g(eines)g(sc)m(hreib)s(enden)g
+(Prozesses)g(gesendet)g(wird,)g(wird)g(dieser)382 4892
+y(blo)s(c)m(kiert,)33 b(falls)f(das)g(Senden)h(\374b)s(er)f(den)g(So)s
+(c)m(k)m(et)h(blo)s(c)m(kiert.)46 b(Dieser)32 b(F)-8
+b(all)33 b(tritt)f(auc)m(h)382 5005 y(dann)44 b(ein,)i(w)m(enn)e(das)f
+(Netzw)m(erk)h(zwisc)m(hen)h(den)e(v)m(erbundenen)i(DRBD-Ger\344ten)382
+5118 y(un)m(terbro)s(c)m(hen)33 b(wurde.)382 5281 y(Damit)21
+b(eine)h(Applik)-5 b(ation)22 b(nic)m(h)m(t)g(angehalten)h(wird,)g
+(gibt)f(es)e(eine)i(ob)s(ere)f(Sc)m(hrank)m(e)i(f\374r)382
+5394 y(die)g(Dauer)g(der)g(Sendeop)s(eration.)40 b(V)-8
+b(or)23 b(dem)g(Aufruf)f(v)m(on)h(so)s(c)m(k_sendmsg\(\))g(wird)g(ein)
+1831 5622 y(50)p eop
+%%Page: 51 53
+51 52 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)495
+b(5.2.)71 b(KERNEL-MODUL)p 382 299 2989 4 v 382 539 a
+Fp(Timer)30 b(gestartet.)41 b(L\344uft)30 b(dieser)g(Timer)h(ab)f(b)s
+(ev)m(or)f(so)s(c)m(k_sendmsg\(\))i(zur\374c)m(kk)m(ehrt,)382
+652 y(wird)37 b(der)g(Systemruf)g(mit)g(Hilfe)f(eines)h(Signals)h
+(abgebro)s(c)m(hen.)61 b(Der)37 b(Proze\377)h(sieh)m(t)382
+764 y(dieses)30 b(Signal)h(nic)m(h)m(t,)h(da)f(es)f(no)s(c)m(h)h
+(innerhalb)h(des)e(T)-8 b(reib)s(ers)31 b(wieder)g(gel\366sc)m(h)m(t)h
+(wird.)382 916 y(W)-8 b(enn)31 b(ein)g(Timeout)h(aufgetreten)f(ist,)g
+(wird)g(der)f(So)s(c)m(k)m(et)i(gesc)m(hlossen,)f(und)g(DRBD)382
+1029 y(setzt)c(den)g(Betrieb)g(im)g(nic)m(h)m(t)h(v)m(erbundenen)h
+(Zustand)e(fort.)40 b(Alle)26 b(w)m(eiteren)j(Sc)m(hreib-)382
+1142 y(op)s(erationen)j(w)m(erden)f(im)g(Bitfeld)g(f\374r)f(sp\344tere)
+h(Sync)m(hronisation)h(v)m(ermerkt.)382 1293 y(Im)i(F)-8
+b(alle)36 b(v)m(on)e(Protok)m(oll)j(B)d(und)h(C)f(m)m(u\377)i(auc)m(h)g
+(f\374r)e(alle)h(im)f(transfer_log)i(en)m(thal-)382 1406
+y(tenen)41 b(Bl\366)s(c)m(k)m(e)g(der)f(Absc)m(hlu\377)h(der)g(IO-Op)s
+(eration)g(signalisiert)g(w)m(erden,)j(da)c(nac)m(h)382
+1519 y(dem)c(Sc)m(hlie\377en)i(des)d(So)s(c)m(k)m(ets)h(k)m(eine)h
+(Best\344tigungspak)m(ete)g(mehr)g(empfangen)f(w)m(er-)382
+1632 y(den)31 b(k)m(\366nnen.)382 1783 y(Eb)s(enfalls)c(n)m(ur)h
+(f\374r)e(Protok)m(oll)j(B)d(und)i(C)f(m)m(u\377)h(die)f(Zeit,)h(die)f
+(auf)g(das)f(Ein)m(tre\033en)j(v)m(on)382 1896 y(Best\344tigungspak)m
+(eten)45 b(gew)m(artet)f(wird,)j(b)s(egrenzt)d(w)m(erden.)79
+b(Die)43 b(Not)m(w)m(endigk)m(eit)382 2009 y(daf\374r)30
+b(k)-5 b(ann)31 b(am)g(folgenden)g(Beispiel)g(erl\344utert)g(w)m
+(erden:)633 2179 y(Die)39 b(Request-Queue)h(k)-5 b(ann)39
+b(k)m(eine)h(w)m(eiteren)h(Sc)m(hreibanforderungen)i(mehr)633
+2292 y(aufnehmen)37 b(und)g(blo)s(c)m(kiert)g(daher)g(alle)g(Prozesse,)
+h(die)f(w)m(eitere)g(Sc)m(hreiban-)633 2405 y(forderungen)45
+b(erzeugen)h(w)m(ollen.)83 b(W\344hrend)45 b(n)m(un)g(auf)f(den)h(Absc)
+m(hlu\377)g(der)633 2518 y(laufenden)c(IO-Op)s(erationen)g(gew)m(artet)
+h(wird,)i(wird)c(das)g(Netzw)m(erk)h(un)m(ter-)633 2631
+y(bro)s(c)m(hen.)56 b(Da)36 b(allerdings)g(k)m(eine)g(neuen)g(IO-Op)s
+(erationen)h(erzeugt)f(w)m(erden,)633 2744 y(wird)d(auc)m(h)g(nic)m(h)m
+(ts)h(\374b)s(er)e(die)h(TCP-V)-8 b(erbindung)35 b(gesendet,)f(und)f
+(die)g(Un)m(ter-)633 2857 y(brec)m(h)m(ung)27 b(der)e(V)-8
+b(erbindung)26 b(bleibt)f(unen)m(tdec)m(kt.)41 b(Das)24
+b(IO-Subsystem)h(bleibt)633 2970 y(allerdings)34 b(blo)s(c)m(kiert,)i
+(da)e(die)g(Best\344tigungspak)m(ete,)i(die)e(die)g(aktuellen)h(IO-)633
+3083 y(Op)s(erationen)d(absc)m(hlie\377en)g(w\374rden,)f(nic)m(h)m(t)h
+(mehr)f(ein)m(tre\033en)h(k)m(\366nnen.)382 3253 y(F\374r)25
+b(die)h(Implemen)m(tierung)h(des)e(Timeouts)h(b)s(eim)g(Senden)g(ist)f
+(genau)h(ein)f(Timer)h(pro)382 3366 y(DRBD-Ger\344t)k(not)m(w)m(endig,)
+j(da)e(immer)g(n)m(ur)g(genau)g(ein)g(Proze\377)h(senden)f(k)-5
+b(ann.)382 3517 y(Das)24 b(Timeout)i(f\374r)f(den)g(Empfang)h(v)m(on)f
+(Best\344tigungspak)m(eten)i(wurde)f(eb)s(enfalls)e(mit)382
+3630 y(Hilfe)29 b(eines)h(einzigen)h(Timers)f(implemen)m(tiert.)43
+b(Dab)s(ei)30 b(wird)g(der)g(Timer)g(b)s(eim)g(Sen-)382
+3743 y(den)e(eines)g(Datenpak)m(etes)h(zur\374c)m(kgesetzt)g(und)f(ein)
+g(Z\344hler)g(\(p)s(ending_cn)m(t\))i(erh\366h)m(t.)382
+3856 y(Wird)i(ein)f(Best\344tigungspak)m(et)j(empfangen,)f(wird)f(der)g
+(Z\344hler)g(v)m(erringert)h(und)f(der)382 3969 y(Timer)c(eb)s(enfalls)
+e(neu)h(gestartet)h(\(falls)f(der)g(Z\344hler)g(no)s(c)m(h)h(p)s
+(ositiv)e(ist\).)39 b(Durc)m(h)28 b(diese)382 4082 y(Implemen)m
+(tierung)k(k)-5 b(ann)30 b(zw)m(ar)h(eine)g(einzelne)g(Best\344tigung)g
+(l\344nger)g(dauern)f(als)g(der)382 4195 y(W)-8 b(ert)29
+b(des)f(Timeouts,)i(ab)s(er)e(die)h(im)f(obigen)h(Beispiel)g(b)s(esc)m
+(hrieb)s(ene)g(Situation)h(wird)382 4308 y(erk)-5 b(ann)m(t.)382
+4581 y Fn(5.2.4.8)103 b(Priorit\344ten)382 4791 y Fp(Im)40
+b(folgendem)i(w)m(erden)h(zw)m(ei)e(DRBD-Ger\344te-P)m(aare)i(auf)e
+(einem)g(aus)g(zw)m(ei)h(Kno-)382 4904 y(ten)31 b(b)s(estehenden)i
+(Cluster)e(b)s(etrac)m(h)m(tet,)j(b)s(ei)d(denen)h(die)g(prim\344ren)g
+(Ger\344te)g(auf)f(den)382 5017 y(jew)m(eils)g(anderen)g(Knoten)h
+(liegen)f(\(siehe)f(Abbildung)i(5.1\).)382 5168 y(K)m(omm)m(t)45
+b(es)e(b)s(ei)f(einer)i(solc)m(hen)g(K)m(on\034guration)i(dazu,)h
+(da\377)c(das)g(Netzw)m(erk)h(lang-)382 5281 y(samer)39
+b(ist)f(als)g(die)h(F)-8 b(estplatten,)42 b(k)-5 b(ann)39
+b(es)f(zu)g(Timeouts)i(und)e(zum)h(Abbruc)m(h)h(der)382
+5394 y(V)-8 b(erbindung)32 b(k)m(ommen.)1831 5622 y(51)p
+eop
+%%Page: 52 54
+52 53 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)681
+b(5.3.)71 b(DRBDSETUP)p 382 299 2989 4 v 472 1322 a @beginspecial
+104 @llx 677 @lly 441 @urx 782 @ury 3370 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//sock_prio.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Tue Apr 25 12:26:25 2000
+%%Title: sock_prio.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 104 677 441 782
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+306.259 705.827 m
+306.259 697.323 l
+314.763 701.575 l
+306.259 705.827 l
+closepath
+0.843 0.808 1 rgb
+F
+[-76.5354 0 0 -2.83466 306.259 702.992] rect
+F
+newpath
+238.227 720 m
+238.227 711.496 l
+229.723 715.748 l
+238.227 720 l
+closepath
+F
+[76.5354 0 0 -2.83466 238.227 717.165] rect
+F
+newpath
+306.259 748.346 m
+306.259 739.842 l
+314.763 744.094 l
+306.259 748.346 l
+closepath
+F
+[-76.5354 0 0 -2.83466 306.259 745.512] rect
+F
+newpath
+238.227 762.52 m
+238.227 754.016 l
+229.723 758.268 l
+238.227 762.52 l
+closepath
+F
+[76.5354 0 0 -2.83466 238.227 759.685] rect
+F
+[8.50394 0 0 -14.1732 314.763 722.835] rect
+0.8 0.8 0.8 rgb
+F
+[8.50394 0 0 -14.1732 221.219 751.181] rect
+F
+[51.0236 0 0 -14.1732 314.763 765.354] rect
+0.838 0.838 0.838 rgb
+F
+[51.0236 0 0 -14.1732 178.7 708.661] rect
+F
+/Times-Roman 11 sf
+(IN)
+157 754 0 0 0 rgb
+T
+(IN)
+377 740 T
+(IN)
+157 711 T
+(IN)
+377 697 T
+(OUT)
+146 740 T
+(OUT)
+377 754 T
+(OUT)
+146 697 T
+(OUT)
+377 712 T
+newpath
+243.897 768.189 m
+243.897 691.654 l
+249.566 688.819 l
+252.401 691.654 l
+258.07 688.819 l
+258.07 768.189 l
+252.401 771.024 l
+249.566 768.189 l
+243.897 771.024 l
+243.897 768.189 l
+closepath
+0.828 0.828 0.828 rgb
+F
+newpath
+286.416 768.189 m
+286.416 691.654 l
+292.086 688.819 l
+294.92 691.654 l
+300.59 688.819 l
+300.59 768.189 l
+294.92 771.024 l
+292.086 768.189 l
+286.416 771.024 l
+286.416 768.189 l
+closepath
+F
+[56.6929 0 0 -14.1732 173.031 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -14.1732 173.031 722.835] rect
+S
+[56.6929 0 0 -14.1732 173.031 708.661] rect
+S
+[56.6929 0 0 -14.1732 314.763 765.354] rect
+S
+[56.6929 0 0 -14.1732 314.763 751.181] rect
+S
+[56.6929 0 0 -14.1732 314.763 722.835] rect
+S
+[56.6929 0 0 -14.1732 314.763 708.661] rect
+S
+[56.6929 0 0 -14.1732 173.031 751.181] rect
+S
+newpath
+229.723 701.575 m
+248.149 701.575 l
+250.983 704.409 l
+250.983 727.087 l
+253.818 729.921 l
+0.992126 w
+1 j
+S
+newpath
+229.723 744.094 m
+248.149 744.094 l
+250.983 741.26 l
+250.983 732.756 l
+253.818 729.921 l
+1 w
+0 j
+S
+newpath
+253.818 729.921 m
+286.416 729.921 l
+0.992126 w
+S
+pusht
+286.416 729.921 translate
+0 rotate
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+161.692 779.528 m
+263.739 779.528 l
+263.739 680.315 l
+163.109 680.315 l
+0.283465 w
+[1.41733 0.283465 0.283465 0.283465 ] 0 d
+S
+newpath
+382.794 779.528 m
+280.747 779.528 l
+280.747 680.315 l
+381.377 680.315 l
+S
+/Times-Roman 12 sf
+(drbd0)
+107 754 T
+(drbd0)
+409 754 T
+(drbd1)
+107 711 T
+(drbd1)
+409 711 T
+(\(SEC\))
+107 742 T
+(\(PRI\))
+409 742 T
+(\(PRI\))
+107 699 T
+(\(SEC\))
+409 699 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1047 1518 a Fp(Abbildung)31 b(5.1:)41 b(Zw)m(ei)31
+b(DRBD-Ger\344te-P)m(aare)382 1793 y(Bei)k(hoher)g(Last)g(ist)g(der)g
+(Sendepu\033ersp)s(eic)m(her)i(des)e(So)s(c)m(k)m(ets)g(des)g
+(Ger\344tes)g(im)g(pri-)382 1906 y(m\344ren)25 b(Zustand)h(normalerw)m
+(eise)h(v)m(oll,)f(w)m(\344hrend)g(der)f(Sendepu\033ersp)s(eic)m(her)i
+(des)d(Ge-)382 2019 y(r\344tes)37 b(im)f(sekund\344ren)h(Zustand)h(n)m
+(ur)f(gering)g(gef\374llt)g(ist,)h(da)f(Best\344tigungspak)m(ete)382
+2132 y(w)m(esen)m(tlic)m(h)c(kleiner)e(sind)f(als)g(Datenpak)m(ete.)382
+2295 y(Das)39 b(Netzw)m(erksubsystem,)j(in)e(der)f(Abbildung)i(als)e
+(grauer)h(v)m(ertik)-5 b(aler)40 b(abgerisse-)382 2408
+y(ner)k(Balk)m(en)g(dargestellt,)k(arb)s(eitet)c(normalerw)m(eise)i
+(mit)e(einer)g(einfac)m(hen)h(FIF)m(O-)382 2521 y(Strategie.)d(Die)31
+b(b)s(eiden)f(DRBD-Ger\344te)h(auf)f(einem)i(Knoten)f(stehen)g(b)s(eim)
+f(Senden)382 2633 y(in)e(einer)g(K)m(onkurrenzsituation.)43
+b(Das)27 b(prim\344re)i(Ger\344t)g(v)m(ersendet)f(w)m(esen)m(tlic)m(h)j
+(mehr)382 2746 y(und)k(gr\366\377ere)h(P)m(ak)m(ete)g(als)f(das)f
+(DRBD-Ger\344t)h(im)g(sekund\344ren)g(Zustand.)55 b(Die)34
+b(Be-)382 2859 y(st\344tigungspak)m(ete)42 b(des)e(sekund\344ren)g
+(DRBD-Ger\344tes)g(w)m(erden)i(daher)f(v)m(om)f(Netz-)382
+2972 y(w)m(erksubsystem)31 b(l\344nger)g(v)m(erz\366gert.)382
+3135 y(Um)f(diesem)i(Problem)g(en)m(tgegenzu)m(wirk)m(en,)i(wird)e(in)e
+(den)h(Ger\344ten)h(im)f(sekund\344ren)382 3248 y(Zustand)23
+b(das)g(TCP_NODELA)-8 b(Y)25 b(Flag)e(des)g(So)s(c)m(k)m(ets)h
+(gesetzt,)h(um)e(den)g(Nagle)g(Algo-)382 3361 y(rithm)m(us)685
+3328 y Fg(8)750 3361 y Fp(auszusc)m(halten.)40 b(Abgesehen)25
+b(da)m(v)m(on)g(wird)g(der)g(So)s(c)m(k)m(et)g(mit)f(einer)h
+(h\366heren)382 3474 y(Priorit\344t)32 b(v)m(ersehen)f(TC_PRIO_INTERA)m
+(CTIVE.)382 3636 y(Dem)98 b(So)s(c)m(k)m(et)h(des)f(prim\344ren)h
+(Ger\344tes)g(wird)f(hingegen)i(die)e(Priorit\344t)382
+3749 y(TC_PRIO_BULK)63 b(zugewiesen.)138 b(Die)62 b
+(Priorit\344tseinstellungen)j(hab)s(en)e(auf)382 3862
+y(das)40 b(V)-8 b(erhalten)42 b(des)e(Netzw)m(erksubsystems)g
+(allerdings)h(n)m(ur)g(dann)g(Ein\035u\377,)j(w)m(enn)382
+3975 y(CONFIG_NET_SCHED)63 b(b)s(ei)e(der)g(Compilierung)j(des)d
+(Kernels)g(angegeb)s(en)382 4088 y(wurde.)41 b(Diese)28
+b(Priorit\344t)j(wird)e(auc)m(h)h(im)f(TOS-F)-8 b(eld)30
+b(der)f(IP-P)m(ak)m(ete)i(w)m(eitergereic)m(h)m(t)382
+4201 y(und)g(k)m(\366nn)m(te)g(v)m(on)g(der)g(Netzw)m(erkinfrastruktur)
+h(v)m(erw)m(endet)g(w)m(erden.)382 4537 y Fj(5.3)130
+b(Drb)t(dsetup)382 4793 y Fo(5.3.1)112 b(K)m(on\034guration)382
+5015 y Fp(Bev)m(or)25 b(ein)g(DRBD-Ger\344t)g(v)m(erw)m(endet)i(w)m
+(erden)f(k)-5 b(ann,)26 b(m)m(u\377)g(es)e(k)m(on\034guriert)j(w)m
+(erden.)p 382 5076 1196 4 v 486 5130 a Ff(8)520 5162
+y Fe(Der)35 b(Nagle)h(Algorithm)n(us)e(v)n(erz\366gert)i(kleine)f(P)n
+(ak)n(ete)g(\(<MTU\))g(bis)g(zu)g(200ms,)j(um)c(sie)i(zu)382
+5253 y(einem)25 b(gr\366\377eren)i(zusammenzufassen.)1831
+5622 y Fp(52)p eop
+%%Page: 53 55
+53 54 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)681
+b(5.3.)71 b(DRBDSETUP)p 382 299 2989 4 v 382 539 a Fn(5.3.1.1)103
+b(Syn)m(tax)382 760 y Fc(drbdsetup)47 b(dev)g(l_dev)f(prot)h
+(local_a[:port])g(remote_a[:port])g([options])382 1022
+y Fn(dev)e Fp(Das)30 b(DRBD-Ger\344t,)h(z.B.)g(/dev/n)m(b0.)382
+1210 y Fn(l_dev)45 b Fp(Das)30 b(Ger\344t)h(auf)f(dem)h(DRBD)e(die)i
+(Daten)g(ablegen)g(soll.)382 1398 y Fn(prot)45 b Fp(Das)30
+b(Protok)m(oll,)i(das)e(dieses)g(DRBD-Ger\344t)h(v)m(erw)m(enden)h
+(soll.)382 1585 y Fn(lo)s(cal_a)46 b Fp(Die)30 b(IP-A)m(dresse)h(des)f
+(lok)-5 b(alen)31 b(Netzw)m(erkin)m(terfaces.)382 1773
+y Fn(remote_a)46 b Fp(Die)30 b(IP-A)m(dresse)h(des)f(zw)m(eiten)i
+(Computers.)382 2035 y(Diese)38 b(Syn)m(tax)h(steh)m(t)g(zur)g(V)-8
+b(erf\374gung,)42 b(um)d(das)f(DRBD-Ger\344t)h(zu)f(k)m
+(on\034gurieren.)382 2148 y(F)-8 b(olgende)32 b(Optionen)g(k)m
+(\366nnen)f(dab)s(ei)f(angegeb)s(en)i(w)m(erden:)382
+2410 y Fn(--timeout)i(-t)46 b Fp(Mit)25 b(dieser)g(Option)h(k)-5
+b(ann)25 b(eingestellt)i(w)m(erden,)g(wie)f(lange)g(gew)m(artet)609
+2523 y(wird,)j(bis)f(eine)g(blo)s(c)m(kierte)h(V)-8 b(erbindung)30
+b(abgebro)s(c)m(hen)g(wird.)40 b(Die)28 b(Standard-)609
+2636 y(einstellung)k(b)s(etr\344gt)f(3)f(Sekunden.)382
+2824 y Fn(--sync-rate)k(-r)45 b Fp(Diese)26 b(Option)i(erlaubt)f(es,)g
+(den)g(An)m(teil)g(der)g(Bandbreite)h(festzule-)609 2937
+y(gen,)g(der)f(maximal)h(f\374r)f(den)g(Sync)m(hronisationsproze\377)j
+(zur)d(V)-8 b(erf\374gung)28 b(steh)m(t.)609 3050 y(Wird)33
+b(die)g(Einstellung)h(nic)m(h)m(t)g(v)m(orgenommen,)h(stehen)e(250KB/s)
+g(zur)g(V)-8 b(erf\374-)609 3163 y(gung.)382 3350 y Fn(--skip-sync)32
+b(-k)45 b Fp(Un)m(terbindet)50 b(automatisc)m(hes)f(Starten)f(des)g
+(Sync)m(hronisations-)609 3463 y(prozesses.)382 3651
+y Fn(--tl-size)34 b(-s)45 b Fp(Hier)30 b(k)-5 b(ann)30
+b(die)h(Gr\366\377e)f(des)g(transfer_logs)h(festgelegt)f(w)m(erden.)42
+b(Netz-)609 3764 y(w)m(erkv)m(erbindungen)25 b(mit)d(hoher)h
+(Bandbreite)g(und)f(langer)h(V)-8 b(erz\366gerung)24
+b(k)m(\366nn-)609 3877 y(ten)k(ein)g(transfer_log)g(v)m(on)g(mehr)g
+(als)f(256)h(Ein)m(tr\344gen)h(erfordern.)41 b(Dies)27
+b(ist)g(al-)609 3990 y(lerding)34 b(n)m(ur)g(not)m(w)m(endig,)i(w)m
+(enn)e(sic)m(h)f(im)h(Systemlog)f(W)-8 b(arn)m(ungen)35
+b(b)s(ez\374glic)m(h)609 4102 y(eines)c(zu)f(kleinen)h(transfer_logs)g
+(b)s(e\034nden.)382 4290 y Fn(--disk-size)i(-d)45 b Fp(Mit)30
+b(dieser)h(Option)h(k)-5 b(ann)30 b(die)h(Gr\366\377e)g(des)f
+(DRBD-Ger\344tes)h(ange-)609 4403 y(geb)s(en)36 b(w)m(erden.)58
+b(W)-8 b(enn)36 b(diese)g(Option)g(nic)m(h)m(t)h(angegeb)s(en)g(wird,)h
+(nimm)m(t)f(das)609 4516 y(DRBD-Ger\344t)31 b(die)f(Gr\366\377e)h(der)g
+(kleineren)g(F)-8 b(estplatte)32 b(an.)609 4629 y(Diese)40
+b(Option)h(mac)m(h)m(t)h(es)e(n)m(un)h(m\366glic)m(h,)j(auf)c(ein)g
+(DRBD-Ger\344t)g(zuzugrei-)609 4742 y(fen,)33 b(b)s(ev)m(or)f(no)s(c)m
+(h)h(eine)f(V)-8 b(erbindung)34 b(zustandegek)m(ommen)h(ist,)d(da)h
+(sonst)f(das)609 4855 y(DRBD-Ger\344t)f(die)f(Gr\366\377e)h(0)f(hat.)
+382 5042 y Fn(--do-panic)j(-p)45 b Fp(T)-8 b(ritt)39
+b(b)s(ei)e(einer)i(IO-Op)s(eration)g(auf)e(der)i(lok)-5
+b(alen)38 b(F)-8 b(estplatte)39 b(ein)609 5155 y(F)-8
+b(ehler)41 b(auf,)h(so)d(wird)i(dieser)f(normalerw)m(eise)i(w)m
+(eitergegeb)s(en,)i(als)39 b(ob)h(b)s(eim)609 5268 y(Zugri\033)31
+b(auf)f(das)g(DRBD-Ger\344t)h(ein)g(F)-8 b(ehler)31 b(aufgetreten)h(w)m
+(\344re.)609 5381 y(Wird)43 b(das)g(DRBD-Ger\344t)f(in)h(einem)h
+(HA-Cluster)f(eingesetzt,)k(so)42 b(k)-5 b(ann)43 b(es)1831
+5622 y(53)p eop
+%%Page: 54 56
+54 55 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)681
+b(5.3.)71 b(DRBDSETUP)p 382 299 2989 4 v 609 539 a Fp(erw\374nsc)m(h)m
+(t)26 b(sein,)f(da\377,)h(w)m(enn)f(so)f(ein)g(F)-8 b(ehler)25
+b(auftritt,)h(der)e(Kernel)h(sofort)e(seine)609 652 y(Aktivit\344ten)31
+b(einstellt)h(und)g(damit)f(einem)h(anderen)g(Knoten)g(im)g(Cluster)f
+(die)609 764 y(M\366glic)m(hk)m(eit)23 b(gibt,)h(die)d(Aufgab)s(en)g
+(des)g(Knotens)h(mit)f(der)h(defekten)f(F)-8 b(estplatte)609
+877 y(zu)31 b(\374b)s(ernehmen.)382 1140 y(Die)d(Gr\366\377enangab)s
+(en)h(k)m(\366nnen)g(mit)f(den)g(Multiplik)-5 b(atoren)29
+b(K)f(\(1024\),)h(M)e Fh(\(2)3059 1107 y Fb(20)3135 1140
+y Fh(\))g Fp(o)s(der)382 1253 y(G)32 b Fh(\(2)565 1220
+y Fb(30)640 1253 y Fh(\))g Fp(v)m(ersehen)h(w)m(erden.)47
+b(Wird)32 b(k)m(ein)g(Multiplik)-5 b(ator)33 b(angegeb)s(en,)h(wird)e
+(b)s(ei)g(den)382 1365 y(Argumen)m(ten)26 b(v)m(on)e(--disk-size)g(und)
+h(--sync-rate)f(der)g(Multiplik)-5 b(ator)26 b(1024)e(angenom-)382
+1478 y(men.)382 1768 y Fn(5.3.1.2)103 b(V)-9 b(erw)m(endung)382
+1990 y Fp(Die)27 b(DRBD-Ger\344te)h(m)m(\374ssen)g(nat\374rlic)m(h)h
+(auf)e(b)s(eiden)g(Knoten)i(k)m(on\034guriert)g(w)m(erden.)382
+2103 y(F)-8 b(alls)22 b(die)g(Knoten)g(mit)g(mehreren)h(Netzw)m(erkk)-5
+b(arten)23 b(ausgestattet)f(sind,)i(m)m(u\377)e(darauf)382
+2216 y(geac)m(h)m(tet)37 b(w)m(erden,)g(da\377)d(die)h(angegeb)s(enen)h
+(IP-A)m(dressen)f(in)g(v)m(erbundenen)h(Netzen)382 2328
+y(liegen.)382 2491 y(Nac)m(hdem)i(das)f(DRBD-Ger\344t)h(die)f(K)m
+(on\034guration)j(b)s(ek)m(ommen)e(hat,)i(v)m(ersuc)m(h)m(t)f(es,)382
+2604 y(zuerst)32 b(zum)h(P)m(artnerger\344t)i(eine)e(TCP-V)-8
+b(erbindung)35 b(aufzubauen.)47 b(F)-8 b(alls)32 b(dies)g(ab)s(er)382
+2717 y(nic)m(h)m(t)f(funktioniert,)g(w)m(eil)f(an)g(dieser)g(A)m
+(dresse)g(k)m(eine)g(V)-8 b(erbindung)31 b(en)m(tgegengenom-)382
+2830 y(men)38 b(wird,)h(w)m(artet)g(DRBD)d(darauf,)k(da\377)d(das)h(P)m
+(artnerger\344t)h(v)m(ersuc)m(h)m(t,)i(eine)d(V)-8 b(er-)382
+2943 y(bindung)31 b(aufzubauen.)382 3106 y(F)-8 b(alls)30
+b(das)f(Netzw)m(erk)i(zwisc)m(hen)g(den)f(b)s(eiden)g(Knoten)g
+(ausf\344llt,)g(m)m(u\377)h(eines)f(der)g(b)s(ei-)382
+3218 y(den)43 b(Ger\344te)g(neu)f(k)m(on\034guriert)i(w)m(erden,)j
+(damit)c(es)f(wieder)i(v)m(ersuc)m(h)m(t,)j(die)c(TCP-)382
+3331 y(V)-8 b(erbindung)32 b(aufzubauen.)382 3625 y Fo(5.3.2)112
+b(Steuerung)38 b(im)e(Betrieb)609 3796 y Fc(drbdsetup)47
+b(dev)g({PRI|SEC|WAIT|REPL})382 4059 y Fn(PRI)e Fp(Mit)34
+b(diesem)g(K)m(ommando)i(k)-5 b(ann)34 b(man)h(das)f(DRBD-Ger\344t)g
+(in)g(den)g(prim\344ren)609 4171 y(Zustand)29 b(bringen.)41
+b(Dieses)28 b(K)m(ommando)j(k)-5 b(ann)29 b(so)m(w)m(ohl)g(v)m(or)g
+(der)g(K)m(on\034gurati-)609 4284 y(on)i(als)f(auc)m(h)h(danac)m(h)h(v)
+m(erw)m(endet)h(w)m(erden.)382 4472 y Fn(SEC)45 b Fp(Dieses)f(K)m
+(ommando)i(bringt)e(das)g(DRBD-Ger\344t)g(in)f(den)i(sekund\344ren)f
+(Zu-)609 4585 y(stand.)382 4773 y Fn(W)-12 b(AIT)46 b
+Fp(Dieses)37 b(K)m(ommando)j(w)m(artet)e(so)f(lange,)j(bis)d(jeglic)m
+(her)i(Sync)m(hronisations-)609 4885 y(v)m(organg)f(abgesc)m(hlossen)f
+(ist.)59 b(Es)36 b(k)-5 b(ann)37 b(so)m(w)m(ohl)h(auf)e(Ger\344ten)h
+(im)g(prim\344ren)609 4998 y(als)26 b(auc)m(h)i(auf)e(Ger\344ten)h(im)f
+(sekund\344ren)h(Zustand)g(v)m(erw)m(endet)h(w)m(erden.)41
+b(L\344uft)609 5111 y(k)m(ein)31 b(Sync)m(hronisationsv)m(organg,)j
+(wird)c(das)h(K)m(ommando)h(sofort)e(b)s(eendet.)609
+5224 y(Dieses)35 b(K)m(ommando)j(wurde)e(sp)s(eziell)f(f\374r)g(die)h
+(In)m(tegration)h(mit)e(dem)h(Heart-)609 5337 y(b)s(eat)31
+b(Cluster-Manager)h(eingef\374hrt.)1831 5622 y(54)p eop
+%%Page: 55 57
+55 56 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 382 539
+a Fn(REPL)45 b Fp(Mit)37 b(diesem)g(K)m(ommando)i(k)-5
+b(ann)36 b(man)i(eine)f(v)m(ollst\344ndige)h(Sync)m(hronisati-)609
+652 y(on)f(v)m(erlangen.)62 b(Es)37 b(m)m(u\377)h(auf)f(dem)g(Ger\344t)
+h(im)f(prim\344ren)h(Zustand)g(gegeb)s(en)609 764 y(w)m(erden)29
+b(und)g(wird)f(dann)g(b)s(en\366tigt,)h(w)m(enn)g(eine)f(der)h(F)-8
+b(estplatten)29 b(ausgefallen)609 877 y(ist)40 b(und)g(durc)m(h)i(eine)
+e(neue)h(ersetzt)f(wurde.)71 b(W)-8 b(enn)40 b(dieser)h(Knoten)g
+(wieder)609 990 y(in)26 b(den)g(Cluster)g(aufgenommen)h(wird,)g
+(aktualisiert)g(DRBD)e(mit)g(dem)h(sc)m(hnel-)609 1103
+y(len)d(Sync)m(hronisationsmec)m(hanism)m(us)j(alle)c(Bl\366)s(c)m(k)m
+(e,)j(die)d(w)m(\344hrend)i(des)e(Ausfalls)609 1216 y(v)m(er\344ndert)
+38 b(wurden.)58 b(Da)36 b(es)g(sic)m(h)g(ab)s(er)g(um)h(eine)f(neue)h
+(F)-8 b(estplatte)37 b(handelt,)609 1329 y(ist)31 b(das)g(nic)m(h)m(t)i
+(ausreic)m(hend.)46 b(Mit)31 b(Hilfe)g(dieses)g(K)m(ommandos)i(k)-5
+b(ann)31 b(die)h(neue)609 1442 y(F)-8 b(estplatte)34
+b(auf)e(den)h(Datenstand)h(des)e(Clusters)h(gebrac)m(h)m(t)h(w)m
+(erden.)49 b(Bei)32 b(der)609 1555 y(Replik)-5 b(ation)32
+b(w)m(erden)h(die)e(Daten)h(v)m(om)g(prim\344ren)g(auf)f(das)g
+(sekund\344re)h(Ger\344t)609 1668 y(k)m(opiert.)382 2004
+y Fj(5.4)130 b(P)l(erformance)382 2260 y Fo(5.4.1)112
+b(Durc)m(hsatz)382 2481 y Fp(Da)29 b(DRBD,)f(wie)i(der)f(Lin)m
+(ux-Kernel)i(selbst,)e(frei)2112 2448 y Fg(9)2181 2481
+y Fp(zum)g(Herun)m(terladen)i(angeb)s(oten)382 2594 y(wird,)26
+b(k)-5 b(ann)24 b(b)s(ei)f(Messungen)i(der)f(Leistung)h(v)m(on)f(DRBD)f
+(auf)h(einige)h(Me\377ergebnisse,)382 2707 y(die)38 b(v)m(on)h(DRBD-An)
+m(w)m(endern)g(zur)g(V)-8 b(erf\374gung)39 b(gestellt)f(wurden,)k
+(zur\374c)m(kgegri\033en)382 2820 y(w)m(erden.)382 2983
+y(Damit)34 b(diese)g(Leistungsmessungen)h(v)m(ergleic)m(h)m(bar)h
+(sind,)e(wurde)h(eine)f(Applik)-5 b(ation)382 3096 y(en)m(t)m(wic)m(k)m
+(elt,)35 b(der)c(die)h(Leistung)g(des)f(DRBD-Ger\344tetreib)s(ers)h
+(auf)f(der)h(v)m(orhandenen)382 3209 y(Installation)f(automatisc)m(h)h
+(b)s(estimm)m(t.)382 3371 y(Diese)c(Applik)-5 b(ation)29
+b(b)s(esteh)m(t)f(aus)g(einem)h(K)m(ommando,)i(das)d(im)g(w)m(esen)m
+(tlic)m(hen)j(dd\(1\))382 3484 y(nac)m(hempfunden)42
+b(ist,)g(ab)s(er)d(die)h(erzielte)h(Gesc)m(h)m(windigk)m(eit)h(der)e(K)
+m(opierop)s(eration)382 3597 y(ausgeb)s(en)30 b(k)-5
+b(ann,)30 b(und)f(einem)i(Shell-Skript,)g(das)e(folgende)h(Eigensc)m
+(haften)i(des)d(v)m(or-)382 3710 y(handenen)j(Clusters)e(b)s(estimm)m
+(t:)518 3972 y Fd(\017)46 b Fp(V)-8 b(ersionen)31 b(der)g(Lin)m
+(ux-Kernels)518 4160 y Fd(\017)46 b Fp(Prozessorarc)m(hitekturen)518
+4348 y Fd(\017)g Fp(BogoMips-W)-8 b(ert)1227 4315 y Fg(10)1333
+4348 y Fp(der)31 b(Prozessoren)518 4535 y Fd(\017)46
+b Fp(Durc)m(hsatz)32 b(der)e(F)-8 b(estplatten)32 b(b)s(ei)f(sequen)m
+(tiellen)g(Sc)m(hreibzugri\033en)518 4723 y Fd(\017)46
+b Fp(Durc)m(hsatz)32 b(der)e(DRBD-Ger\344te,)h(ohne)g(V)-8
+b(erbindung)518 4911 y Fd(\017)46 b Fp(Bandbreite)32
+b(der)f(Netzw)m(erkv)m(erbindung)p 382 4972 1196 4 v
+486 5026 a Ff(9)520 5058 y Fe(Die)26 b(Rec)n(h)n(te)f(und)f(P\035ic)n
+(h)n(ten)h(des)h(Linzenznehmers)e(sind)i(in)f(der)h(GPL)g(eindeutig)g
+(de\034niert.)455 5117 y Ff(10)520 5149 y Fe(Die)h(BogoMips)i(w)n
+(erden)e(durc)n(h)e(die)i(Ausf\374hrung)f(einer)h(kurzen)f(Sc)n(hleife)
+h(ermittelt.)38 b(Da)27 b(mo-)382 5240 y(derne)g(Prozessoren)j(diese)e
+(Sc)n(hleife)h(v)n(ersc)n(hieden)e(gut)h(optimieren)f(k)n(\366nnen,)h
+(ist)g(dieser)h(W)-6 b(ert)27 b(k)n(ein)382 5332 y(exakter)e(Indik)l
+(ator)g(f\374r)h(die)f(Leistungsf\344higk)n(eit)j(eines)e(Prozessors.)
+1831 5622 y Fp(55)p eop
+%%Page: 56 58
+56 57 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 526 2331
+a @beginspecial 50 @llx 50 @lly 374 @urx 276 @ury 3240
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/hd-vs-drbd-nv.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Wed May 17 13:52:06 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 374 276
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+702 540 M
+3780 0 V
+1.000 UL
+LTb
+702 540 M
+63 0 V
+3717 0 R
+-63 0 V
+594 540 M
+(0) Rshow
+1.000 UL
+LTa
+702 1013 M
+3780 0 V
+1.000 UL
+LTb
+702 1013 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(2) Rshow
+1.000 UL
+LTa
+702 1485 M
+3780 0 V
+1.000 UL
+LTb
+702 1485 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(4) Rshow
+1.000 UL
+LTa
+702 1958 M
+3780 0 V
+1.000 UL
+LTb
+702 1958 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(6) Rshow
+1.000 UL
+LTa
+702 2430 M
+3780 0 V
+1.000 UL
+LTb
+702 2430 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(8) Rshow
+1.000 UL
+LTa
+702 2903 M
+3780 0 V
+1.000 UL
+LTb
+702 2903 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(10) Rshow
+1.000 UL
+LTa
+702 3375 M
+3780 0 V
+1.000 UL
+LTb
+702 3375 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(12) Rshow
+1.000 UL
+LTa
+702 3848 M
+3780 0 V
+1.000 UL
+LTb
+702 3848 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(14) Rshow
+1.000 UL
+LTa
+702 4320 M
+3780 0 V
+1.000 UL
+LTb
+702 4320 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(16) Rshow
+1.000 UL
+LTa
+702 540 M
+0 3780 V
+1.000 UL
+LTb
+702 540 M
+0 63 V
+0 3717 R
+0 -63 V
+702 360 M
+(0) Cshow
+1.000 UL
+LTa
+1175 540 M
+0 3780 V
+1.000 UL
+LTb
+1175 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(2) Cshow
+1.000 UL
+LTa
+1647 540 M
+0 3780 V
+1.000 UL
+LTb
+1647 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(4) Cshow
+1.000 UL
+LTa
+2120 540 M
+0 3780 V
+1.000 UL
+LTb
+2120 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(6) Cshow
+1.000 UL
+LTa
+2592 540 M
+0 3780 V
+1.000 UL
+LTb
+2592 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(8) Cshow
+1.000 UL
+LTa
+3065 540 M
+0 3780 V
+1.000 UL
+LTb
+3065 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(10) Cshow
+1.000 UL
+LTa
+3537 540 M
+0 3780 V
+1.000 UL
+LTb
+3537 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(12) Cshow
+1.000 UL
+LTa
+4010 540 M
+0 3780 V
+1.000 UL
+LTb
+4010 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(14) Cshow
+1.000 UL
+LTa
+4482 540 M
+0 3780 V
+1.000 UL
+LTb
+4482 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(16) Cshow
+1.000 UL
+LTb
+702 540 M
+3780 0 V
+0 3780 V
+-3780 0 V
+702 540 L
+180 2430 M
+currentpoint gsave translate 90 rotate 0 0 M
+(DRBD nicht verbunden [MB/s]) Cshow
+grestore
+2592 90 M
+(Festplatte [MB/s]) Cshow
+1.000 UP
+1.000 UL
+LT0
+1238 1010 Pls
+1236 1003 Pls
+3341 2952 Pls
+4217 3588 Pls
+4432 3890 Pls
+3372 2820 Pls
+3355 2997 Pls
+1763 1646 Pls
+1869 1676 Pls
+1.000 UP
+1.000 UL
+LT1
+1229 1022 Pls
+1234 1010 Pls
+2748 2383 Pls
+3294 2692 Pls
+3381 2862 Pls
+2266 2038 Pls
+2299 1972 Pls
+1196 1038 Pls
+1186 814 Pls
+1.000 UL
+LT2
+5661 4167 M
+(100 %) Rshow
+5769 4167 M
+495 0 V
+702 540 M
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+1.000 UL
+LT3
+5661 3987 M
+(89 %) Rshow
+5769 3987 M
+495 0 V
+702 540 M
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+39 35 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+38 34 V
+38 34 V
+38 35 V
+39 34 V
+38 34 V
+38 34 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 778 2527 a Fp(Abbildung)32 b(5.2:)40 b(Durc)m(hsatz)32
+b(v)m(on)f(DRBD)e(ohne)i(V)-8 b(erbindung)518 2786 y
+Fd(\017)46 b Fp(Minimal-,)32 b(Durc)m(hsc)m(hnitts-)i(und)d
+(Maximalzeit,)i(um)e(ein)h(ICMP-Ping)g(P)m(ak)m(et)609
+2899 y(zwisc)m(hen)h(den)f(b)s(eiden)g(Knoten)h(hin-)f(und)g(zur\374c)m
+(kzusc)m(hic)m(k)m(en)j(\(b)s(ei)d(50)g(P)m(ak)m(e-)609
+3011 y(ten\).)518 3191 y Fd(\017)46 b Fp(Durc)m(hsatz)32
+b(aller)f(DRBD-Protok)m(olle.)382 3422 y(Auf)22 b(die)h(Messung)g(des)f
+(Durc)m(hsatzes)i(b)s(eim)f(Lesen)h(wurde)f(v)m(erzic)m(h)m(tet,)k(da)c
+(die)g(Ergeb-)382 3535 y(nisse)f(durc)m(h)i(den)f(Bu\033er-Cac)m(he,)j
+(druc)m(h)e(in)e(F)-8 b(estplatten)24 b(und)f(K)m(on)m(troller)i(in)m
+(tegrierte)382 3647 y(Cac)m(hes)31 b(und)g(Read-Ahead)g(des)f(Kernels)h
+(stark)f(v)m(erf\344lsc)m(h)m(t)i(w)m(erden.)382 3802
+y(Da)g(Lesezugri\033e)h(immer)f(lok)-5 b(al)32 b(durc)m(hgef\374hrt)i
+(w)m(erden,)g(k)-5 b(ann)32 b(da)m(v)m(on)h(ausgegangen)382
+3915 y(w)m(erden,)h(da\377)f(der)g(Durc)m(hsatz)g(im)g(gleic)m(hen)h(V)
+-8 b(erh\344ltnis)33 b(zum)g(Durc)m(hsatz)g(der)g(F)-8
+b(est-)382 4028 y(platte)29 b(steh)m(t,)h(wie)f(das)g(b)s(ei)f(Sc)m
+(hreibzugri\033en)k(im)d(nic)m(h)m(t)h(v)m(erbundenen)h(Zustand)e(der)
+382 4141 y(F)-8 b(all)31 b(ist.)382 4419 y Fn(5.4.1.1)103
+b(Ergebnisse)382 4633 y Fp(Die)30 b(n)m(umerisc)m(hen)j(Ergebnisse)e
+(der)g(Messungen)g(sind)f(in)g(Anhang)h(A)f(aufgelistet.)382
+4787 y(Arb)s(eitet)k(DRBD)f(ohne)i(V)-8 b(erbindung,)36
+b(m)m(u\377)f(es)f(also)f(n)m(ur)i(die)f(Sc)m(hreibau\033orderun-)382
+4900 y(gen)26 b(an)g(die)g(lok)-5 b(ale)26 b(F)-8 b(estplatte)26
+b(w)m(eitergeb)s(en,)j(w)m(erden)e(im)f(Durc)m(hsc)m(hnitt)i(89,5)e
+(\045)g(des)382 5013 y(Durc)m(hsatzes)40 b(erreic)m(h)m(t,)k(den)39
+b(die)h(F)-8 b(estplatte)40 b(bieten)h(k)-5 b(ann.)67
+b(Die)39 b(Standardab)m(w)m(ei-)382 5126 y(c)m(h)m(ung)32
+b(b)s(etr\344gt)f(n)m(ur)g(1,41)g(\045.)41 b(\(Siehe)31
+b(Abbildung)g(5.2.\))382 5281 y(So)d(ein)g(einfac)m(her)h(und)f
+(genereller)h(Zusammenhang)g(zwisc)m(hen)g(dem)f(Durc)m(hsatz)h(der)382
+5394 y(F)-8 b(estplatten)47 b(und)g(des)f(Netzw)m(erk)m(es)h(und)g(dem)
+f(resultierenden)i(Durc)m(hsatz)f(eines)1831 5622 y(56)p
+eop
+%%Page: 57 59
+57 58 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 526 2331
+a @beginspecial 50 @llx 50 @lly 374 @urx 276 @ury 3240
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/all-vs-drbd.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Wed May 17 13:53:19 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 374 276
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+1.000 UL
+LTa
+702 540 M
+3780 0 V
+1.000 UL
+LTb
+702 540 M
+63 0 V
+3717 0 R
+-63 0 V
+594 540 M
+(0) Rshow
+1.000 UL
+LTa
+702 1296 M
+3780 0 V
+1.000 UL
+LTb
+702 1296 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(2) Rshow
+1.000 UL
+LTa
+702 2052 M
+3780 0 V
+1.000 UL
+LTb
+702 2052 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(4) Rshow
+1.000 UL
+LTa
+702 2808 M
+3780 0 V
+1.000 UL
+LTb
+702 2808 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(6) Rshow
+1.000 UL
+LTa
+702 3564 M
+3771 0 V
+1.000 UL
+LTb
+702 3564 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(8) Rshow
+1.000 UL
+LTa
+702 4320 M
+3780 0 V
+1.000 UL
+LTb
+702 4320 M
+63 0 V
+3717 0 R
+-63 0 V
+-3825 0 R
+(10) Rshow
+1.000 UL
+LTa
+702 540 M
+0 3780 V
+1.000 UL
+LTb
+702 540 M
+0 63 V
+0 3717 R
+0 -63 V
+702 360 M
+(0) Cshow
+1.000 UL
+LTa
+1458 540 M
+0 3780 V
+1.000 UL
+LTb
+1458 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(2) Cshow
+1.000 UL
+LTa
+2214 540 M
+0 3780 V
+1.000 UL
+LTb
+2214 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(4) Cshow
+1.000 UL
+LTa
+2970 540 M
+0 3780 V
+1.000 UL
+LTb
+2970 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(6) Cshow
+1.000 UL
+LTa
+3726 540 M
+0 3780 V
+1.000 UL
+LTb
+3726 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(8) Cshow
+1.000 UL
+LTa
+4482 540 M
+0 2997 V
+0 720 R
+0 63 V
+1.000 UL
+LTb
+4482 540 M
+0 63 V
+0 3717 R
+0 -63 V
+0 -3897 R
+(10) Cshow
+1.000 UL
+LTb
+702 540 M
+3780 0 V
+0 3780 V
+-3780 0 V
+702 540 L
+180 2430 M
+currentpoint gsave translate 90 rotate 0 0 M
+(DRBD [MB/s]) Cshow
+grestore
+2592 90 M
+(min\(Festplatten,Netzwerk\) [MB/s]) Cshow
+1.000 UP
+1.000 UL
+LT0
+5661 4167 M
+(Protokoll A) Rshow
+1545 1031 Box
+1553 1047 Box
+3953 1927 Box
+3991 2407 Box
+1057 941 Box
+3204 2861 Box
+3257 3046 Box
+1061 805 Box
+1061 820 Box
+6016 4167 Box
+1.000 UP
+1.000 UL
+LT1
+5661 3987 M
+(Protokoll B) Rshow
+1545 1028 Circle
+1553 1047 Circle
+3953 1897 Circle
+3991 2309 Circle
+1057 933 Circle
+3204 2876 Circle
+3257 2914 Circle
+1061 816 Circle
+1061 820 Circle
+6016 3987 Circle
+1.000 UP
+1.000 UL
+LT2
+5661 3807 M
+(Protokoll C) Rshow
+1545 1111 TriU
+1553 1099 TriU
+3953 1886 TriU
+3991 2267 TriU
+1057 922 TriU
+3204 2540 TriU
+3257 2668 TriU
+1061 786 TriU
+1061 816 TriU
+6016 3807 TriU
+1.000 UL
+LT3
+5661 3627 M
+(100 %) Rshow
+5769 3627 M
+495 0 V
+702 540 M
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+38 38 V
+39 39 V
+38 38 V
+38 38 V
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 791 2527 a Fp(Abbildung)31 b(5.3:)41 b(Durc)m(hsatz)32
+b(v)m(on)e(DRBD)g(mit)h(V)-8 b(erbindung.)382 2802 y(DRBD-Ger\344tes)42
+b(im)h(v)m(erbundenen)i(Zustand)e(ist)g(leider)g(nic)m(h)m(t)h(v)m
+(orhanden.)79 b(Der)382 2914 y(Durc)m(hsatz)31 b(wird)g(auf)f(jeden)g
+(F)-8 b(all)30 b(durc)m(h)i(den)e(Durc)m(hsatz)h(der)g(F)-8
+b(estplatten)31 b(und)g(des)382 3027 y(Netzw)m(erk)m(es)i(b)s(egrenzt.)
+46 b(Protok)m(oll)34 b(A)d(erreic)m(h)m(t)j(im)f(Durc)m(hsc)m(hnitt)h
+(66,8)e(\045)g(des)g(ma-)382 3140 y(ximal)e(m\366glic)m(hen)i(W)-8
+b(ertes)30 b(mit)g(einer)g(Standardab)m(w)m(eic)m(h)m(ung)36
+b(v)m(on)30 b(11,91)g(\045.)41 b(\(Siehe)382 3253 y(Abbildung)31
+b(5.3.\))382 3416 y(Beim)f(V)-8 b(ergleic)m(h)32 b(der)f(Protok)m(olle)
+h(ist)e(erw)m(artungsgem\344\377)j(Protok)m(oll)e(A)f(am)g(sc)m(hnell-)
+382 3529 y(sten,)39 b(gefolgt)f(v)m(on)g(Protok)m(oll)g(B)g(und)f(C.)h
+(Die)f(Un)m(tersc)m(hiede)j(sind)d(ab)s(er)g(minimal.)382
+3642 y(Protok)m(oll)i(B)f(erreic)m(h)m(t)i(im)e(Durc)m(hsc)m(hnitt)i
+(99,98)e(\045)g(des)g(Durc)m(hsatzes)h(v)m(on)f(A)f(und)382
+3755 y(Protok)m(oll)29 b(C)e(97,11)i(\045)e(des)g(Durc)m(hsatzes)i(v)m
+(on)f(B.)f(Dies)g(ist)h(darauf)f(zur\374c)m(kzuf\374hren,)382
+3868 y(da\377)34 b(DRBD)f(bis)h(zu)g(42)1217 3835 y Fg(11)1326
+3868 y Fp(Sc)m(hreibau\033orderungen)k(gleic)m(hzeitig)e(b)s(earb)s
+(eiten)e(k)-5 b(ann,)382 3980 y(und)35 b(die)g(Latenzzeiten)i(aller)f
+(getesteten)f(Netzw)m(erkk)m(on\034gurationen)k(sehr)34
+b(niedrig)382 4093 y(w)m(aren.)382 4256 y(In)28 b(Abbildung)h(5.4)f
+(ist)g(eb)s(enfalls)g(erk)m(enn)m(bar,)i(da\377)f(es)e(auc)m(h)i(v)m
+(ork)m(omm)m(t,)i(da\377)d(Proto-)382 4369 y(k)m(oll)22
+b(C)f(einen)h(h\366heren)h(Durc)m(hsatz)g(erzielt)f(als)f(Protok)m(oll)
+i(A)e(und)h(B.)g(Bei)f(der)h(V)-8 b(erw)m(en-)382 4482
+y(dung)28 b(v)m(on)g(Protok)m(oll)h(C)e(wird)h(am)g(sekund\344ren)g
+(Knoten)g(nie)g(v)m(ersuc)m(h)m(t,)i(mehr)e(als)f(42)382
+4595 y(Sc)m(hreibanforderungen)39 b(in)c(Auftrag)g(zu)g(geb)s(en.)55
+b(Der)36 b(F)-8 b(estplatten)m(treib)s(er)37 b(b)s(eginn)m(t)382
+4708 y(ab)s(er)32 b(erst)h(nac)m(h)g(dem)g(Ablauf)f(einer)h
+(Zeitspanne,)h(o)s(der)f(w)m(enn)g(die)g(Request-Queue)382
+4821 y(k)m(eine)i(Ein)m(tr\344ge)i(mehr)e(aufnehmen)h(k)-5
+b(ann,)36 b(mit)f(der)g(Abarb)s(eitung)g(der)g(Sc)m(hreiban-)382
+4934 y(forderungen.)64 b(Daher)38 b(wird)g(b)s(ei)g(Protok)m(oll)h(C)f
+(die)g(V)-8 b(erarb)s(eitung)39 b(der)f(Sc)m(hreiban-)p
+382 4995 1196 4 v 455 5049 a Ff(11)520 5081 y Fe(Ab)26
+b(der)h(Kernelv)n(ersion)g(2.2.13)i(hat)e(die)g(Request-Queue)e(128)j
+(Ein)n(tr\344ge.)39 b(W)-6 b(egen)27 b(der)g(in)g(Ab-)382
+5172 y(sc)n(hnitt)c(5.2.1.1)j(\(Seite)e(42\))g(b)r(esc)n(hrieb)r(enen)g
+(Gr\374nde)f(k)l(ann)g(DRBD)g(n)n(ur)f(33)j(\045)f(dieser)g(Ein)n
+(tr\344ge)h(f\374r)382 5263 y(Sc)n(hreibau\033orderungen)g(v)n(erw)n
+(enden.)1831 5622 y Fp(57)p eop
+%%Page: 58 60
+58 59 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 676 2122
+a @beginspecial 50 @llx 50 @lly 338 @urx 251 @ury 2880
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/protocol.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Thu May 11 12:39:27 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 338 251
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+702 540 M
+63 0 V
+4689 0 R
+-63 0 V
+594 540 M
+(0) Rshow
+702 950 M
+63 0 V
+4689 0 R
+-63 0 V
+594 950 M
+(2) Rshow
+702 1359 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(4) Rshow
+702 1769 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(6) Rshow
+702 2178 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(8) Rshow
+702 2588 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(10) Rshow
+702 2997 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(12) Rshow
+702 3407 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(14) Rshow
+702 3816 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(16) Rshow
+1177 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Festplatte) Cshow
+2128 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(DRBD n.v.) Cshow
+3078 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. A) Cshow
+4028 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. B) Cshow
+4979 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. C) Cshow
+1.000 UL
+LTb
+702 540 M
+4752 0 V
+0 3276 V
+-4752 0 V
+702 540 L
+180 2178 M
+currentpoint gsave translate 90 rotate 0 0 M
+([MB/s]) Cshow
+grestore
+3078 90 M
+(dd Durchsatz) Cshow
+1.000 UP
+1.000 UL
+LT0
+4635 3663 M
+(PentII / PentII / 4,33MB/s) Rshow
+4743 3663 M
+495 0 V
+1177 1005 M
+951 -58 V
+3078 806 L
+950 -2 V
+951 45 V
+1177 1005 Crs
+2128 947 Crs
+3078 806 Crs
+4028 804 Crs
+4979 849 Crs
+4990 3663 Crs
+1.000 UP
+1.000 UL
+LT1
+4635 3483 M
+(PentII / PentII / 9,7MB/s) Rshow
+4743 3483 M
+495 0 V
+1177 1003 M
+951 -62 V
+3078 814 L
+950 0 V
+951 29 V
+1177 1003 Box
+2128 941 Box
+3078 814 Box
+4028 814 Box
+4979 843 Box
+4990 3483 Box
+1.000 UP
+1.000 UL
+LT2
+4635 3303 M
+(K6-3 / K6-3 / 8,6MB/s) Rshow
+4743 3303 M
+495 0 V
+1177 2827 M
+951 -197 V
+3078 1291 L
+950 -16 V
+951 -6 V
+1177 2827 TriU
+2128 2630 TriU
+3078 1291 TriU
+4028 1275 TriU
+4979 1269 TriU
+4990 3303 TriU
+1.000 UP
+1.000 UL
+LT3
+4635 3123 M
+(K6-3 / K6-3 / 8,7MB/s) Rshow
+4743 3123 M
+495 0 V
+1177 3587 M
+951 -406 V
+3078 1551 L
+950 -53 V
+951 -22 V
+1177 3587 Star
+2128 3181 Star
+3078 1551 Star
+4028 1498 Star
+4979 1476 Star
+4990 3123 Star
+1.000 UP
+1.000 UL
+LT4
+4635 2943 M
+(K6-3 / K6-3 / 0,94MB/s) Rshow
+4743 2943 M
+495 0 V
+1177 3773 M
+951 -330 V
+3078 757 L
+950 -4 V
+951 -6 V
+1177 3773 TriD
+2128 3443 TriD
+3078 757 TriD
+4028 753 TriD
+4979 747 TriD
+4990 2943 TriD
+1.000 UP
+1.000 UL
+LT5
+4635 2763 M
+(K6-2 / K7 / 11,1MB/s) Rshow
+4743 2763 M
+495 0 V
+-4061 91 R
+951 -338 V
+950 -719 V
+950 8 V
+951 -182 V
+1177 2854 Dia
+2128 2516 Dia
+3078 1797 Dia
+4028 1805 Dia
+4979 1623 Dia
+4990 2763 Dia
+1.000 UP
+1.000 UL
+LT6
+4635 2583 M
+(K6-2 / K7 / 11,1MB/s) Rshow
+4743 2583 M
+495 0 V
+1177 2839 M
+951 -170 V
+950 -772 V
+950 -71 V
+951 -133 V
+1177 2839 Pent
+2128 2669 Pent
+3078 1897 Pent
+4028 1826 Pent
+4979 1693 Pent
+4990 2583 Pent
+1.000 UP
+1.000 UL
+LT7
+4635 2403 M
+(AXP / Pent / 0,95MB/s) Rshow
+4743 2403 M
+495 0 V
+1177 1459 M
+951 39 V
+3078 683 L
+950 6 V
+951 -16 V
+1177 1459 Pls
+2128 1498 Pls
+3078 683 Pls
+4028 689 Pls
+4979 673 Pls
+4990 2403 Pls
+1.000 UP
+1.000 UL
+LT8
+4635 2223 M
+(AXP / Pent / 1,04MB/s) Rshow
+4743 2223 M
+495 0 V
+1177 1551 M
+951 -26 V
+3078 692 L
+950 0 V
+951 -3 V
+1177 1551 Circle
+2128 1525 Circle
+3078 692 Circle
+4028 692 Circle
+4979 689 Circle
+4990 2223 Circle
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 609 2313 a Fe(Bei)33 b(der)e(Besc)n(hriftung)h(der)g
+(Me\377w)n(erte)h(wurde)e(der)h(Prozessor)h(des)f(prim\344ren)f(Sy-)609
+2405 y(stems)25 b(und)e(des)i(sekund\344ren)f(Systems)g(so)n(wie)i(der)
+f(Durc)n(hsatz)f(des)h(Netzw)n(erk)n(es)g(an-)609 2496
+y(gegeb)r(en.)1020 2791 y Fp(Abbildung)31 b(5.4:)41 b(Die)31
+b(Protok)m(olle)h(im)e(V)-8 b(ergleic)m(h)382 3066 y(forderungen)33
+b(in)f(der)h(Request-Queue)f(explizit)h(gestartet,)g(w)m(enn)g
+(mindestens)g(32)3296 3033 y Fg(12)382 3179 y Fp(Sc)m
+(hreibanforderungen)40 b(no)s(c)m(h)c(nic)m(h)m(t)i(abgesc)m(hlossen)f
+(sind.)58 b(W)-8 b(eil)37 b(b)s(ei)f(Protok)m(oll)h(C)382
+3292 y(die)28 b(Abarb)s(eitung)h(der)g(Sc)m(hreibau\033orderung)i(b)s
+(ereits)d(fr\374her)g(gestartet)h(wird,)g(k)-5 b(ann)382
+3405 y(Protok)m(oll)43 b(C)e(in)h(einzelnen)h(F\344llen)f(einen)g(b)s
+(esseren)f(Durc)m(hsatz)i(als)e(Protok)m(oll)i(B)382
+3518 y(erzielen.)382 3681 y(Aus)j(den)h(im)g(Anhang)h(A)e
+(aufgelisteten)i(Daten)f(l\344\377t)g(sic)m(h)h(der)f(T)-8
+b(rend)48 b(ablesen,)382 3794 y(da\377,)41 b(w)m(enn)e(der)g
+(sekund\344re)g(Knoten)g(mit)g(der)g(b)s(esseren)f(F)-8
+b(estplatte)40 b(ausgestattet)382 3907 y(ist,)f(DRBD)e(eine)h
+(h\366here)h(P)m(erformance)g(erreic)m(h)m(t.)65 b(Dies)37
+b(deutet)h(darauf)g(hin,)i(da\377)382 4020 y(der)g(empfangende)h
+(Knoten)f(den)g(Durc)m(hsatz)g(\374b)s(er)g(die)g(Flu\377k)m(on)m
+(trolle)h(des)f(TCP-)382 4132 y(Protok)m(olls)28 b(limitiert.)40
+b(Der)27 b(Empfangsproze\377)h(seinerseits)f(k)-5 b(ann,)28
+b(neb)s(en)e(dem)i(Emp-)382 4245 y(fang)44 b(v)m(om)h(Netzw)m(erk,)k(b)
+s(eim)44 b(Erzeugen)i(der)f(Sc)m(hreibau\033orderungen)j(und)c(b)s(eim)
+382 4358 y(W)-8 b(arten)31 b(auf)f(Absc)m(hlu\377)i(der)e(Sc)m(hreib)s
+(op)s(erationen)j(blo)s(c)m(kieren.)382 4521 y(W\374rde)26
+b(man)h(allerdings)g(diese)f(limitierenden)i(F)-8 b(aktoren)27
+b(aussc)m(halten,)h(also)e(auf)g(das)382 4634 y(sofortige)32
+b(Sc)m(hreib)s(en)h(auf)f(die)g(F)-8 b(estplatte)33 b(v)m(erzic)m(h)m
+(ten,)i(und)d(das)g(Sc)m(hreib)s(en)h(auf)f(die)382 4747
+y(F)-8 b(estplatte)32 b(async)m(hron)g(durc)m(h)g(die)f
+(Kernel-Daemonen)i(erledigen)f(lassen,)f(w)m(\344re)h(die)382
+4860 y(ric)m(h)m(tige)g(Reihenfolge)f(der)g(Sc)m(hreib)s(op)s
+(erationen)i(nic)m(h)m(t)f(mehr)f(garan)m(tiert.)p 382
+5010 1196 4 v 455 5063 a Ff(12)520 5095 y Fe(25)26 b(\045)g(v)n(on)f
+(128.)1831 5622 y Fp(58)p eop
+%%Page: 59 61
+59 60 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 676 2122
+a @beginspecial 50 @llx 50 @lly 338 @urx 251 @ury 2880
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/file-create.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Thu May 18 11:14:57 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 338 251
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+810 540 M
+63 0 V
+4581 0 R
+-63 0 V
+702 540 M
+(0) Rshow
+810 950 M
+63 0 V
+4581 0 R
+-63 0 V
+702 950 M
+(0.5) Rshow
+810 1359 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(1) Rshow
+810 1769 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(1.5) Rshow
+810 2178 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(2) Rshow
+810 2588 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(2.5) Rshow
+810 2997 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(3) Rshow
+810 3407 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(3.5) Rshow
+810 3816 M
+63 0 V
+4581 0 R
+-63 0 V
+-4689 0 R
+(4) Rshow
+1274 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Festplatte) Cshow
+2203 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(DRBD n.v.) Cshow
+3132 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. A) Cshow
+4061 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. B) Cshow
+4990 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(Prot. C) Cshow
+1.000 UL
+LTb
+810 540 M
+4644 0 V
+0 3276 V
+-4644 0 V
+810 540 L
+180 2178 M
+currentpoint gsave translate 90 rotate 0 0 M
+([MB/s]) Cshow
+grestore
+3132 90 M
+(Erzeugen von 5852 files \(63MB\).) Cshow
+1.000 UP
+1.000 UL
+LT0
+4635 3663 M
+(K6-2/ext2/128) Rshow
+4743 3663 M
+495 0 V
+1274 3452 M
+2203 1306 L
+929 128 V
+929 -118 V
+929 -34 V
+1274 3452 Circle
+2203 1306 Circle
+3132 1434 Circle
+4061 1316 Circle
+4990 1282 Circle
+4990 3663 Circle
+1.000 UP
+1.000 UL
+LT1
+4635 3483 M
+(21064/ext2/128) Rshow
+4743 3483 M
+495 0 V
+1274 1778 M
+929 -270 V
+929 -108 V
+929 -21 V
+929 -4 V
+1274 1778 Box
+2203 1508 Box
+3132 1400 Box
+4061 1379 Box
+4990 1375 Box
+4990 3483 Box
+1.000 UP
+1.000 UL
+LT2
+4635 3303 M
+(K6-2/ReiserFS/128) Rshow
+4743 3303 M
+495 0 V
+1274 3185 M
+929 167 V
+3132 1494 L
+929 -8 V
+929 101 V
+1274 3185 TriU
+2203 3352 TriU
+3132 1494 TriU
+4061 1486 TriU
+4990 1587 TriU
+4990 3303 TriU
+1.000 UP
+1.000 UL
+LT3
+4635 3123 M
+(K6-2/ext2/256) Rshow
+4743 3123 M
+495 0 V
+1274 3800 M
+929 -342 V
+3132 1253 L
+929 -49 V
+929 -60 V
+1274 3800 TriD
+2203 3458 TriD
+3132 1253 TriD
+4061 1204 TriD
+4990 1144 TriD
+4990 3123 TriD
+1.000 UP
+1.000 UL
+LT4
+4635 2943 M
+(21064/ext2/256) Rshow
+4743 2943 M
+495 0 V
+1274 1963 M
+929 -18 V
+929 -836 V
+929 20 V
+929 -48 V
+1274 1963 Dia
+2203 1945 Dia
+3132 1109 Dia
+4061 1129 Dia
+4990 1081 Dia
+4990 2943 Dia
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 609 2313 a Fe(21064)28 b(ist)e(der)f(Prozessor)i(v)n(on)e
+(Knoten)g(2;)h(K6-2)g(ist)g(der)f(Prozessort)j(v)n(on)d(Knoten1)1114
+2609 y Fp(Abbildung)32 b(5.5:)41 b(DRBD)29 b(und)i(Filesystem)382
+2884 y Fo(5.4.2)112 b(Dateisystem)382 3105 y Fp(Meistens)47
+b(wird)h(ein)g(blo)s(c)m(k)m(orien)m(tiertes)i(Ger\344t)d(in)h
+(Zusammenarb)s(eit)h(mit)f(einem)382 3218 y(Dateisystem)43
+b(v)m(erw)m(endet.)82 b(Im)43 b(folgenden)h(wird)g(die)f(Leistung)i(v)m
+(on)e(DRBD)g(mit)382 3331 y(Ext2)32 b(und)g(ReiserFS)g(\(siehe)g(auc)m
+(h)h(Absc)m(hnitt)g(6.2)f(auf)f(Seite)i(69\))f(un)m(tersuc)m(h)m(t.)47
+b(F\374r)382 3444 y(diese)30 b(Messungen)h(wurde)g(folgende)g
+(Installation)g(v)m(erw)m(endet:)p 437 3594 2879 4 v
+435 4145 4 552 v 550 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 550 4111 a Fp(Knoten)841
+4111 y
+ currentpoint grestore moveto
+ 841 4111 a 598 4145 4 552 v 785 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 785 4111
+a Fp(System)1070 4111 y
+ currentpoint grestore moveto
+ 1070 4111 a 925 4145 4 552 v
+1123 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1123 4111 a Fp(V)-8 b(ersion)1415 4111 y
+ currentpoint grestore moveto
+
+1415 4111 a 1255 4145 4 552 v 1446 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1446 4111 a
+Fp(Arc)m(hitektur)1906 4111 y
+ currentpoint grestore moveto
+ 1906 4111 a 1571 4145 4
+552 v 1770 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1770 4111 a Fp(BogoMips)2164 4111 y
+ currentpoint grestore moveto
+
+2164 4111 a 1922 4145 4 552 v 2099 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2099 4111 a
+Fp(F)g(estplatte)2492 4111 y
+ currentpoint grestore moveto
+ 2492 4111 a 2227 4145 4
+552 v 2413 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2413 4111 a Fp(DRBD)30 b(n.)40 b(v.)2930
+4111 y
+ currentpoint grestore moveto
+ 2930 4111 a 2533 4145 4 552 v 2696 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2696
+4111 a Fp(Prot.)h(A)3006 4111 y
+ currentpoint grestore moveto
+ 3006 4111 a 2793 4145
+4 552 v 2956 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2956 4111 a Fp(Prot.)g(B)3262 4111
+y
+ currentpoint grestore moveto
+ 3262 4111 a 3053 4145 4 552 v 3217 4111 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3217 4111
+a Fp(Prot.)g(C)3524 4111 y
+ currentpoint grestore moveto
+ 3524 4111 a 3314 4145 4 552
+v 437 4148 2879 4 v 437 4165 V 435 4278 4 113 v 496 4244
+a Fp(1)p 598 4278 V 108 w(Lin)m(ux)p 925 4278 V 101 w(2.2.14)p
+1255 4278 V 128 w(i586)p 1571 4278 V 151 w(901,2)p 1922
+4278 V 123 w(11,87)p 2227 4278 V 101 w(11,57)p 2533 4278
+V 100 w(1,75)p 2793 4278 V 101 w(1,74)p 3053 4278 V 100
+w(2,06)p 3314 4278 V 437 4281 2879 4 v 435 4394 4 113
+v 496 4360 a(2)p 598 4394 V 108 w(Lin)m(ux)p 925 4394
+V 101 w(2.2.14)p 1255 4394 V 101 w(alpha)p 1571 4394
+V 100 w(295,69)p 1922 4394 V 124 w(4,16)p 2227 4394 V
+145 w(3,74)p 2533 4394 V 123 w(3,54)p 2793 4394 V 101
+w(3,35)p 3053 4394 V 100 w(3,56)p 3314 4394 V 437 4397
+2879 4 v 539 4676 a(Netzw)m(erkbandbreite:)102 b(6,38)31
+b(MB/s)498 b(Datengr\366\377e:)102 b(50)30 b(MB)724 4789
+y(Netzw)m(erklatenz:)102 b(0,1/0,1/0,3)32 b(ms)200 b(DRBD)29
+b(V)-8 b(ersion:)101 b(0.5.5)382 5015 y(In)29 b(Abbildung)i(5.5)f(ist)g
+(die)g(Zeit)g(dargestellt,)h(die)f(b)s(en\366tigt)h(wird,)f(um)g(5812)h
+(Datein)382 5128 y(mit)g(einer)g(Gesam)m(tgr\366\377e)h(v)m(on)e(63MB)h
+(zu)f(erzeugen:)518 5390 y Fd(\017)46 b Fp(Knoten)e(1)e(ist)h(mit)g
+(einer)g(IDE-F)-8 b(estplatte)44 b(mit)f(aktiviertem)g(W)-8
+b(rite-Cac)m(he)1831 5622 y(59)p eop
+%%Page: 60 62
+60 61 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 676 2122
+a @beginspecial 50 @llx 50 @lly 338 @urx 251 @ury 2880
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/esssA.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Tue May 9 16:25:21 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 338 251
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+702 540 M
+63 0 V
+4689 0 R
+-63 0 V
+594 540 M
+(0) Rshow
+702 950 M
+63 0 V
+4689 0 R
+-63 0 V
+594 950 M
+(5) Rshow
+702 1359 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(10) Rshow
+702 1769 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(15) Rshow
+702 2178 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(20) Rshow
+702 2588 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(25) Rshow
+702 2997 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(30) Rshow
+702 3407 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(35) Rshow
+702 3816 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(40) Rshow
+1166 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(5) Cshow
+1745 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(10) Cshow
+2325 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(15) Cshow
+2904 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(20) Cshow
+3484 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(25) Cshow
+4063 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(30) Cshow
+4643 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(35) Cshow
+5222 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(40) Cshow
+1.000 UL
+LTb
+702 540 M
+4752 0 V
+0 3276 V
+-4752 0 V
+702 540 L
+180 2178 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Häufigkeit) Cshow
+grestore
+3078 90 M
+(Anzahl der Blöcke zwischen zwei Schranken) Cshow
+1.000 UP
+1.000 UL
+LT0
+3186 3663 M
+(Ext2 4K / Protokoll A) Rshow
+3294 3663 M
+495 0 V
+702 704 M
+818 622 L
+934 786 L
+116 0 V
+1166 622 L
+116 -82 V
+115 246 V
+116 0 V
+116 -82 V
+116 491 V
+1861 704 L
+116 491 V
+2093 622 L
+116 246 V
+116 901 V
+116 -492 V
+115 82 V
+116 -164 V
+116 410 V
+116 409 V
+116 -327 V
+116 245 V
+116 -737 V
+116 655 V
+116 -491 V
+116 -246 V
+3715 950 L
+3831 786 L
+116 0 V
+116 245 V
+116 82 V
+116 246 V
+116 -328 V
+116 246 V
+116 164 V
+116 82 V
+115 -492 V
+4990 868 L
+116 82 V
+116 81 V
+5338 868 L
+116 2375 V
+702 704 Circle
+818 622 Circle
+934 786 Circle
+1050 786 Circle
+1166 622 Circle
+1282 540 Circle
+1397 786 Circle
+1513 786 Circle
+1629 704 Circle
+1745 1195 Circle
+1861 704 Circle
+1977 1195 Circle
+2093 622 Circle
+2209 868 Circle
+2325 1769 Circle
+2441 1277 Circle
+2556 1359 Circle
+2672 1195 Circle
+2788 1605 Circle
+2904 2014 Circle
+3020 1687 Circle
+3136 1932 Circle
+3252 1195 Circle
+3368 1850 Circle
+3484 1359 Circle
+3600 1113 Circle
+3715 950 Circle
+3831 786 Circle
+3947 786 Circle
+4063 1031 Circle
+4179 1113 Circle
+4295 1359 Circle
+4411 1031 Circle
+4527 1277 Circle
+4643 1441 Circle
+4759 1523 Circle
+4874 1031 Circle
+4990 868 Circle
+5106 950 Circle
+5222 1031 Circle
+5338 868 Circle
+5454 3243 Circle
+3541 3663 Circle
+1.000 UP
+1.000 UL
+LT1
+3186 3483 M
+(ReiserFS / Protokoll A) Rshow
+3294 3483 M
+495 0 V
+728 3816 M
+818 704 L
+116 0 V
+116 246 V
+1166 786 L
+116 0 V
+1397 540 L
+116 410 V
+1629 786 L
+116 327 V
+116 -82 V
+116 82 V
+116 164 V
+116 0 V
+116 -164 V
+116 246 V
+115 328 V
+116 327 V
+116 -409 V
+2904 868 L
+116 655 V
+116 246 V
+3252 950 L
+116 327 V
+116 -164 V
+116 0 V
+115 574 V
+116 -328 V
+116 0 V
+116 328 V
+116 -328 V
+116 164 V
+116 246 V
+116 -82 V
+116 -246 V
+116 655 V
+4874 1031 L
+116 -81 V
+116 819 V
+116 -574 V
+116 328 V
+88 2293 V
+818 704 Box
+934 704 Box
+1050 950 Box
+1166 786 Box
+1282 786 Box
+1397 540 Box
+1513 950 Box
+1629 786 Box
+1745 1113 Box
+1861 1031 Box
+1977 1113 Box
+2093 1277 Box
+2209 1277 Box
+2325 1113 Box
+2441 1359 Box
+2556 1687 Box
+2672 2014 Box
+2788 1605 Box
+2904 868 Box
+3020 1523 Box
+3136 1769 Box
+3252 950 Box
+3368 1277 Box
+3484 1113 Box
+3600 1113 Box
+3715 1687 Box
+3831 1359 Box
+3947 1359 Box
+4063 1687 Box
+4179 1359 Box
+4295 1523 Box
+4411 1769 Box
+4527 1687 Box
+4643 1441 Box
+4759 2096 Box
+4874 1031 Box
+4990 950 Box
+5106 1769 Box
+5222 1195 Box
+5338 1523 Box
+3541 3483 Box
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 1020 2318 a Fp(Abbildung)32 b(5.6:)40 b(Abstand)31
+b(der)g(W)-8 b(rite-Barriers)609 2589 y(ausgestattet.)75
+b(Dieser)41 b(b)s(esc)m(hleunigt)i(Op)s(erationen)g(auf)e(der)h(lok)-5
+b(alen)42 b(F)-8 b(est-)609 2702 y(platte)31 b(und)g(auf)f(DRBD)g(im)h
+(nic)m(h)m(t)h(v)m(erbundenen)g(Zustand.)518 2888 y Fd(\017)46
+b Fp(Die)38 b(b)s(este)g(Leistung)h(f\374r)f(Ext2)h(in)f(K)m(om)m
+(bination)j(mit)d(Protok)m(oll)i(B)e(und)g(C)609 3001
+y(k)m(onn)m(te)29 b(b)s(eim)f(Sc)m(hreib)s(en)h(auf)f(Knoten)g(2)g
+(erzielt)h(w)m(erden.)41 b(Dies)27 b(un)m(termauert)609
+3114 y(die)40 b(These,)i(da\377,)g(w)m(enn)f(das)e(sc)m(hnellere)i
+(System)f(im)g(sekund\344ren)g(Zustand)609 3226 y(v)m(erw)m(endet)33
+b(wird,)e(b)s(essere)e(Leistungsergebnisse)j(erzielbar)g(sind.)518
+3412 y Fd(\017)46 b Fp(Mit)34 b(ReiserFS)f(k)-5 b(ann)34
+b(die)g(b)s(este)f(Gesam)m(tleistung)i(v)m(orgewiesen)g(w)m(erden.)52
+b(Es)609 3525 y(m)m(u\377)33 b(allerdings)g(erw)m(\344hn)m(t)h(w)m
+(erden,)g(da\377)e(ext)g(mit)g(einer)g(Blo)s(c)m(kgr\366\377e)h(v)m(on)
+f(1K)609 3638 y(v)m(erw)m(endet)j(wurde,)f(w)m(\344hrend)h(ReiserFS)e
+(eine)g(Blo)s(c)m(kgr\366\377e)h(v)m(on)f(4K)g(v)m(erw)m(en-)609
+3751 y(det.)518 3936 y Fd(\017)46 b Fp(Die)29 b(V)-8
+b(ergr\366\377erung)30 b(der)f(Request-Queue)g(v)m(on)g(128)g(auf)f
+(256)h(Ein)m(tr\344ge)h(erh\366h)m(t)609 4049 y(zw)m(ar)45
+b(die)f(Leistung)g(im)g(lok)-5 b(alen)44 b(F)-8 b(all,)48
+b(v)m(ersc)m(hlec)m(h)m(tert)e(allerdings)f(die)f(Lei-)609
+4162 y(stung,)31 b(w)m(enn)g(DRBD)f(die)h(Daten)g(spiegelt.)382
+4449 y Fn(5.4.2.1)103 b(Abstand)35 b(der)f(W)-9 b(rite-Barriers)382
+4668 y Fp(Um)23 b(den)g(Auswirkungen)h(des)f(W)-8 b
+(rite-Barrier-Protok)m(olls)27 b(b)s(esser)c(v)m(erstehen)h(zu)f(k)m
+(\366n-)382 4781 y(nen,)42 b(wurde)f(auc)m(h)g(die)f(Anzahl)g(der)g
+(Bl\366)s(c)m(k)m(e,)i(die)e(zwisc)m(hen)h(zw)m(ei)g(W)-8
+b(rite-Barriers)382 4894 y(v)m(ersendet)34 b(w)m(erden,)g(un)m(tersuc)m
+(h)m(t.)51 b(F\374r)32 b(die)h(b)s(eiden)h(Messungen)e(wurden)i(3449)f
+(Da-)382 5007 y(teien)g(mit)f(einer)h(Gesam)m(tgr\366\377e)h(v)m(on)e
+(24MB)h(erzeugt.)47 b(Beide)32 b(Filesysteme)g(wurden)382
+5120 y(mit)f(einer)g(Blo)s(c)m(kgr\366\377e)g(v)m(on)g(4K)f(b)s(etrieb)
+s(en.)382 5281 y(In)38 b(den)i(Abbildungen)g(5.6)f(und)h(5.7)f(ist)g
+(das)f(Auftreten)i(der)f(Abst\344nde)g(zwisc)m(hen)382
+5394 y(zw)m(ei)32 b(W)-8 b(rite-Barrier)33 b(P)m(ak)m(eten)g
+(dargestellt.)44 b(Bei)31 b(Protok)m(oll)i(A)e(hat)g(ext2)g(33)h(mal)f
+(42)1831 5622 y(60)p eop
+%%Page: 61 63
+61 62 bop 382 262 a Fl(KAPITEL)31 b(5.)71 b(IMPLEMENTIER)m(UNG)528
+b(5.4.)71 b(PERF)m(ORMANCE)p 382 299 2989 4 v 676 2122
+a @beginspecial 50 @llx 50 @lly 338 @urx 251 @ury 2880
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//benchmark/gnuplot/esssC.ps
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: gnuplot 3.7 patchlevel 0.2
+%%CreationDate: Tue May 9 16:25:20 2000
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 338 251
+%%Orientation: Portrait
+%%EndComments
+/gnudict 256 dict def
+gnudict begin
+/Color false def
+/Solid false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/vshift -60 def
+/dl {10 mul} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/reencodeISO {
+dup dup findfont dup length dict begin
+{ 1 index /FID ne { def }{ pop pop } ifelse } forall
+currentdict /CharStrings known {
+ CharStrings /Idieresis known {
+ /Encoding ISOLatin1Encoding def } if
+} if
+currentdict end definefont
+} def
+/ISOLatin1Encoding [
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
+/parenleft/parenright/asterisk/plus/comma/minus/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/quoteleft/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/bar/braceright/asciitilde
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
+/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
+/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
+/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
+/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
+/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
+/guillemotright/onequarter/onehalf/threequarters/questiondown
+/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
+/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
+/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
+/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
+/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
+/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
+/yacute/thorn/ydieresis
+] def
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow { currentpoint stroke M
+ 0 vshift R show } def
+/Rshow { currentpoint stroke M
+ dup stringwidth pop neg vshift R show } def
+/Cshow { currentpoint stroke M
+ dup stringwidth pop -2 div vshift R show } def
+/UP { dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+ /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def } def
+/DL { Color {setrgbcolor Solid {pop []} if 0 setdash }
+ {pop pop pop Solid {pop []} if 0 setdash} ifelse } def
+/BL { stroke userlinewidth 2 mul setlinewidth } def
+/AL { stroke userlinewidth 2 div setlinewidth } def
+/UL { dup gnulinewidth mul /userlinewidth exch def
+ 10 mul /udl exch def } def
+/PL { stroke userlinewidth setlinewidth } def
+/LTb { BL [] 0 0 0 DL } def
+/LTa { AL [1 udl mul 2 udl mul] 0 setdash 0 0 0 setrgbcolor } def
+/LT0 { PL [] 1 0 0 DL } def
+/LT1 { PL [4 dl 2 dl] 0 1 0 DL } def
+/LT2 { PL [2 dl 3 dl] 0 0 1 DL } def
+/LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def
+/LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def
+/LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def
+/LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def
+/LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def
+/LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def
+/Pnt { stroke [] 0 setdash
+ gsave 1 setlinecap M 0 0 V stroke grestore } def
+/Dia { stroke [] 0 setdash 2 copy vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke
+ Pnt } def
+/Pls { stroke [] 0 setdash vpt sub M 0 vpt2 V
+ currentpoint stroke M
+ hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke
+ Pnt } def
+/Crs { stroke [] 0 setdash exch hpt sub exch vpt add M
+ hpt2 vpt2 neg V currentpoint stroke M
+ hpt2 neg 0 R hpt2 vpt2 V stroke } def
+/TriU { stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke
+ Pnt } def
+/Star { 2 copy Pls Crs } def
+/BoxF { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath fill } def
+/TriUF { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath fill } def
+/TriD { stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke
+ Pnt } def
+/TriDF { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath fill } def
+/Pent { stroke [] 0 setdash 2 copy gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore Pnt } def
+/PentF { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath fill grestore } def
+/Circle { stroke [] 0 setdash 2 copy
+ hpt 0 360 arc stroke Pnt } def
+/CircleF { stroke [] 0 setdash hpt 0 360 arc fill } def
+/C0 { BL [] 0 setdash 2 copy moveto vpt 90 450 arc } bind def
+/C1 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C2 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C3 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C4 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C5 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc
+ 2 copy moveto
+ 2 copy vpt 180 270 arc closepath fill
+ vpt 0 360 arc } bind def
+/C6 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C7 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 270 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C8 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C9 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 270 450 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C10 { BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 90 180 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C11 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 180 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 270 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C12 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C13 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 0 90 arc closepath fill
+ 2 copy moveto
+ 2 copy vpt 180 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/C14 { BL [] 0 setdash 2 copy moveto
+ 2 copy vpt 90 360 arc closepath fill
+ vpt 0 360 arc } bind def
+/C15 { BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+ vpt 0 360 arc closepath } bind def
+/Rec { newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+ neg 0 rlineto closepath } bind def
+/Square { dup Rec } bind def
+/Bsquare { vpt sub exch vpt sub exch vpt2 Square } bind def
+/S0 { BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare } bind def
+/S1 { BL [] 0 setdash 2 copy vpt Square fill Bsquare } bind def
+/S2 { BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S3 { BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare } bind def
+/S4 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S5 { BL [] 0 setdash 2 copy 2 copy vpt Square fill
+ exch vpt sub exch vpt sub vpt Square fill Bsquare } bind def
+/S6 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S7 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+ 2 copy vpt Square fill
+ Bsquare } bind def
+/S8 { BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare } bind def
+/S9 { BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare } bind def
+/S10 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+ Bsquare } bind def
+/S11 { BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+ Bsquare } bind def
+/S12 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare } bind def
+/S13 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy vpt Square fill Bsquare } bind def
+/S14 { BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+ 2 copy exch vpt sub exch vpt Square fill Bsquare } bind def
+/S15 { BL [] 0 setdash 2 copy Bsquare fill Bsquare } bind def
+/D0 { gsave translate 45 rotate 0 0 S0 stroke grestore } bind def
+/D1 { gsave translate 45 rotate 0 0 S1 stroke grestore } bind def
+/D2 { gsave translate 45 rotate 0 0 S2 stroke grestore } bind def
+/D3 { gsave translate 45 rotate 0 0 S3 stroke grestore } bind def
+/D4 { gsave translate 45 rotate 0 0 S4 stroke grestore } bind def
+/D5 { gsave translate 45 rotate 0 0 S5 stroke grestore } bind def
+/D6 { gsave translate 45 rotate 0 0 S6 stroke grestore } bind def
+/D7 { gsave translate 45 rotate 0 0 S7 stroke grestore } bind def
+/D8 { gsave translate 45 rotate 0 0 S8 stroke grestore } bind def
+/D9 { gsave translate 45 rotate 0 0 S9 stroke grestore } bind def
+/D10 { gsave translate 45 rotate 0 0 S10 stroke grestore } bind def
+/D11 { gsave translate 45 rotate 0 0 S11 stroke grestore } bind def
+/D12 { gsave translate 45 rotate 0 0 S12 stroke grestore } bind def
+/D13 { gsave translate 45 rotate 0 0 S13 stroke grestore } bind def
+/D14 { gsave translate 45 rotate 0 0 S14 stroke grestore } bind def
+/D15 { gsave translate 45 rotate 0 0 S15 stroke grestore } bind def
+/DiaE { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V closepath stroke } def
+/BoxE { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V closepath stroke } def
+/TriUE { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V closepath stroke } def
+/TriDE { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V closepath stroke } def
+/PentE { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ closepath stroke grestore } def
+/CircE { stroke [] 0 setdash
+ hpt 0 360 arc stroke } def
+/Opaque { gsave closepath 1 setgray fill grestore 0 setgray closepath } def
+/DiaW { stroke [] 0 setdash vpt add M
+ hpt neg vpt neg V hpt vpt neg V
+ hpt vpt V hpt neg vpt V Opaque stroke } def
+/BoxW { stroke [] 0 setdash exch hpt sub exch vpt add M
+ 0 vpt2 neg V hpt2 0 V 0 vpt2 V
+ hpt2 neg 0 V Opaque stroke } def
+/TriUW { stroke [] 0 setdash vpt 1.12 mul add M
+ hpt neg vpt -1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt 1.62 mul V Opaque stroke } def
+/TriDW { stroke [] 0 setdash vpt 1.12 mul sub M
+ hpt neg vpt 1.62 mul V
+ hpt 2 mul 0 V
+ hpt neg vpt -1.62 mul V Opaque stroke } def
+/PentW { stroke [] 0 setdash gsave
+ translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+ Opaque stroke grestore } def
+/CircW { stroke [] 0 setdash
+ hpt 0 360 arc Opaque stroke } def
+/BoxFill { gsave Rec 1 setgray fill grestore } def
+/Times-Roman reencodeISO def
+end
+%%EndProlog
+gnudict begin
+gsave
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-Roman) findfont 180 scalefont setfont
+1.000 UL
+LTb
+702 540 M
+63 0 V
+4689 0 R
+-63 0 V
+594 540 M
+(0) Rshow
+702 950 M
+63 0 V
+4689 0 R
+-63 0 V
+594 950 M
+(5) Rshow
+702 1359 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(10) Rshow
+702 1769 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(15) Rshow
+702 2178 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(20) Rshow
+702 2588 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(25) Rshow
+702 2997 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(30) Rshow
+702 3407 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(35) Rshow
+702 3816 M
+63 0 V
+4689 0 R
+-63 0 V
+-4797 0 R
+(40) Rshow
+1166 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(5) Cshow
+1745 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(10) Cshow
+2325 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(15) Cshow
+2904 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(20) Cshow
+3484 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(25) Cshow
+4063 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(30) Cshow
+4643 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(35) Cshow
+5222 540 M
+0 63 V
+0 3213 R
+0 -63 V
+0 -3393 R
+(40) Cshow
+1.000 UL
+LTb
+702 540 M
+4752 0 V
+0 3276 V
+-4752 0 V
+702 540 L
+180 2178 M
+currentpoint gsave translate 90 rotate 0 0 M
+(Häufigkeit) Cshow
+grestore
+3078 90 M
+(Anzahl der Blöcke zwischen zwei Schranken) Cshow
+1.000 UP
+1.000 UL
+LT0
+3186 3663 M
+(Ext2 4K / Protokoll C) Rshow
+3294 3663 M
+495 0 V
+702 622 M
+818 540 L
+116 0 V
+116 0 V
+116 0 V
+116 82 V
+115 -82 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 164 V
+116 -82 V
+116 -82 V
+116 0 V
+116 82 V
+115 0 V
+116 -82 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 164 V
+116 -82 V
+116 -82 V
+116 82 V
+115 0 V
+116 0 V
+116 82 V
+4063 540 L
+116 82 V
+116 0 V
+116 -82 V
+116 82 V
+116 0 V
+116 0 V
+115 82 V
+116 82 V
+5106 622 L
+116 409 V
+116 82 V
+25 2703 V
+702 622 Circle
+818 540 Circle
+934 540 Circle
+1050 540 Circle
+1166 540 Circle
+1282 622 Circle
+1397 540 Circle
+1513 540 Circle
+1629 540 Circle
+1745 540 Circle
+1861 540 Circle
+1977 704 Circle
+2093 622 Circle
+2209 540 Circle
+2325 540 Circle
+2441 622 Circle
+2556 622 Circle
+2672 540 Circle
+2788 540 Circle
+2904 540 Circle
+3020 540 Circle
+3136 540 Circle
+3252 704 Circle
+3368 622 Circle
+3484 540 Circle
+3600 622 Circle
+3715 622 Circle
+3831 622 Circle
+3947 704 Circle
+4063 540 Circle
+4179 622 Circle
+4295 622 Circle
+4411 540 Circle
+4527 622 Circle
+4643 622 Circle
+4759 622 Circle
+4874 704 Circle
+4990 786 Circle
+5106 622 Circle
+5222 1031 Circle
+5338 1113 Circle
+3541 3663 Circle
+1.000 UP
+1.000 UL
+LT1
+3186 3483 M
+(ReiserFS / Protokoll C) Rshow
+3294 3483 M
+495 0 V
+702 1113 M
+818 786 L
+934 704 L
+1050 540 L
+116 0 V
+116 0 V
+115 0 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 0 V
+116 82 V
+116 0 V
+115 -82 V
+116 164 V
+116 -82 V
+116 82 V
+3020 540 L
+116 328 V
+3252 622 L
+116 -82 V
+116 82 V
+116 0 V
+115 164 V
+3831 622 L
+116 82 V
+4063 540 L
+116 82 V
+116 0 V
+116 164 V
+116 164 V
+4643 622 L
+116 655 V
+115 -246 V
+4990 786 L
+116 164 V
+5222 786 L
+116 573 V
+24 2457 V
+702 1113 Box
+818 786 Box
+934 704 Box
+1050 540 Box
+1166 540 Box
+1282 540 Box
+1397 540 Box
+1513 540 Box
+1629 540 Box
+1745 540 Box
+1861 540 Box
+1977 540 Box
+2093 540 Box
+2209 540 Box
+2325 622 Box
+2441 622 Box
+2556 540 Box
+2672 704 Box
+2788 622 Box
+2904 704 Box
+3020 540 Box
+3136 868 Box
+3252 622 Box
+3368 540 Box
+3484 622 Box
+3600 622 Box
+3715 786 Box
+3831 622 Box
+3947 704 Box
+4063 540 Box
+4179 622 Box
+4295 622 Box
+4411 786 Box
+4527 950 Box
+4643 622 Box
+4759 1277 Box
+4874 1031 Box
+4990 786 Box
+5106 950 Box
+5222 786 Box
+5338 1359 Box
+3541 3483 Box
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-Roman
+
+%%EndDocument
+ @endspecial 1020 2318 a Fp(Abbildung)32 b(5.7:)40 b(Abstand)31
+b(der)g(W)-8 b(rite-Barriers)382 2593 y(Bl\366)s(c)m(k)m(e)41
+b(und)g(ReiserFS)g(49)g(mal)g(42)g(Bl\366)s(c)m(k)m(e)g(ohne)h(W)-8
+b(rite-Barrier)42 b(v)m(ersendet,)j(b)s(ei)382 2706 y(Protok)m(oll)32
+b(C)e(w)m(aren)i(es)e(b)s(ei)g(ext2)g(162)h(und)g(b)s(ei)f(ReiserFS)g
+(156.)382 2869 y(Da\377)20 b(mit)h(Protok)m(oll)h(A)e(w)m(esen)m(tlic)m
+(h)j(mehr)e(W)-8 b(rite-Barriers)22 b(generiert)f(w)m(erden,)j(k)m(omm)
+m(t)382 2982 y(daher,)50 b(da\377)c(die)f(einzelne)i(Sc)m(hreib)s(op)s
+(eration)h(deutlic)m(h)f(sc)m(hneller)f(abgesc)m(hlossen)382
+3095 y(wird)31 b(als)f(b)s(ei)g(Protok)m(oll)i(C.)f(\(Siehe)g(Absc)m
+(hnitt)g(3.3.1.1)g(auf)g(Seite)g(24\))382 3257 y(Im)e(V)-8
+b(ergleic)m(h)31 b(der)e(Filesysteme)g(ist)g(sic)m(h)m(tbar,)i(da\377)f
+(mit)f(ReiserFS)g(\(siehe)g(auc)m(h)i(Ab-)382 3370 y(sc)m(hnitt)46
+b(6.2.3)f(auf)f(Seite)h(70\))g(mehr)h(kurze)f(Abst\344nde)g(zwisc)m
+(hen)g(W)-8 b(rite-Barrier-)382 3483 y(P)m(ak)m(eten)28
+b(zustandek)m(ommen)h(als)d(b)s(ei)g(Ext2.)40 b(Der)26
+b(Grund)h(daf\374r)f(d\374rften)h(die)g(Sc)m(hrei-)382
+3596 y(b)s(op)s(erationen)49 b(in)f(das)f(Journal)i(sein.)93
+b(ReiserFS)47 b(m)m(u\377)i(auf)e(den)i(Absc)m(hlu\377)f(der)382
+3709 y(Sc)m(hreib)s(op)s(erationen)33 b(ins)d(Journal)i(w)m(arten,)g(b)
+s(ev)m(or)f(es)f(die)h(Aktualisierung)g(der)g(Da-)382
+3822 y(tenstrukturen)j(des)f(Dateisystems)f(v)m(ornehmen)j(darf.)48
+b(Der)33 b(b)s(esonders)f(hohe)i(W)-8 b(ert)382 3935
+y(b)s(eim)25 b(Abstand)g(1)g(k)m(\366nn)m(te)i(v)m(on)e(diesen)h(Sc)m
+(hreib)s(op)s(erationen)h(ins)e(Journal)i(stammen.)382
+4048 y(Die)33 b(h\366heren)g(W)-8 b(erte)34 b(b)s(ei)e(Abst\344nden)i
+(25)e(bis)h(41)g(k)m(\366nn)m(ten)h(v)m(on)f(Aktualisierungen,)382
+4161 y(die)25 b(mit)h(der)g(n\344c)m(hsten)g(Sc)m(hreib)s(op)s(eration)
+i(ins)d(Journal)h(zusammengefasst)g(wurden,)382 4274
+y(stammen.)1831 5622 y(61)p eop
+%%Page: 62 64
+62 63 bop 382 1200 a Fk(Kapitel)62 b(6)382 1654 y Fm(HA)72
+b(un)-6 b(ter)72 b(Lin)-6 b(ux)382 2138 y Fp(Neb)s(en)29
+b(DRBD)g(w)m(erden)i(no)s(c)m(h)f(eine)f(Reihe)h(anderer)g(F\344higk)m
+(eiten)h(und)f(K)m(omp)s(onen-)382 2250 y(ten)j(b)s(en\366tigt,)i(um)e
+(einen)h(HA-Cluster)f(zu)h(implemen)m(tieren.)51 b(Dieses)33
+b(Kapitel)h(gibt)382 2363 y(einen)e(\334b)s(erblic)m(k)g(dar\374b)s
+(er,)g(wie)g(sic)m(h)g(DRBD)f(in)h(die)f(anderen,)i(f\374r)f(die)f
+(Implemen-)382 2476 y(tierung)g(eines)g(HA-Cluster)f(not)m(w)m
+(endigen,)k(K)m(omp)s(onen)m(ten)f(eingliedert.)382 2796
+y Fj(6.1)130 b(Cluster)45 b(Managemen)l(t)382 3038 y
+Fp(Die)24 b(w)m(ohl)i(wic)m(h)m(tigste)g(K)m(omp)s(onen)m(te)h(eines)d
+(HA-Clusters)g(ist)g(der)h(Cluster-Manager.)382 3151
+y(Dab)s(ei)37 b(handelt)i(es)e(sic)m(h)h(um)g(eine)g(v)m(erteilte)h
+(Applik)-5 b(ation,)40 b(die)e(b)s(estimm)m(t,)j(w)m(elc)m(he)382
+3264 y(Knoten)23 b(T)-8 b(eil)22 b(des)g(Clusters)f(sind,)j(und)e(die)g
+(zur)g(Laufzeit)g(not)m(w)m(endige)j(K)m(on\034guration)382
+3377 y(der)31 b(Subsysteme)f(v)m(ornimm)m(t,)j(die)d(den)h(Cluster)g
+(bilden.)382 3654 y Fo(6.1.1)112 b(Struktur)382 3864
+y Fn(6.1.1.1)103 b(Mem)m(b)s(ership)382 4074 y Fp(Der)35
+b(Cluster-Manager)i(m)m(u\377)f(st\344ndig)f(\374b)s(erpr\374fen,)i(ob)
+e(alle)h(am)f(Cluster)h(b)s(eteilig-)382 4187 y(ten)h(Knoten)h(no)s(c)m
+(h)f(funktionieren.)61 b(Dies)37 b(wird)g(in)g(der)g(Regel)g(dadurc)m
+(h)i(realisiert,)382 4300 y(da\377)g(auf)f(jedem)h(Knoten)g(des)g
+(Clusters)f(eine)h(Instanz)g(eines)f(Daemons)h(l\344uft)g(und)382
+4413 y(diese)f(Programme)j(sogenann)m(te)f(Heartb)s(eat-P)m(ak)m(ete)g
+(austausc)m(hen.)66 b(Stellen)39 b(diese)382 4526 y(Programme)33
+b(fest,)d(da\377)h(v)m(on)g(einem)g(Knoten)h(k)m(eine)f(Heratb)s(eat-P)
+m(ak)m(ete)j(mehr)d(emp-)382 4639 y(fangen)g(w)m(erden,)h(wird)f
+(dieser)f(Knoten)i(aus)e(dem)h(Cluster)g(ausgesc)m(hlossen.)382
+4790 y(W)-8 b(erden)21 b(v)m(on)g(einem)h(Knoten)f(wiederum)h(Heartb)s
+(eat-P)m(ak)m(ete)h(empfangen,)h(z.B.)c(nac)m(h)382 4903
+y(erfolgreic)m(her)25 b(Reparatur)e(durc)m(h)i(die)e
+(Systemadministratoren,)k(so)22 b(wird)i(dieser)f(wie-)382
+5016 y(der)31 b(in)f(den)h(Cluster)g(aufgenommen.)382
+5168 y(W)-8 b(enn)32 b(der)g(Cluster)g(durc)m(h)h(einen)f(Netzw)m(erk)
+-5 b(ausfall)32 b(in)g(zw)m(ei)g(Cluster)g(zerf\344llt)g(\(sog.)382
+5281 y(split)k(brain)g(problem\),)j(stellt)d(dies)g(die)g
+(Cluster-Managemen)m(t)j(Soft)m(w)m(are)f(v)m(or)e(eine)382
+5394 y(Herausforderung.)42 b(M\366glic)m(he)31 b(L\366sungen:)1831
+5622 y(62)p eop
+%%Page: 63 65
+63 64 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 518 539 a Fd(\017)46 b Fp(Einf\374hrung)32 b(des)e
+(Mehrheitsprinzips)609 652 y(Jener)41 b(T)-8 b(eil-Cluster,)45
+b(der)40 b(\374b)s(er)h(50)f(\045)g(der)h(Stimmen)g(hat,)i(\374b)s
+(ernimm)m(t)f(die)609 764 y(Services.)d(F)-8 b(alls)26
+b(der)g(Cluster)g(aus)f(einer)h(ungeraden)h(Anzahl)f(v)m(on)f(Knoten)i
+(b)s(e-)609 877 y(steh)m(t,)e(b)s(ek)m(omm)m(t)f(jeder)f(Knoten)g(eine)
+g(Stimme,)j(andernfalls)d(m)m(u\377)h(ein)e(Knoten)609
+990 y(zw)m(ei)37 b(Stimmen)h(hab)s(en.)59 b(T)-8 b(ritt)37
+b(der)g(Netzw)m(erk)-5 b(ausfall)37 b(gleic)m(hzeitig)h(mit)f(dem)609
+1103 y(Ausfall)28 b(eines)h(Knotens)h(auf,)f(dann)g(k)-5
+b(ann)29 b(es)f(dazu)h(k)m(ommen,)i(da\377)e(k)m(einer)g(der)609
+1216 y(b)s(eiden)f(T)-8 b(eil-Cluster)29 b(die)e(Mehrheit)h(hat)g(und)g
+(daher)g(auc)m(h)g(k)m(einer)g(die)g(Arb)s(eit)609 1329
+y(aufnimm)m(t.)518 1517 y Fd(\017)46 b Fp(Globaler)31
+b(Lo)s(c)m(k)609 1630 y(In)37 b(einem)h(Cluster)f(mit)h(einer)f(Shared)
+h(Disk,)h(\374b)s(ernimm)m(t)f(der)g(T)-8 b(eil-Cluster)609
+1742 y(die)31 b(Arb)s(eit,)f(die)h(einen)g(Lo)s(c)m(k)g(auf)f(der)g
+(Shared)i(Disk)d(b)s(elegen)i(k)-5 b(ann.)518 1930 y
+Fd(\017)46 b Fp(Redundan)m(te)32 b(K)m(omm)m(unik)-5
+b(ationsw)m(ege)609 2043 y(Abgesehen)26 b(v)m(on)g(redundan)m(ter)i
+(Auslegung)e(des)g(Netzw)m(erk)m(es)h(sind)e(auc)m(h)i(nic)m(h)m(t)609
+2156 y(IP-basierende)49 b(V)-8 b(erbindungen)49 b(sehr)e(b)s(eliebt,)k
+(z.B.)d(serielle)f(Kab)s(el,)52 b(USB.)609 2269 y(Sollte)41
+b(aus)f(irgendeinem)i(Grund)f(das)f(do)s(c)m(h)g(k)m(omplexe)h
+(IP-Subsystem)g(des)609 2382 y(Kernels)29 b(nic)m(h)m(t)h(mehr)f
+(funktionieren,)h(so)e(ist)g(K)m(omm)m(unik)-5 b(ation)31
+b(\374b)s(er)e(die)f(seri-)609 2495 y(elle)j(V)-8 b(erbindung)32
+b(no)s(c)m(h)f(m\366glic)m(h.)382 2784 y Fn(6.1.1.2)103
+b(Service)382 3006 y Fp(Der)43 b(V)-8 b(orteil)43 b(eines)g
+(HA-Clusters)f(f\374r)h(den)g(An)m(w)m(ender)h(ist,)h(da\377)e(ihm)g(b)
+s(estimm)m(te)382 3119 y(Services)c(\(o)s(d.)66 b(Applik)-5
+b(ationen\))40 b(p)s(ermanen)m(t)h(zur)e(V)-8 b(erf\374gung)40
+b(stehen.)67 b(Hier)38 b(m)m(u\377)382 3232 y(der)j(Cluster-Manager)h
+(eine)g(Sc)m(hnittstelle)g(bieten,)j(so)s(da\377)40 b(er)h(dieses)f
+(Service)i(auf)382 3345 y(v)m(ersc)m(hiedenen)34 b(Knoten)f(starten)g
+(und)f(stopp)s(en)g(k)-5 b(ann.)46 b(W)-8 b(eiters)32
+b(m)m(u\377)h(der)g(Cluster-)382 3458 y(Manager)38 b(\374b)s(er)f(die)g
+(f\374r)g(die)g(Services)g(not)m(w)m(endigen)j(Ressourcen)d(informiert)
+i(sein)382 3570 y(und)31 b(feststellen)f(k)m(\366nnen,)i(ob)e(das)h
+(Service)f(k)m(orrekt)h(arb)s(eitet.)42 b(Eine)31 b(Ressource,)f(die)
+382 3683 y(eigen)m(tlic)m(h)j(jedes)d(Service)h(hat,)f(ist)h(zumindest)
+g(eine)g(IP-A)m(dresse.)382 3973 y Fn(6.1.1.3)103 b(\334b)s(ernahme)34
+b(einer)h(IP-A)m(dresse)382 4195 y Fp(Normalerw)m(eise)f(b)s(ek)m(omm)m
+(t)f(jede)f(Netzw)m(erkk)-5 b(arte)33 b(eine)f(\034xe)g(IP-A)m(dresse,)
+h(die)f(un)m(ter)382 4308 y(anderem)k(auc)m(h)h(v)m(on)f(den)f(Heartb)s
+(eat-P)m(ak)m(eten)j(des)d(Cluster-Managers)i(adressiert)382
+4421 y(wird.)382 4583 y(Zus\344tzlic)m(h)31 b(k)-5 b(ann,)31
+b(w)m(enn)g(das)e(optionale)j(F)-8 b(eature)31 b(IP_ALIAS)f(b)s(ei)g
+(der)g(Kernelk)m(on-)382 4696 y(\034guration)e(angegeb)s(en)g(wurde,)g
+(jede)f(Netzw)m(erkk)-5 b(arte)28 b(eine)f(Reihe)g(v)m(on)g
+(zus\344tzlic)m(hen)382 4809 y(IP-A)m(dressen)i(b)s(ek)m(ommen.)41
+b(Diese)28 b(auc)m(h)h(virtuelle)g(IP-A)m(dressen)g(genann)m(ten)h(A)m
+(dres-)382 4922 y(sen)35 b(k)m(\366nnen)h(n)m(un)g(v)m(om)g
+(Cluster-Manager)g(b)s(eliebig)g(v)m(on)g(einem)f(Knoten)i(zum)e(an-)
+382 5035 y(deren)c(v)m(ersc)m(hob)s(en)h(w)m(erden.)382
+5198 y(Da)d(ab)s(er)g(b)s(ei)g(der)g(Daten)m(\374b)s(ertragung)j(auf)d
+(Ethernet)h(MA)m(C-A)m(dressen)2902 5165 y Fg(1)2971
+5198 y Fp(v)m(erw)m(endet)p 382 5259 1196 4 v 486 5313
+a Ff(1)520 5345 y Fe(Media)d(A)n(ccess)f(Con)n(trol)1831
+5622 y Fp(63)p eop
+%%Page: 64 66
+64 65 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 382 539 a Fp(w)m(erden)f(m)m(\374ssen,)g(hat)g(jedes)e(Ger\344t)i
+(am)f(Netz)g(einen)h(ARP-Cac)m(he)2725 506 y Fg(2)2766
+539 y Fp(.)39 b(W)-8 b(enn)30 b(ein)f(Ge-)382 652 y(r\344t)e(an)h(ein)f
+(anderes)h(Ger\344t)g(im)f(selb)s(en)g(Netz)g(ein)h(P)m(ak)m(et)h
+(senden)e(will,)i(m)m(u\377)f(es)f(zuv)m(or)382 764 y(dessen)g(MA)m
+(C-A)m(dresse)h(erfragen,)h(indem)f(es)g(ein)f(ARP-Request-P)m(ak)m(et)
+i(an)f(alle)f(Ge-)382 877 y(r\344te)36 b(im)g(Netzw)m(erksegmen)m(t)i
+(sc)m(hic)m(kt.)58 b(Das)36 b(Ger\344t,)i(das)d(die)i(gesuc)m(h)m(te)g
+(IP-A)m(dresse)382 990 y(hat,)43 b(an)m(t)m(w)m(ortet)f(darauf)f(mit)f
+(einem)h(ARP-Reply-P)m(ak)m(et,)i(das)d(an)g(den)g(Absender)382
+1103 y(des)31 b(Request-P)m(ak)m(etes)i(geric)m(h)m(tet)h(ist.)43
+b(Die)32 b(so)f(erhaltenen)i(Zuordn)m(ungen)h(zwisc)m(hen)382
+1216 y(IP-A)m(dressen)d(und)g(MA)m(C-A)m(dressen)g(w)m(erden)h(im)e
+(ARP-Cac)m(he)i(abgelegt.)382 1379 y(Diese)41 b(ARP-Cac)m(hes)h(in)f
+(den)h(anderen)g(Ger\344ten)g(im)g(Netzw)m(erksegmen)m(t)h(sind)e(ein)
+382 1492 y(Problem)31 b(b)s(ei)f(der)g(V)-8 b(ersc)m(hiebung)32
+b(v)m(on)e(virtuellen)h(IP-A)m(dressen.)41 b(In)29 b(diesen)i(Cac)m
+(hes)382 1605 y(k)-5 b(ann)36 b(nat\374rlic)m(h)h(die)f(MA)m(C-A)m
+(dresse,)i(die)e(der)g(IP-A)m(dresse)g(v)m(or)g(der)g(V)-8
+b(ersc)m(hiebung)382 1718 y(zugeordnet)32 b(w)m(ar,)f(en)m(thalten)i
+(sein.)382 1880 y(Durc)m(h)27 b(das)f(V)-8 b(ersenden)27
+b(v)m(on)f(ARP-Reply-P)m(ak)m(eten)i(an)e(die)g(Broadcast-A)m(dresse)i
+(des)382 1993 y(LAN-Segmen)m(tes)43 b(\(sog.)73 b(gratuitous)43
+b(ARP\))e(k)-5 b(ann)41 b(den)h(ARP-Cac)m(hes)g(der)g(Ger\344-)382
+2106 y(te)f(im)g(Segmen)m(t)h(die)f(neue)g(MA)m(C-A)m(dresse)g
+(mitgeteilt)i(w)m(erden.)73 b(Diese)40 b(Metho)s(de)382
+2219 y(geh)m(t)h(urspr\374nglic)m(h)h(auf)d(ein)h(P)m(osting)i
+(zur\374c)m(k,)h(das)d(ARP-Sp)s(o)s(o\034ng)g(als)f(Metho)s(de)382
+2332 y(b)s(esc)m(hreibt,)31 b(um)g(in)g(Computersysteme)g(einzubrec)m
+(hen.)43 b([Hor98)q(][V)-8 b(ol97)q(])382 2495 y(Dieses)28
+b(ARP-Reply-P)m(ak)m(et)h(m)m(u\377)g(regelm\344\377ig)h(v)m(ersendet)f
+(w)m(erden,)h(w)m(ob)s(ei)f(das)f(Zeit-)382 2608 y(in)m(terv)-5
+b(all)32 b(k\374rzer)e(sein)h(m)m(u\377)g(als)f(die)h(Zeit,)g(f\374r)f
+(die)h(ein)f(ARP-Cac)m(he)i(seine)e(Ein)m(tr\344ge)382
+2720 y(b)s(eh\344lt.)39 b(Denn)25 b(w)m(enn)g(die)g(Zuordn)m(ung)i(aus)
+d(einem)h(der)g(ARP-Cac)m(hes)h(gel\366sc)m(h)m(t)g(wird,)382
+2833 y(das)33 b(b)s(etro\033ene)g(Ger\344t)h(einen)g(ARP-Request)e
+(aussendet)i(und)f(das)g(Ger\344t,)h(das)f(die)382 2946
+y(virtuelle)42 b(IP-A)m(dresse)f(zuv)m(or)h(hatte,)i(diese)d(nic)m(h)m
+(t)i(ordn)m(ungsgem\344\377)g(en)m(tfern)m(t)g(hat,)382
+3059 y(k)m(\366nn)m(te)30 b(es)e(dazu)h(k)m(ommen,)h(da\377)f(v)m(om)g
+(ARP-Subsystem)g(dieses)f(Ger\344tes)h(ein)g(ARP-)382
+3172 y(Reply)h(mit)h(der)f(alten)h(MA)m(C-A)m(dresse)g(zur\374c)m
+(kgesendet)h(wird.)382 3462 y Fn(6.1.1.4)103 b(MA)m(C-A)m(dre\377\374b)
+s(ernahme)382 3683 y Fp(Eine)22 b(alternativ)m(e)h(Metho)s(de)e(w)m
+(\344re)i(es,)g(MA)m(C-A)m(dressen)f(zu)f(\374b)s(ernehmen.)39
+b(Bei)21 b(dieser)382 3796 y(Metho)s(de)28 b(ist)f(die)g(Aussendung)h
+(v)m(on)g(ARP-Reply-P)m(ak)m(eten)h(nic)m(h)m(t)g(not)m(w)m(endig,)h
+(ab)s(er)382 3909 y(b)s(ei)38 b(normalen)h(Netzw)m(erkk)-5
+b(arten)40 b(f\374hrt)e(dies)g(dazu,)i(da\377)f(die)f(\034xe)g(IP-A)m
+(dresse)g(der)382 4022 y(Karte)31 b(nic)m(h)m(t)h(v)m(erl\344\377lic)m
+(h)g(erreic)m(h)m(bar)h(ist.)382 4185 y(Diese)26 b(Metho)s(de)h(k)-5
+b(ann)27 b(daher)g(n)m(ur)g(dann)g(zuv)m(erl\344ssig)h(eingesetzt)f(w)m
+(erden,)i(w)m(enn)f(f\374r)382 4298 y(jede)41 b(virtuelle)h(IP-A)m
+(dresse)f(eine)h(eigene)g(Karte)g(in)f(jedem)g(Knoten)h(des)f(Clusters)
+382 4411 y(v)m(orhanden)32 b(ist.)382 4573 y(Die)e(Netzw)m(erkk)-5
+b(arten,)31 b(die)f(auf)g(dem)g(sog.)40 b(T)-8 b(ulip)31
+b(Chip)f(v)m(on)g(DEC)h(basieren,)f(hab)s(en)382 4686
+y(die)39 b(F\344higk)m(eit,)j(auf)c(bis)g(zu)h(14)1501
+4653 y Fg(3)1579 4686 y Fp(zus\344tzlic)m(he)h(MA)m(C-A)m(dressen)f
+(reagieren)h(zu)f(k)m(\366n-)382 4799 y(nen.)h(Diese)27
+b(F\344higk)m(eit)i(k)m(\366nn)m(te)g(man)f(ausn)m(\374tzen,)i(um)e(MA)
+m(C-A)m(dre\377\374b)s(ernahme)i(f\374r)382 4912 y(bis)35
+b(zu)h(14)g(virtuelle)g(IP-A)m(dressen)g(auf)g(einer)g(einzigen)h(T)-8
+b(ulip-basierten)38 b(Karte)e(zu)382 5025 y(implemen)m(tieren.)p
+382 5086 1196 4 v 486 5140 a Ff(2)520 5172 y Fe(A)n(ddress)25
+b(Resolution)h(Proto)r(col)486 5232 y Ff(3)520 5263 y
+Fe(Ein)h(T)-6 b(ulip)26 b(Chip)h(k)l(ann)e(16)j(MA)n(C-A)n(dressen,)e
+(eine)h(wird)g(f\374r)f(die)h(Broadcastadresse)i(und)c(eine)382
+5355 y(f\374r)h(die)f(\034xe)g(IP-A)n(dresse)g(b)r(en\366tigt.)1831
+5622 y Fp(64)p eop
+%%Page: 65 67
+65 66 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 382 539 a Fo(6.1.2)112 b(Cluster-Managemen)m(t-Soft)m(w)m(are)382
+757 y Fp(Da)31 b(es)f(lange)i(Zeit)f(\374b)s(erhaupt)h(k)m(eine)g
+(fertigen)f(L\366sungen)h(auf)f(diesem)h(Gebiet)f(gab,)382
+870 y(sind)e(zw)m(ei)h(sp)s(ezielle)f(Cluster-Manager)i(auf)e(der)g
+(Basis)g(v)m(on)g(Shell-Skripts)h(en)m(tstan-)382 983
+y(den.)48 b(Einer)34 b(v)m(erw)m(endet)h(MA)m(C-A)m(dre\377\374b)s
+(ernahme)h([Lew99)q(],)e(w)m(\344hrend)g(der)g(andere)382
+1095 y(ARP-P)m(ak)m(ete)e(v)m(erw)m(endet)g([Hor98)q(].)382
+1380 y Fn(6.1.2.1)103 b(Heartb)s(eat)382 1599 y Fp(Heartb)s(eat)32
+b([Rob00])f(ist)g(ein)h(Cluster-Manager,)h(der)f(\026)f(wie)h(der)g
+(Lin)m(ux-Kernel)h(\026)382 1712 y(nac)m(h)e(den)g(Regeln)g(der)f(GPL)h
+(frei)g(erh\344ltlic)m(h)h(ist.)382 1871 y(Die)f(K)m(on\034guration)j
+(v)m(on)e(Heartb)s(eat)f(wird)h(in)f(K)m(on\034gurations\034les)j(v)m
+(orgenommen,)382 1984 y(die)g(im)h(/etc/ha.d/)g(aller)g(Knotenrec)m
+(hner)i(abgelegt)e(w)m(erden)h(m)m(\374ssen.)52 b(Heartb)s(eat)382
+2097 y(stellt)30 b(die)h(K)m(onsistenz)h(dieser)e(K)m
+(on\034gurations\034les)j(nic)m(h)m(t)f(sic)m(her.)382
+2256 y(Heartb)s(eat)f(bietet)g(wie)g(in)f(den)h(v)m(origen)g(Absc)m
+(hnitten)h(b)s(esc)m(hrieb)s(en:)518 2505 y Fd(\017)46
+b Fp(\334b)s(erw)m(ac)m(h)m(ung)33 b(der)e(einzelnen)h(Knoten.)609
+2618 y(Dies)g(k)-5 b(ann)32 b(\374b)s(er)g(mehrere)i(IP-basierte)f
+(Netzw)m(erk)m(e)g(o)s(der)f(\374b)s(er)g(serielle)h(V)-8
+b(er-)609 2731 y(bindungen)24 b(erfolgen.)38 b(Solange)24
+b(Heartb)s(eat-P)m(ak)m(ete)g(\374b)s(er)e(eine)h(der)f(m\366glic)m
+(hen)609 2844 y(V)-8 b(erbindungen)24 b(ausgetausc)m(h)m(t)f(w)m(erden)
+g(k)m(\366nnen,)i(b)s(etrac)m(h)m(ten)f(sic)m(h)e(die)f(Knoten)609
+2957 y(als)30 b(leb)s(endig.)609 3106 y(Aus)21 b(diesem)i(V)-8
+b(erhalten)23 b(k)-5 b(ann)22 b(folgendes)g(Beispiel)g(k)m(onstruiert)h
+(w)m(erden:)37 b(Zw)m(ei)609 3219 y(Knoten)23 b(sind)e(mit)h(einem)h
+(Ethernetsegmen)m(t)h(und)e(einem)h(seriellen)f(Kab)s(el)g(v)m(er-)609
+3331 y(bunden,)29 b(die)f(Clien)m(ts)g(sind)g(eb)s(enfalls)f(an)h(das)f
+(Ethernetsegmen)m(t)j(angesc)m(hlos-)609 3444 y(sen.)57
+b(W)-8 b(enn)36 b(n)m(un)g(die)g(Netzw)m(erkk)-5 b(arte)37
+b(des)f(Knotens,)i(auf)d(dem)h(das)g(Service)609 3557
+y(l\344uft,)i(ausf\344llt,)g(b)s(el\344\377t)f(Heartb)s(eat)g(das)f
+(Service)h(auf)f(diesem)h(Knoten,)i(w)m(eil)609 3670
+y(die)29 b(b)s(eiden)g(Knoten)g(immer)h(no)s(c)m(h)f(\374b)s(er)f(das)h
+(serielle)g(Kab)s(el)g(k)m(omm)m(unizieren)609 3783 y(k)m(\366nnen.)609
+3932 y(Die)44 b(Heartb)s(eat-P)m(ak)m(ete,)51 b(die)44
+b(v)m(ersendet)h(w)m(erden,)50 b(k)m(\366nnen)45 b(nac)m(h)g(v)m(ersc)m
+(hie-)609 4045 y(denen)35 b(Metho)s(den)g(authen)m(ti\034ziert)i(w)m
+(erden,)g(so)s(da\377)d(auc)m(h)i(der)e(Betrieb)h(\374b)s(er)609
+4157 y(nic)m(h)m(t)d(v)m(ertrauensw\374rdige)h(Netze)e(m\366glic)m(h)h
+(ist.)518 4342 y Fd(\017)46 b Fp(V)-8 b(erw)m(altung)33
+b(ho)s(c)m(h)m(v)m(erf\374gbarer)g(Services.)609 4455
+y(Eine)27 b(laufende)g(Heartb)s(eat-Installation)h(k)-5
+b(ann)26 b(mehrere)h(Services)f(v)m(erw)m(alten,)609
+4568 y(w)m(ob)s(ei)40 b(eine)f(b)s(eliebige)h(Anzahl)g(v)m(on)f
+(Services)g(einer)h(virtuellen)g(IP-A)m(dresse)609 4681
+y(zugeordnet)32 b(w)m(erden)g(k)-5 b(ann.)40 b(Abh\344ngigk)m(eiten)32
+b(zwisc)m(hen)g(den)e(einzelnen)i(Ser-)609 4793 y(vices)e(k)m(\366nnen)
+i(nic)m(h)m(t)g(de\034niert)g(w)m(erden,)h(do)s(c)m(h)e(w)m(erden)h
+(die)f(Services)g(in)g(einer)609 4906 y(de\034nierten)h(Reihenfolge)e
+(gestartet,)h(w)m(\344hrend)h(sie)e(in)g(der)g(genau)h(umgek)m(ehr-)609
+5019 y(ten)g(Reihenfolge)g(gestoppt)g(w)m(erden.)609
+5168 y(Die)f(Services)f(w)m(erden)i(\374b)s(er)f(Shell-Skripten,)h(wie)
+f(sie)f(auc)m(h)i(v)m(om)e(init)h(Proze\377)609 5281
+y(v)m(erw)m(endet)46 b(w)m(erden,)j(gesteuert,)f(w)m(ob)s(ei)c(auc)m(h)
+h(\034xe)f(P)m(arameter)i(\374b)s(ergeb)s(en)609 5394
+y(w)m(erden)32 b(k)m(\366nnen.)1831 5622 y(65)p eop
+%%Page: 66 68
+66 67 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 609 539 a Fp(Die)26 b(\334b)s(ernahme)g(v)m(on)g(IP-A)m(dressen)h
+(wird)f(eb)s(enfalls)f(v)m(on)h(einem)h(Shell)f(Skript)609
+652 y(implemen)m(tiert)33 b(und)e(gliedert)g(sic)m(h)g(so)f(in)h(das)f
+(K)m(on\034gurationssc)m(hema)k(ein.)518 828 y Fd(\017)46
+b Fp(\334b)s(erw)m(ac)m(h)m(ung)33 b(der)e(Services)f(ist)g(nic)m(h)m
+(t)i(implemen)m(tiert.)609 941 y(Die)j(einzige)h(M\366glic)m(hk)m(eit,)
+h(dies)e(zu)g(erreic)m(hen)i(ist)d(der)h(Einsatz)h(eines)f(eigen-)609
+1054 y(st\344ndigen)k(Programmes,)j(das)c(die)g(V)-8
+b(erf\374gbark)m(eit)40 b(des)e(Services)g(\374b)s(erpr\374ft)609
+1167 y(und,)c(falls)f(diese)g(nic)m(h)m(t)h(mehr)g(gegeb)s(en)f(ist,)h
+(den)f(lok)-5 b(alen)33 b(Heartb)s(eat-Proze\377)609
+1280 y(mit)g(einem)h(Signal)f(b)s(eendet.)48 b(Dies)32
+b(hat)h(nat\374rlic)m(h)i(den)e(Nac)m(h)m(teil,)i(da\377)e(nic)m(h)m(t)
+609 1393 y(n)m(ur)28 b(das)e(ausgefallene)i(Service)f(sondern)g(alle)g
+(Services,)h(die)f(auf)g(diesem)g(Kno-)609 1506 y(ten)k(laufen,)g(v)m
+(on)f(dem)h(Knoten)h(abgesiedelt)f(w)m(erden.)518 1683
+y Fd(\017)46 b Fp(Dynamisc)m(he)32 b(\304nderung)f(der)g(K)m
+(on\034guration.)609 1795 y(Es)20 b(gibt)h(eine)g(K)m
+(ommandozeilenoption,)27 b(mit)20 b(der)h(man)g(eine)g(laufende)g
+(Heartb)s(eat-)609 1908 y(Instanz)i(dazu)h(b)s(ew)m(egen)g(k)-5
+b(ann,)25 b(ihre)e(K)m(on\034gurationsdateien)k(neu)c(einzulesen.)609
+2021 y(W)-8 b(enn)38 b(dab)s(ei)f(ein)g(Service)h(aus)f(der)g(K)m
+(on\034guration)j(en)m(tfern)m(t)f(wurde,)g(k)m(enn)m(t)609
+2134 y(Heartb)s(eat)g(dieses)g(Service)g(nic)m(h)m(t)h(mehr)g(und)f
+(sorgt)g(daher)g(nic)m(h)m(t)h(mehr)g(f\374r)609 2247
+y(eine)31 b(ordn)m(ungsgem\344\377e)i(Beendigung.)382
+2466 y(Die)f(bisherige)h(En)m(t)m(wic)m(klung)i(v)m(on)d(Heartb)s(eat)h
+(hat)f(sic)m(h)h(auf)e(den)i(Einsatz)g(v)m(on)f(Ser-)382
+2579 y(vices)26 b(b)s(esc)m(hr\344nkt,)i(die)f(ihre)g(Daten)f(en)m(t)m
+(w)m(eder)k(selbst)c(replizieren)i(k)m(\366nnen,)g(o)s(der)f(b)s(ei)382
+2692 y(denen)39 b(die)f(Daten)h(mit)g(Hilfe)e(anderer)j(Mec)m(hanismen)
+f(repliziert)h(w)m(erden.)65 b(So)39 b(ist)382 2805 y(Heartb)s(eat)31
+b(bis)f(jetzt)g(v)m(or)h(allem)g(mit)g(folgenden)g(Services)g
+(eingesetzt)g(w)m(orden:)518 3024 y Fd(\017)46 b Fp(DNS-Serv)m(er)609
+3137 y(Die)34 b(Zonen\034les)h(des)f(DNS-Dienstes)g(m)m(\374ssen)g(b)s
+(ei)g(einer)g(\304nderung)h(man)m(uell)609 3250 y(repliziert)d(w)m
+(erden.)518 3426 y Fd(\017)46 b Fp(HTTP-Pro)m(xy-Cac)m(he)609
+3539 y(Ein)31 b(Pro)m(xy)f(k)-5 b(ann)30 b(im)g(F)-8
+b(alle)31 b(des)e(V)-8 b(erlustes)30 b(seines)g(Cac)m(he-Inhaltes)i
+(seine)e(Ar-)609 3652 y(b)s(eit)45 b(wieder)h(aufnehmen,)k(da)45
+b(er)g(die)h(W)-8 b(eb-Seiten)46 b(wieder)g(v)m(on)g(ihren)f(ur-)609
+3765 y(spr\374nglic)m(hen)33 b(Lok)-5 b(ationen)31 b(holen)g(k)-5
+b(ann.)518 3942 y Fd(\017)46 b Fp(W)-8 b(eb-Serv)m(er)609
+4055 y(Die)23 b(W)-8 b(eb-Seiten)24 b(m)m(\374ssen)f(im)f(F)-8
+b(alle)23 b(einer)g(\304nderung)h(man)m(uell)g(repliziert)f(w)m(er-)609
+4168 y(den,)31 b(z.B.)g(mit)f(rsync.)518 4345 y Fd(\017)46
+b Fp(Lin)m(ux)32 b(Virtual)e(Serv)m(er)i(\(L)-10 b(VS\))609
+4458 y(Der)27 b(Lastaufteiler)h(\(load)g(balancer\))g(eines)f(W)-8
+b(eb-Serv)m(er)28 b(Clusters)f(\(siehe)h(Ab-)609 4570
+y(sc)m(hnitt)39 b(2.2.2)g(auf)f(Seite)g(8\))g(ist)g(ein)g(SPOF)h
+(f\374r)f(den)g(ganzen)h(Cluster.)64 b(Der)609 4683 y(Zustand,)33
+b(der)f(f\374r)g(L)-10 b(VS)31 b(v)m(on)i(Bedeutung)g(ist,)e(b)s
+(e\034ndet)i(sic)m(h)f(direkt)g(im)g(Ker-)609 4796 y(nel.)41
+b(Man)30 b(nimm)m(t)i(den)f(V)-8 b(erlust)31 b(dieses)f(Zustandes)h(b)s
+(eim)f(F)-8 b(ailo)m(v)m(er)32 b(in)f(Kauf.)382 5070
+y Fn(6.1.2.2)103 b(Lin)m(uxF)-9 b(ailSafe)382 5281 y
+Fp(Lin)m(uxF)h(ailSa)m(v)m(e)37 b(ist)d(die)g(P)m(ortierung)j(v)m(on)d
+(SGIs)f(F)-8 b(ailSa)m(v)m(e)36 b(f\374r)e(IRIX,)f(das)h(eb)s(enfalls)
+382 5394 y(un)m(ter)43 b(der)f(GPL)g(v)m(er\366\033en)m(tlic)m(h)m(t)j
+(w)m(erden)f(soll.)74 b(Bisher)42 b(ist)g(allerdings)h(no)s(c)m(h)f(k)m
+(ein)1831 5622 y(66)p eop
+%%Page: 67 69
+67 68 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 1164 1447 a @beginspecial 22 @llx 696 @lly 193 @urx
+816 @ury 1710 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//FailSafe.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Tue Apr 4 15:55:26 2000
+%%Title: FailSafe.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 22 696 193 816
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[28.3465 0 0 -5.66928 127.559 728.504] ellipse
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[28.3465 0 0 -5.66928 127.559 708.661] 5.38297e-06 3.14159 0 ellipse
+0.992126 w
+1 J
+S
+newpath
+99.2126 728.504 m
+99.2126 708.661 l
+1 j
+S
+newpath
+155.906 728.504 m
+155.906 708.661 l
+0 j
+S
+/Times-Roman 12 sf
+(C) [0.996017 -0.0891609 0 1 116.22 709.145] T
+(D) [0.999959 0.0090827 0 1 124.199 708.439] T
+(B) [0.992105 0.125414 0 1 132.876 708.467] T
+[56.6929 0 0 -19.8425 28.3465 722.835] rect
+1 w
+0 J
+S
+[56.6929 0 0 -19.8425 28.3465 748.346] rect
+S
+[56.6929 0 0 -19.8425 28.3465 773.858] rect
+S
+[56.6929 0 0 -19.8425 68.0316 810.71] rect
+S
+[56.6929 0 0 -19.8425 130.394 810.71] rect
+S
+[56.6929 0 0 -19.8425 99.2126 773.858] rect
+S
+(CMS)
+44 708 T
+(GCS)
+46 734 T
+(SRM)
+44 759 T
+(CAD)
+116 759 T
+newpath
+68.0316 790.867 m
+99.2128 773.859 l
+0.283465 w
+S
+newpath
+124.725 790.867 m
+127.559 773.859 l
+S
+newpath
+187.087 790.867 m
+155.906 773.859 l
+S
+newpath
+130.394 790.867 m
+127.559 773.859 l
+S
+(GUI Tools)
+70 796 T
+(CLI Tools)
+134 796 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1078 1643 a Fp(Abbildung)h(6.1:)41 b(Arc)m(hitektur)31
+b(v)m(on)g(F)-8 b(ailSafe)382 1918 y(Quelltext)31 b(v)m(er\366\033en)m
+(tlic)m(h)m(t)j(w)m(orden.)382 2081 y(F)-8 b(ailSa)m(v)m(e)32
+b(b)s(esteh)m(t)f(aus)f(folgenden)i(T)-8 b(eilen:)518
+2343 y Fd(\017)46 b Fp(CMS)31 b(\(Cluster)g(Mem)m(b)s(ership)g
+(Service\))609 2456 y(Dieses)22 b(Subsystem)h(\374b)s(erw)m(ac)m(h)m(t)
+i(alle)e(Knoten)g(durc)m(h)h(das)e(st\344ndige)h(V)-8
+b(ersenden)609 2569 y(v)m(on)31 b(Heartb)s(eat-P)m(ak)m(eten.)518
+2757 y Fd(\017)46 b Fp(GCS)31 b(\(Group)g(Comm)m(unication)i(Service\))
+609 2870 y(Dieses)d(Subsystem)g(baut)g(auf)g(das)g(CMS)f(auf)h(und)h
+(stellt)f(den)g(An)m(w)m(endungen)609 2983 y(eine)f(k)m(onsisten)m(te)g
+(Sic)m(h)m(t)h(v)m(on)f(Proze\377grupp)s(en)i(zur)d(V)-8
+b(erf\374gung)29 b(und)g(sorgt)g(f\374r)609 3095 y(eine)i(zuv)m
+(erl\344ssige)g(Zustellung)h(v)m(on)e(Nac)m(hric)m(h)m(ten.)518
+3283 y Fd(\017)46 b Fp(SRM)30 b(\(System)g(Resource)h(Manager\))609
+3396 y(Der)49 b(SRM)e(baut)i(auf)g(die)f(F)-8 b(unktionalit\344t)51
+b(des)d(GCS)h(auf)f(und)h(v)m(erw)m(altet)609 3509 y(alle)44
+b(clusterw)m(eiten)i(Ressourcen)d(wie:)67 b(Shared)44
+b(Disks,)i(Dateisysteme,)h(IP-)609 3622 y(A)m(dressen,)31
+b(Services)f(und)h(frei)g(de\034nierbare)h(Ressourcen.)518
+3809 y Fd(\017)46 b Fp(CDB)31 b(\(Cluster)g(Con\034guration)h
+(Database\))609 3922 y(Diese)22 b(Daten)m(bank)g(hat)g(ein)g
+(einheitlic)m(hes)h(In)m(terface)g(f\374r)e(Applik)-5
+b(ationen,)24 b(w)m(\344h-)609 4035 y(rend)31 b(am)g(Bac)m(k)m(end)h(v)
+m(ersc)m(hiedene)g(Implemen)m(tierungen)h(v)m(orhanden)f(sind.)609
+4186 y(Diese)39 b(Daten)m(bank)i(wird)e(auf)g(mehreren)i(Knoten)f(des)f
+(Clusters)g(redundan)m(t)609 4298 y(abgelegt,)46 b(und,)f(falls)d(ein)g
+(Knoten)h(nac)m(h)g(einem)f(Ausfall)f(einen)i(v)m(eralteten)609
+4411 y(Datenstand)38 b(in)g(seiner)f(Daten)m(bank)i(hat,)g(wird)f
+(diese)f(k)m(omplett)i(durc)m(h)f(den)609 4524 y(Datenstand)32
+b(einer)f(aktuellen)g(Daten)m(bank)h(ersetzt.)382 4787
+y(F)-8 b(ailSafe)30 b(k)-5 b(ann)29 b(Cluster)h(bis)f(zu)h(16)f(Knoten)
+i(v)m(erw)m(alten)g(und)f(bietet)g(un)m(ter)g(anderem)382
+4900 y(folgende)h(F)-8 b(eatures:)518 5162 y Fd(\017)46
+b Fp(Lok)-5 b(ale)28 b(\334b)s(erw)m(ac)m(h)m(ung)i(eines)d(Services,)i
+(so)m(w)m(ohl)f(passiv)f(\(z.B.)h(\334b)s(erw)m(ac)m(h)m(ung,)609
+5275 y(ob)33 b(ein)g(Proze\377)h(no)s(c)m(h)f(v)m(orhanden)h(ist\))e
+(als)h(auc)m(h)g(aktiv)g(\(z.B.)g(Daten)m(bank)-5 b(ab-)609
+5388 y(frage,)31 b(HTTP-Anfrage,)g(.)15 b(.)g(.)g(\))1831
+5622 y(67)p eop
+%%Page: 68 70
+68 69 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)187
+b(6.1.)71 b(CLUSTER)31 b(MANA)m(GEMENT)p 382 299 2989
+4 v 518 539 a Fd(\017)46 b Fp(Lok)-5 b(ales)28 b(F)-8
+b(ailo)m(v)m(er,)30 b(w)m(egen)e(F)-8 b(ehler)28 b(in)g(der)f(Soft)m(w)
+m(are)i(die)f(das)f(Service)h(an)m(bietet)609 652 y(\(siehe)j(Absc)m
+(hnitt)g(2.3.2)g(auf)f(Seite)h(11\))518 825 y Fd(\017)46
+b Fp(F)-8 b(estlegung)32 b(der)f(F)-8 b(ailo)m(v)m(er-Reihenfolge)609
+938 y(F\374r)26 b(ein)g(Service)g(gibt)g(es)g(eine)g(geordnete)h(Liste)
+f(an)g(Knoten.)40 b(Ist)25 b(die)h(Ausf\374h-)609 1051
+y(rung)38 b(des)e(Services)h(auf)g(dem)g(ersten)g(Knoten)h(m\366glic)m
+(h,)i(so)c(\034ndet)i(sie)e(auc)m(h)609 1164 y(dort)31
+b(statt,)g(andernfalls)g(wird)g(der)f(n\344c)m(hste)i(Knoten)f(der)g
+(Liste)g(b)s(etrac)m(h)m(tet.)609 1307 y(Dadurc)m(h)25
+b(ist)e(die)g(Realisierung)h(einer)f(sog.)38 b(Stern-Arc)m(hitektur)26
+b(m\366glic)m(h.)39 b(Da-)609 1420 y(b)s(ei)28 b(ist)g(ein)g(Knoten)i
+(des)e(Clusters)g(als)g(Bac)m(kup-Knoten)i(f\374r)e(mehrere)i(andere)
+609 1533 y(Knoten)i(und)e(deren)h(Services)g(abgestellt.)518
+1706 y Fd(\017)46 b Fp(Priorit\344ten)32 b(der)f(Services)609
+1819 y(Beispiel:)47 b(Es)34 b(laufen)f(zw)m(ei)i(Services)f(auf)f
+(einem)h(Knoten,)h(die)f(b)s(eide)g(ein)g(b)s(e-)609
+1932 y(stimm)m(tes)46 b(Filesystem)e(\(gemeinsame)i(Ressource\))f(b)s
+(en\366tigen.)84 b(W)-8 b(enn)45 b(ein)609 2045 y(Service)e(auf)e
+(diesem)i(Knoten)f(nic)m(h)m(t)i(mehr)e(gestartet)h(w)m(erden)g(k)-5
+b(ann,)45 b(k)-5 b(ann)609 2158 y(festgelegt)39 b(w)m(erden,)i(ob)e
+(dann)f(b)s(eide)g(Services)h(auf)f(einen)g(anderen)h(Knoten)609
+2271 y(migriert)g(w)m(erden)g(o)s(der)f(ob)g(auf)f(das)h(ausgefallene)h
+(Service)f(v)m(erzic)m(h)m(tet)i(wird)609 2384 y(und)h(somit)g(das)f
+(laufende)h(Service)g(k)m(einer)h(Migration)f(un)m(terzogen)i(w)m
+(erden)609 2497 y(m)m(u\377.)518 2670 y Fd(\017)j Fp(W\344hrend)23
+b(der)f(Laufzeit)h(des)e(Clusters)h(k)m(\366nnen)h(Ressourcen)f
+(hinzugef\374gt)h(und)609 2783 y(w)m(eggenommen)33 b(w)m(erden.)382
+3052 y Fn(6.1.2.3)103 b(Mon)382 3260 y Fp(Mon)46 b(ist)f(zw)m(ar)i(k)m
+(eine)f(Cluster-Managmen)m(t)j(Soft)m(w)m(are,)i(bietet)c(daf\374r)f
+(ab)s(er)f(sehr)382 3373 y(\035exible)37 b(M\366glic)m(hk)m(eiten,)j
+(Netzw)m(erkinfrastruktur)e(und)f(Dienste)f(im)h(Netzw)m(erk)g(zu)382
+3486 y(\374b)s(erw)m(ac)m(hen,)d(und)e(wird)g(aus)f(diesem)h(Grund)g
+(auc)m(h)g(in)g(vielen)f(Artik)m(eln)h(\374b)s(er)g(hohe)382
+3599 y(V)-8 b(erf\374gbark)m(eit)41 b(un)m(ter)f(Lin)m(ux)h(erw)m
+(\344hn)m(t.)70 b(Mon)39 b(ist)g(ein)h(Daemon,)i(der)e(in)g(P)m(erl)g
+(ge-)382 3711 y(sc)m(hrieb)s(en)32 b(wurde)f(und)g(un)m(ter)h(der)f
+(GPL)h(w)m(eitergegeb)s(en)h(wird.)42 b(Im)30 b(folgenden)i(eine)382
+3824 y(kurze)e(Besc)m(hreibung)j(der)d(F)-8 b(eatures:)382
+4030 y Fn(Monitor)45 b Fp(Ein)35 b(Monitor)g(ist)f(ein)h(kleines)g
+(Programm,)i(das)d(v)m(om)h(Mon-Proze\377)h(ge-)609 4143
+y(startet)c(wird,)g(eine)f(Ressource)g(\374b)s(erpr\374ft)g(und)h(das)f
+(Ergebnis)h(an)f(den)g(Mon-)609 4256 y(Proze\377)c(zur\374c)m
+(kliefert.)40 b(Mit)25 b(Mon)h(w)m(erden)g(b)s(ereits)g(eine)g(Anzahl)f
+(solc)m(her)i(Pro-)609 4369 y(gramme)34 b(mitgeliefert:)48
+b(ICMP)33 b(ec)m(ho)h(\(ping\),)h(SMTP)-8 b(,)34 b(telnet,)h(FTP)-8
+b(,)34 b(NNTP)-8 b(,)609 4482 y(HTTP)g(,)28 b(POP-3,)h(IMAP)-8
+b(,)26 b(Disk)g(space,)i(LD)m(AP)-8 b(,)28 b(DNS,)f(mSQL,)g(m)m(ySQL,)h
+(RPC)609 4595 y(und)j(mehrere)g(SNMP-basierte)h(T)-8
+b(ests.)382 4769 y Fn(Async)m(hrone)34 b(Ereignisse)45
+b Fp(Mon)27 b(k)-5 b(ann)26 b(auc)m(h)h(auf)f(async)m(hrone)i
+(Ereignisse)f(reagie-)609 4881 y(ren.)70 b(Die)40 b(Referenzan)m(w)m
+(endung)j(f\374r)c(diese)h(F\344higk)m(eit)i(ist)d(das)h(Empfangen)609
+4994 y(und)31 b(die)g(Ausw)m(ertung)g(v)m(on)g(SNMP-T)-8
+b(raps.)382 5168 y Fn(Alert)46 b Fp(Ein)28 b(Alert)f(ist)g(ein)g
+(Programm,)i(das)e(eine)h(Meldung)g(an)f(einen)g(Systemadmi-)609
+5281 y(nistrator)g(w)m(eitergeb)s(en)g(k)-5 b(ann.)39
+b(Bereits)26 b(v)m(orhanden)h(sind:)39 b(Email,)27 b(P)m(ager)h(\(via)
+609 5394 y(Quic)m(kP)m(age,)33 b(SNPP)e(und)g(Email\))g(und)g(SNMP-T)-8
+b(raps.)1831 5622 y(68)p eop
+%%Page: 69 71
+69 70 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)725
+b(6.2.)71 b(FILESYSTEME)p 382 299 2989 4 v 382 539 a
+Fn(Abh\344ngigk)m(eiten)46 b Fp(Es)34 b(k)m(\366nnen)g(Abh\344ngigk)m
+(eiten)i(der)e(Netzw)m(erkressourcen)i(de\034-)609 652
+y(niert)30 b(w)m(erden,)h(so)s(da\377)d(z.B.)h(b)s(eim)h(Ausfall)e
+(eines)h(Routers)g(n)m(ur)h(dieser)f(Ausfall)609 764
+y(gemeldet)j(wird)f(und)g(nic)m(h)m(t)h(die)f(Ausf\344lle)f(aller)h
+(Dienste,)g(die)g(in)g(den)g(Netzen,)609 877 y(die)c(n)m(ur)g(\374b)s
+(er)f(den)h(eb)s(en)f(ausgefallenen)i(Router)e(erreic)m(h)m(bar)j
+(sind,)e(angeb)s(oten)609 990 y(w)m(erden.)382 1178 y
+Fn(Benac)m(hric)m(h)m(tigung)45 b Fp(Beliebige)28 b(Benac)m(hric)m(h)m
+(tigungen)k(k)m(\366nnen)d(an)e(jedes)h(Ereignis)609
+1291 y(gekn)m(\374pft)34 b(w)m(erden.)51 b(So)34 b(ist)f(es)g(auc)m(h)h
+(m\366glic)m(h,)i(einen)e(Bereitsc)m(haftsplan)h(mit)609
+1404 y(Mon)28 b(zu)h(realisieren.)41 b(F\344llt)29 b(z.B.)f(eine)h(b)s
+(estimm)m(te)g(Ressource)f(zwisc)m(hen)i(8:00)609 1517
+y(und)h(18:00)h(aus,)f(wird)g(an)g(alle)g(P)m(ager)i(der)e(A)m
+(dministratoren)i(eine)e(Nac)m(hric)m(h)m(t)609 1630
+y(gesendet.)38 b(T)-8 b(ritt)22 b(der)f(Ausfall)f(in)h(der)g(Nac)m(h)m
+(t)h(auf,)h(wird)e(n)m(ur)h(ein)f(A)m(dministrator)609
+1742 y(p)s(er)30 b(P)m(ager)i(b)s(enac)m(hric)m(h)m(tigt.)382
+1930 y Fn(F)-9 b(ron)m(tend)46 b Fp(F\374r)27 b(die)h(A)m
+(dministration)h(und)f(Best\344tigung)g(v)m(on)g(Nac)m(hric)m(h)m(ten)i
+(stehen)609 2043 y(K)m(ommandozeilen-T)-8 b(o)s(ols)31
+b(und)d(ein)f(W)-8 b(eb-F)g(ron)m(tend)30 b(zur)e(V)-8
+b(erf\374gung.)41 b(Die)27 b(Er-)609 2156 y(stellung)k(w)m(eiterer)h(F)
+-8 b(ron)m(tends)32 b(ist)e(v)m(orgesehen.)382 2492 y
+Fj(6.2)130 b(Filesysteme)382 2745 y Fp(Ext2)33 b(ist)f(das)g(einzige)h
+(der)g(hier)g(v)m(orgestellten)g(Dateisysteme,)h(das)e(momen)m(tan)i
+(ein)382 2858 y(Bestandteil)c(v)m(on)g(Lin)m(ux)h(ist.)40
+b(Die)29 b(anderen)i(w)m(erden)g(alle)f(no)s(c)m(h)g(extern)g(v)m(om)g
+(Kernel)382 2971 y(w)m(eiteren)m(t)m(wic)m(k)m(elt.)382
+3133 y(Die)c(wic)m(h)m(tigste)j(Eigensc)m(haft,)g(die)d(ein)h
+(Dateisystem)g(mitbringen)h(m)m(u\377,)g(um)f(f\374r)f(den)382
+3246 y(Einsatz)c(auf)f(einem)i(HA-Cluster)e(geeignet)i(zu)e(sein,)j
+(ist)d(die)g(rasc)m(he)i(Einsatzf\344higk)m(eit)382 3359
+y(nac)m(h)31 b(einem)g(Absturz.)382 3652 y Fo(6.2.1)112
+b(ext2)382 3874 y Fp(Das)33 b(Grundk)m(onzept)i(v)m(on)f(ext2)g
+([BBDK97][HHMK94)q(][Rus98])f(ist)g(dem)h(des)f(BSD)382
+3987 y(FFS)28 b(sehr)h(\344hnlic)m(h.)41 b(Das)29 b(Design)f(v)m(on)h
+(BSD)g(FFS)f(stamm)m(t)i(aus)e(einer)h(Zeit,)h(als)e(eine)382
+4100 y(K)m(onsistenzpr\374fung)i(des)f(Filesystems)f(aufgrund)h(der)g
+(damals)g(\374blic)m(hen)h(Gr\366\377e)f(der)382 4213
+y(F)-8 b(estplatten)32 b(in)e(annehm)m(barer)j(Zeit)e(durc)m
+(hgef\374hrt)h(w)m(erden)g(k)m(onn)m(te.)382 4375 y(Mit)d(ext2)g(k)m
+(\366nnen)i(theoretisc)m(h)f(Filesysteme)g(mit)f(einer)h(Gr\366\377e)g
+(v)m(on)g(bis)f(zu)g(16)g(T)-8 b(er-)382 4488 y(rab)m(yte)41
+b(angelegt)h(w)m(erden.)73 b(Dies)41 b(ergibt)g(sic)m(h)g(daraus,)j
+(da\377)d(ext2)g(32)g(Bit)g(f\374r)f(die)382 4601 y(A)m(dressierung)46
+b(der)f(Bl\366)s(c)m(k)m(e)g(v)m(erw)m(endet)i(und)e(mit)g(einer)h
+(maximalen)g(Blo)s(c)m(kgr\366\377e)382 4714 y(v)m(on)30
+b(4K)g(arb)s(eiten)h(k)-5 b(ann)29 b Fh(\(2)1348 4681
+y Fb(32)1443 4714 y Fd(\003)19 b Fh(2)1552 4681 y Fb(12)1653
+4714 y Fh(=)25 b(2)1794 4681 y Fb(44)1869 4714 y Fh(\))p
+Fp(.)40 b(Ber\374c)m(ksic)m(h)m(tigt)33 b(man)d(jedo)s(c)m(h,)g(da\377)
+h(das)382 4827 y(IO-Subsystem)37 b(des)g(Kernels)h(alle)g(Blo)s(c)m(kn)
+m(ummern)h(in)e(Sektorn)m(ummern)j(umrec)m(h-)382 4940
+y(net,)32 b(so)f(ist)g(die)g(maximale)i(Gr\366\377e)e(einer)h(P)m
+(artition)h(auf)f(32-Bit-Plattformen)h(auf)e(2)382 5053
+y(T)-8 b(erab)m(yte)32 b(b)s(esc)m(hr\344nkt)f Fh(\(2)1301
+5020 y Fb(32)1397 5053 y Fd(\003)20 b Fh(2)1507 5020
+y Fb(9)1573 5053 y Fh(=)25 b(2)1714 5020 y Fb(41)1789
+5053 y Fh(\))p Fp(.)382 5215 y(Nimm)m(t)d(man)g(an,)h(da\377)f(die)g(K)
+m(onsistenzpr\374fung)h(pro)f(GB)f(et)m(w)m(a)i(60)e(Sekunden)h
+(dauert,)382 5328 y(w\374rde)44 b(die)g(K)m(onsistenzpr\374fung)h
+(eines)e(2-TB-Filesystems)h(et)m(w)m(a)g(33)g(Stunden)g(in)1831
+5622 y(69)p eop
+%%Page: 70 72
+70 71 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)725
+b(6.2.)71 b(FILESYSTEME)p 382 299 2989 4 v 382 539 a
+Fp(Anspruc)m(h)31 b(nehmen)1094 506 y Fg(4)1135 539 y
+Fp(.)382 701 y(Diese)39 b(Absc)m(h\344tzung)h(soll)f(n)m(ur)g(die)h
+(m\366glic)m(he)g(Gr\366\377enordn)m(ung)i(v)m(erdeutlic)m(hen,)h(in)
+382 814 y(Wirklic)m(hk)m(eit)23 b(ist)f(die)g(Dauer)h(der)f(K)m
+(onsistenzpr\374fung)i(v)m(on)f(der)f(Anzahl)g(der)h(Dateien)382
+927 y(abh\344ngig.)63 b(Bei)37 b(einem)h(Dateisystem,)h(das)f(v)m(oll)f
+(mit)h(vielen)g(kleinen)f(Dateien)i(ist,)382 1040 y(k)-5
+b(ann)25 b(die)f(Zeit,)j(die)d(die)h(\334b)s(erpr\374fung)g(eines)g
+(Gigab)m(ytes)g(in)g(Anspruc)m(h)g(nimm)m(t,)i(\374b)s(er)382
+1153 y(den)k(angenommenen)h(60)f(Sekunden)g(liegen.)382
+1446 y Fo(6.2.2)112 b(ext3)382 1668 y Fp(Um)23 b(das)g(Problem)i(der)f
+(langen)g(K)m(onsistenzpr\374fung)i(zu)e(umgehen,)i(ist)d(ext3)g([T)-8
+b(w)m(e98)s(])382 1781 y(ein)25 b(Journaling-Filesystem.)40
+b(Dab)s(ei)25 b(w)m(erden)h(die)f(b)s(eabsic)m(h)m(tigten)h
+(\304nderungen)g(v)m(or)382 1893 y(einer)e(\304nderung)h(der)f
+(Metadatenstrukturen)i(im)e(Filesysstem)f(in)h(ein)g(Log)g(gesc)m
+(hrei-)382 2006 y(b)s(en.)46 b(Nac)m(h)32 b(der)h(erfolgreic)m(hen)h
+(Durc)m(hf\374hrung)g(der)e(\304nderungen)i(wird)e(dies)g(eb)s(en-)382
+2119 y(falls)e(im)g(Log)h(v)m(ermerkt.)382 2282 y(F\344llt)23
+b(der)g(Computer)h(irgendw)m(ann)h(w)m(\344hrend)g(dieser)e(Op)s
+(erationen)h(aus,)g(k)-5 b(ann)23 b(durc)m(h)382 2395
+y(erneute)g(Durc)m(hf\374hrung)h(der)e(letzten)g(Aktionen)h(im)f(Log)g
+(die)g(K)m(onsistenz)h(des)f(Filesy-)382 2508 y(stems)31
+b(wieder)h(hergestellt)g(w)m(erden,)h(ohne)e(da\377)h(ein)f(aufw)m
+(endiger)i(K)m(onsistenzc)m(hec)m(k)382 2621 y(not)m(w)m(endig)g(ist.)
+382 2783 y(Ext3)k(wird)h(so)m(w)m(ohl)g(Metadata-Journaling,)k(das)37
+b(n)m(ur)h(die)g(K)m(onsistenz)g(des)f(Datei-)382 2896
+y(systems)i(gew)m(\344hrleisten)i(k)-5 b(ann,)42 b(als)e(auc)m(h)g(v)m
+(olles)g(Journaling,)k(b)s(ei)39 b(dem)h(auc)m(h)h(der)382
+3009 y(ric)m(h)m(tige)j(Inhalt)f(aller)g(Dateien)g(im)g(F)-8
+b(alle)43 b(eines)f(Systemabsturzes)h(gew)m(\344hrleistet)382
+3122 y(w)m(erden)32 b(k)-5 b(ann,)30 b(un)m(terst\374tzen.)382
+3285 y(Ext3)g(ist)g(eine)g(Erw)m(eiterung)j(des)d(ext2-Filesystems,)g
+(das)g(Log)h(wird)f(in)g(einer)h(Datei)382 3398 y(auf)39
+b(dem)h(ext2-Filesystem)f(abgelegt.)69 b(Jedes)40 b(ext2-Filesystem)g
+(k)-5 b(ann)39 b(durc)m(h)i(An-)382 3511 y(legen)35 b(dieser)g
+(Logdatei)h(in)f(ein)g(ext3-Dateisystem)g(umgew)m(andelt)i(w)m(erden.)
+55 b(Es)35 b(ist)382 3624 y(sogar)30 b(m\366glic)m(h,)j(dieses)d
+(sp\344ter)g(wieder)i(mit)e(ext2)h(zu)f(b)s(etreib)s(en.)382
+3786 y(Leider)38 b(b)s(e\034ndet)g(sic)m(h)g(ext3)f(no)s(c)m(h)h(in)f
+(einem)h(sehr)f(fr\374hen)h(En)m(t)m(wic)m(klungsstadium,)382
+3899 y(und)31 b(die)f(Aufnahme)h(in)g(den)f(Lin)m(uxk)m(ern)j(ist)d(in)
+g(n\344c)m(hster)i(Zeit)f(nic)m(h)m(t)h(zu)e(erw)m(arten.)382
+4192 y Fo(6.2.3)112 b(ReiserFS)382 4414 y Fp(Die)30 b(Lizenz)i(v)m(on)f
+(ReiserFS)f([Reis99])g(ist)g(die)h(GPL)g(mit)g(einem)g(Zusatz)2899
+4381 y Fg(5)2939 4414 y Fp(.)382 4577 y(ReiserFS)i(ist)h(ein)f(k)m
+(omplett)i(neues)f(Design)g(und)g(w)m(eist)g(k)m(eine)g(\304hnlic)m(hk)
+m(eiten)i(zum)382 4690 y(BSD)43 b(FFS)g(auf.)78 b(In)42
+b(der)i(momen)m(tanen)h(Implemen)m(tierung)2551 4657
+y Fg(6)2636 4690 y Fp(w)m(erden)g(32)e(Bit)g(f\374r)p
+382 4751 1196 4 v 486 4805 a Ff(4)520 4836 y Fe(Dies)38
+b(ist)g(auc)n(h)f(der)g(Grund,)j(w)n(eshalb)e(das)f(neueste)h(F)-6
+b(eature)37 b(des)g(fsc)n(k.ext2)h(Utilities)g(eine)382
+4928 y(F)-6 b(ortsc)n(hrittsanzeige)27 b(ist.)486 4987
+y Ff(5)520 5019 y Fe(Die)f(Erw)n(eiterung)g(der)g(GPL)g(durc)n(h)e
+(Zus\344tze)i(ist)g(in)g(der)f(GPL)h(ausdr\374c)n(klic)n(h)f(v)n(erb)r
+(oten.)486 5079 y Ff(6)520 5110 y Fe(Leider)37 b(hab)r(en)e(die)i(En)n
+(t)n(wic)n(kler)f(v)n(on)g(ReiserFS)g(sc)n(hon)g(\366fters)h(das)g(La)n
+(y)n(out)e(der)h(Daten)g(auf)382 5202 y(der)24 b(F)-6
+b(estplatte)25 b(zwisc)n(hen)g(V)-6 b(ersionen)25 b(ihres)g
+(Filesystems)g(ge\344ndert.)34 b(Die)25 b(einzige)h(M\366glic)n(hk)n
+(eit,)g(so)382 5293 y(einen)f(V)-6 b(ersionssprung)26
+b(mitzumac)n(hen,)e(w)n(ar)i(die)g(Neuerstellung)g(des)f(Filesystems.)
+1831 5622 y Fp(70)p eop
+%%Page: 71 73
+71 72 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)725
+b(6.2.)71 b(FILESYSTEME)p 382 299 2989 4 v 382 539 a
+Fp(Blo)s(c)m(kn)m(ummern)23 b(v)m(erw)m(endet;)k(und)22
+b(es)f(gelten)h(somit)g(die)g(gleic)m(hen)h(Gr\366\377eneinsc)m
+(hr\344n-)382 652 y(kungen)31 b(f\374r)f(das)g(gesam)m(te)i(Filesystem)
+e(wie)h(b)s(ei)f(ext2.)382 800 y(ReiserFS)k(v)m(erw)m(endet)i(k)m(eine)
+f(v)m(orallokierten)i(Ino)s(des,)d(und)h(es)f(w)m(erden)i(Filenamen,)
+382 913 y(Directories)d(und)f(die)h(Daten)f(der)h(Files)f(mit)g(Hilfe)g
+(v)m(on)g(B*B\344umen)h(v)m(erw)m(altet.)48 b(Es)382
+1026 y(un)m(terst\374tzt)33 b(momen)m(tan)g(n)m(ur)g(4K-Bl\366)s(c)m(k)
+m(e,)f(k)-5 b(ann)32 b(ab)s(er)f(kleine)h(Dateien)g(und)g(Datei-)382
+1139 y(enden)f(zusammenlegen.)382 1288 y(W)-8 b(eiters)29
+b(ist)f(ReiserFS)g(mit)h(Metadata-Journaling)j(ausgestattet.)40
+b(Das)29 b(Filesystem)382 1400 y(k)-5 b(ann)26 b(v)m(ergr\366\377ert)i
+(w)m(erden)g(w)m(\344hrend)g(es)e(in)h(V)-8 b(erw)m(endung)28
+b(ist.)39 b(V)-8 b(erkleinern)28 b(des)e(File-)382 1513
+y(systems)34 b(ist)g(n)m(ur)h(m\366glic)m(h,)j(w)m(enn)d(das)g
+(Filesystem)f(nic)m(h)m(t)i(im)f(System)g(angemeldet)382
+1626 y(ist.)382 1775 y(ReiserFS)29 b(hat)h(gute)h(Chancen,)g(in)f(die)g
+(2.4.x)f(V)-8 b(ersionen)31 b(v)m(on)f(Lin)m(ux)h(aufgenommen)382
+1888 y(zu)f(w)m(erden.)382 2160 y Fo(6.2.4)112 b(XFS)382
+2368 y Fp(XFS)25 b(ist)h(jenes)f(Filesystem,)h(mit)g(dem)h(auc)m(h)f
+(IRIX)e(v)m(on)i(SGI)f(ausgeliefert)i(wird.)39 b(Die)382
+2481 y(Lin)m(uxp)s(ortierung)29 b(dieses)e(Dateisystems)g(wird)h(n)m
+(un)g(un)m(ter)h(der)e(GPL)h(v)m(er\366\033en)m(tlic)m(h)m(t.)382
+2594 y(Die)i(Ec)m(kdaten)i(laut)f(SGI:)518 2800 y Fd(\017)46
+b Fp(64-Bit-Blo)s(c)m(kn)m(ummern)518 2973 y Fd(\017)g
+Fp(E\036zien)m(te)33 b(Sp)s(eic)m(herung)f(v)m(on)f(Dateien)g(mit)g
+(L\366)s(c)m(hern)518 3147 y Fd(\017)46 b Fp(Journaling)518
+3320 y Fd(\017)g Fp(Blo)s(c)m(kgr\366\377e)31 b(bis)g(256)f(KB)518
+3494 y Fd(\017)46 b Fp(\304nderung)31 b(der)g(Gr\366\377e)g(w)m
+(\344hrend)h(es)e(in)g(V)-8 b(erw)m(endung)33 b(ist)518
+3667 y Fd(\017)46 b Fp(V)-8 b(erw)m(endet)33 b(B-B\344ume)518
+3841 y Fd(\017)46 b Fp(Applik)-5 b(ationen)35 b(k)m(\366nnen)g(garan)m
+(tierten)i(Durc)m(hsatz)e(b)s(ei)f(Sc)m(hreib-)i(o)s(der)e(Lese-)609
+3954 y(zugri\033en)d(v)m(erlangen)382 4226 y Fo(6.2.5)112
+b(JFS)382 4434 y Fp(Das)24 b(JFS)g(v)m(on)g(IBM)f(wurde)i(v)m(or)f
+(kurzem)h(eb)s(enfalls)f(f\374r)f(Lin)m(ux)i(angek\374ndigt,)i(gleic)m
+(h-)382 4547 y(zeitig)35 b(wurde)h(auc)m(h)g(der)f(Quelltext)h(un)m
+(ter)g(der)f(GPL)g(v)m(er\366\033en)m(tlic)m(h)m(t.)57
+b(Bis)35 b(jetzt)g(ist)382 4660 y(die)c(P)m(ortierung)h(auf)e(Lin)m(ux)
+i(allerdings)f(no)s(c)m(h)g(nic)m(h)m(t)h(fertig.)41
+b(Laut)31 b(IBM:)518 4866 y Fd(\017)46 b Fp(64-Bit-Blo)s(c)m(kn)m
+(ummern)518 5039 y Fd(\017)g Fp(E\036zien)m(te)33 b(Sp)s(eic)m(herung)f
+(v)m(on)f(Dateien)g(mit)g(L\366)s(c)m(hern)518 5213 y
+Fd(\017)46 b Fp(Journaling)518 5386 y Fd(\017)g Fp(V)-8
+b(erw)m(endet)33 b(B+B\344ume)1831 5622 y(71)p eop
+%%Page: 72 74
+72 73 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)725
+b(6.2.)71 b(FILESYSTEME)p 382 299 2989 4 v 382 539 a
+Fo(6.2.6)112 b(LinLogFS)382 760 y Fp(LinLogFS)45 b(ist)d(ein)i
+(Log-Structured-Filesystem)i(f\374r)c(Lin)m(ux.)80 b(Bei)43
+b(so)g(einem)g(Fi-)382 873 y(lesystem)i(w)m(erden)i(w)m(eder)g(Daten)m
+(bl\366)s(c)m(k)m(e)g(no)s(c)m(h)g(Metadaten)f(jemals)f(direkt)h(\374b)
+s(er-)382 986 y(sc)m(hrieb)s(en.)70 b(Aktualisierungen)42
+b(w)m(erden)f(durc)m(h)g(Anlegen)g(fortlaufender)g(Segmen-)382
+1099 y(te)36 b(gesp)s(eic)m(hert.)57 b(Auf)35 b(diese)g(Arc)m(hitektur)
+i(aufbauend)f(k)-5 b(ann)36 b(man)g(Snapshots)g(und)382
+1212 y(v)m(orhergehende)d(V)-8 b(ersionen)31 b(v)m(on)g(Dateien)g(an)m
+(bieten.)382 1374 y(Mit)j(Hilfe)g(v)m(on)g(Snapshots)h(k)-5
+b(ann)34 b(man)g(k)m(onsisten)m(te)i(Bac)m(kups)e(durc)m(hf\374hren,)j
+(w)m(\344h-)382 1487 y(rend)31 b(das)f(Filesystem)g(v)m(on)h(laufenden)
+g(Applik)-5 b(ationen)32 b(v)m(er\344ndert)g(w)m(erden)g(k)-5
+b(ann.)382 1650 y(Dadurc)m(h,)25 b(da\377)e(die)f(Daten)h(b)s(ei)e
+(einer)i(Aktualisierung)g(nic)m(h)m(t)h(\374b)s(ersc)m(hrieb)s(en)f(w)m
+(erden,)382 1763 y(k)-5 b(ann)24 b(man)g(auf)f(\344ltere)i(V)-8
+b(ersionen)24 b(einer)g(Datei)h(zugreifen.)39 b(Es)23
+b(handelt)i(sic)m(h)f(um)g(eine)382 1876 y(v)m(erallgemeinerte)33
+b(V)-8 b(ersion)31 b(des)f(\022undelete\021)39 b(K)m(ommandos.)382
+2039 y(Die)24 b(F)-8 b(reigab)s(e)24 b(v)m(on)g(Sp)s(eic)m(her)h
+(erfolgt)f(b)s(ei)f(dieser)h(Art)f(v)m(on)h(Dateisystem)g(durc)m(h)h
+(einen)382 2151 y(sog.)39 b(Cleaner.)i(Dies)27 b(ist)g(ein)h
+(Proze\377,)h(der)f(im)g(Hin)m(tergrund)h(abl\344uft)f(und)f(nac)m(h)i
+(Seg-)382 2264 y(men)m(ten)35 b(suc)m(h)m(t,)i(deren)d(Inhalt)g(zum)h
+(Gro\377teil)g(v)m(on)f(k)m(einem)h(Snapshot)g(o)s(der)f(k)m(einer)382
+2377 y(alten)j(V)-8 b(ersion)38 b(einer)f(Datei)h(referenziert)g(wird.)
+60 b(Solc)m(he)39 b(Segmen)m(te)f(w)m(erden)h(dann)382
+2490 y(freigegeb)s(en,)33 b(und)g(der)g(T)-8 b(eil,)33
+b(der)g(v)m(on)f(ihnen)h(no)s(c)m(h)g(gebrauc)m(h)m(t)i(wird,)e(wird)g
+(in)f(neue)382 2603 y(Segmen)m(te)g(gesc)m(hrieb)s(en.)382
+2766 y(Wie)k(ein)g(Journaling-Filesystem)i(b)s(en\366tigt)f(ein)f
+(Log-Structured-Filesystem)j(k)m(ei-)382 2879 y(nen)31
+b(K)m(onsistenzc)m(hec)m(k)i(nac)m(h)e(einem)g(Absturz)g(des)f
+(Computers.)382 3041 y(Wie)21 b(viele)g(anderen)h(der)f(hier)h(v)m
+(orgestellten)g(Dateisysteme)g(b)s(e\034ndet)f(sic)m(h)h(LinLogFS)382
+3154 y(leider)k(eb)s(enfalls)f(no)s(c)m(h)g(im)h(En)m(t)m(wic)m
+(klungsstadium,)k(es)24 b(gibt)i(z.B.)f(no)s(c)m(h)h(k)m(einen)g(Clea-)
+382 3267 y(ner.)382 3561 y Fo(6.2.7)112 b(GFS)382 3782
+y Fp(Die)26 b(herausragende)i(Eigensc)m(haft)f(v)m(on)f(GFS)g([PBB+99)q
+(])g(ist)g(es,)g(da\377)h(ein)f(ph)m(ysisc)m(hes)382
+3895 y(Dateisystem)31 b(v)m(on)h(mehreren)g(angesc)m(hlossenen)h
+(Computern)g(gleic)m(hzeitig)g(v)m(erw)m(en-)382 4008
+y(det)e(w)m(erden)g(k)-5 b(ann.)382 4170 y(W)d(eiters)28
+b(k)-5 b(ann)28 b(GFS)f(eb)s(enfalls)h(64-Bit-Blo)s(c)m(kn)m(ummern)i
+(v)m(orw)m(eisen,)g(an)e(Journaling)382 4283 y(wird)j(leider)h(no)s(c)m
+(h)g(gearb)s(eitet.)43 b(Das)31 b(hei\377t,)h(w)m(enn)g(einer)g(der)f
+(Knoten)h(w)m(\344hrend)h(des)382 4396 y(Sc)m(hreib)s(ens)24
+b(abst\374rzt,)i(m)m(u\377)f(das)e(Dateisystem)g(auf)h(allen)g(b)s
+(eteiligten)g(Knoten)h(abge-)382 4509 y(meldet)34 b(w)m(erden,)i(ein)e
+(K)m(onsistenzc)m(hec)m(k)i(durc)m(hgef\374hrt)f(w)m(erden)g(und)f
+(ansc)m(hlie\377end)382 4622 y(das)c(Dateisystem)h(wieder)g(angemeldet)
+h(w)m(erden.)1831 5622 y(72)p eop
+%%Page: 73 75
+73 74 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 382
+539 a Fn(6.2.7.1)103 b(\334b)s(ersic)m(h)m(t)p 817 730
+2120 4 v 815 843 4 113 v 866 809 a Fp(Dateisystem)p 1399
+843 V 100 w(Gr\366\377e)31 b(des)f(Quellco)s(des)p 2346
+843 V 219 w(Status)p 2934 843 V 817 846 2120 4 v 817
+862 V 815 975 4 113 v 1024 941 a(ext2)p 1399 975 V 547
+w(150KB)p 2346 975 V 526 w(stabil)p 2934 975 V 817 979
+2120 4 v 815 1092 4 113 v 1024 1058 a(ext3)p 1399 1092
+V 547 w(320KB)p 2346 1092 V 526 w(alpha)p 2934 1092 V
+817 1095 2120 4 v 815 1208 4 113 v 933 1174 a(ReiserFS)p
+1399 1208 V 454 w(750KB)p 2346 1208 V 547 w(b)s(eta)p
+2934 1208 V 817 1211 2120 4 v 815 1324 4 113 v 1020 1290
+a(XFS)p 1399 1324 V 546 w(3.8MB)p 2346 1324 V 529 w(alpha)p
+2934 1324 V 817 1327 2120 4 v 815 1440 4 113 v 1031 1406
+a(JFS)p 1399 1440 V 553 w(602KB)p 2346 1440 V 390 w(En)m(t)m(wic)m
+(klung)p 2934 1440 V 817 1444 2120 4 v 815 1556 4 113
+v 915 1523 a(LinLogFS)p 1399 1556 V 438 w(580KB)p 2346
+1556 V 390 w(En)m(t)m(wic)m(klung)p 2934 1556 V 817 1560
+2120 4 v 382 1908 a Fj(6.3)130 b(Implemen)l(tierung)382
+2164 y Fo(6.3.1)112 b(Struktur)382 2386 y Fp(Die)28 b(einzige)h
+(Clusterinstallation,)h(die)f(bisher)f(ernsthaften)h(T)-8
+b(ests)28 b(un)m(terzogen)i(wur-)382 2499 y(de,)48 b(w)m(ar)d(eine)g
+(NFS-Installation.)82 b(W\344hrend)45 b(in)g(letzter)g(Zeit)f(sic)m(h)h
+(der)f(Kernel-)382 2612 y(basierende)h(NFS-Serv)m(er)h(als)e(Standard)h
+(durc)m(hsetzen)i(k)m(onn)m(te,)i(wurde)c(f\374r)f(diese)382
+2724 y(Installation)31 b(der)f(\344ltere,)i(auf)e(normalen)h
+(User-Prozessen)g(basierende)g(NFS-Dienst)382 2837 y(eingesetzt.)64
+b(Dieser)38 b(legt)g(n\344mlic)m(h)i(seinen)e(Zustand)h(in)f(/v)-5
+b(ar/lib/nfs/)38 b(ab.)64 b(Diese)382 2950 y(Zustandsinformation)38
+b(b)s(esteh)m(t)e(aus)g(der)h(Liste)f(der)g(momen)m(tan)i(authen)m
+(ti\034zierten)382 3063 y(Clien)m(ts.)46 b(Bei)32 b(der)h(Realisierung)
+f(wurden)h(so)m(w)m(ohl)h(das)d(Dateisystem,)i(das)f(NFS)g(ex-)382
+3176 y(p)s(ortiert,)e(als)f(auc)m(h)i(die)f(Dateien,)g(die)g(den)g
+(Zustand)g(des)f(NFS-Serv)m(ers)h(b)s(einhalten,)382
+3289 y(auf)g(einem)h(durc)m(h)h(DRBD)e(replizierten)i(Dateisystem)e(un)
+m(tergebrac)m(h)m(t.)382 3452 y(Als)35 b(Cluster-Manager)j(k)-5
+b(am)36 b(Heartb)s(eat)g(zum)h(Einsatz.)58 b(Dab)s(ei)36
+b(m)m(u\377te)h(ein)g(Shell-)382 3565 y(Skript)31 b(gesc)m(hrieb)s(en)g
+(w)m(erden,)h(das)e(DRBD)g(als)g(Service)h(f\374r)f(Heartb)s(eat)h
+(darstellt.)382 3727 y(Wird)22 b(dieses)f(Service)h(v)m(on)g(Heartb)s
+(eat)h(gestartet,)h(wird)e(das)g(DRBD-Ger\344t)f(des)h(Kno-)382
+3840 y(tens)27 b(in)g(den)h(prim\344ren)g(Zustand)g(gebrac)m(h)m(t)h
+(und)f(das)e(Filesystem)h(auf)g(diesem)h(ange-)382 3953
+y(meldet.)39 b(Da)23 b(in)f(dieser)h(T)-8 b(estserie)24
+b(aussc)m(hlie\377lic)m(h)h(das)d(ext2-Dateisystem)h(v)m(erw)m(endet)
+382 4066 y(wurde,)30 b(m)m(u\377)g(v)m(or)f(dem)h(Anmelden)g
+(nat\374rlic)m(h)g(ein)g(K)m(onsistenzc)m(hec)m(k)h(auf)e(dem)g(File-)
+382 4179 y(system)h(durc)m(hgef\374hrt)i(w)m(erden.)382
+4342 y(Bei)40 b(Aufruf)g(des)g(Service-Skriptes)h(mit)g(dem)f(Stopp-P)m
+(arameter,)46 b(wird)41 b(das)f(File-)382 4455 y(system)31
+b(abgemeldet,)i(und)f(das)g(DRBD-Ger\344t)f(wird)h(in)g(den)g
+(sekund\344ren)g(Zustand)382 4568 y(gebrac)m(h)m(t.)382
+4730 y(Die)i(K)m(on\034guration)i(des)e(DRBD-Ger\344tes)f(wird)h(durc)m
+(h)h(ein)f(w)m(eiteres)h(Skript)f(\374b)s(er-)382 4843
+y(nommen,)27 b(das)d(b)s(ereits)h(b)s(eim)f(Bo)s(otv)m(organg)i
+(ausgef\374hrt)f(wird.)39 b(Dieses)24 b(Skript)h(stellt)382
+4956 y(sic)m(her,)37 b(da\377)e(das)g(DRBD-Kernelmo)s(dul)h(geladen)g
+(wird,)h(und)e(k)m(on\034guriert)i(die)e(IP-)382 5069
+y(A)m(dressen)c(f\374r)f(die)g(V)-8 b(erbindung.)382
+5232 y(Die)30 b(eigen)m(tlic)m(hen)k(Angab)s(en)d(zur)f(K)m
+(on\034guration)j(stehen)e(in)g(einer)g(K)m(on\034gurations-)382
+5345 y(datei,)d(die)g(v)m(on)f(den)g(Skripten)h(eingelesen)g(wird.)40
+b(Diese)27 b(K)m(on\034gurationsdatei)j(ist)d(so)1831
+5622 y(73)p eop
+%%Page: 74 76
+74 75 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 382
+539 a Fp(aufgebaut,)26 b(da\377)e(sie)g(auf)f(b)s(eiden)i(Knoten)f(des)
+g(Clusters)g(iden)m(tisc)m(h)i(ist.)38 b(Die)24 b(Skripten)382
+652 y(stellen)33 b(anhand)i(der)e(K)m(on\034gurationsdatei)j(fest,)e(w)
+m(elc)m(he)h(Rolle)e(der)g(Knoten)h(\374b)s(er-)382 764
+y(nehmen)k(soll,)h(auf)e(dem)g(sie)g(laufen,)i(und)f(k)m(\366nnen)g(so)
+e(die)i(zutre\033enden)g(Angab)s(en)382 877 y(aus)30
+b(der)h(K)m(on\034gurationsdatei)i(lesen.)382 1040 y(W)-8
+b(enn)39 b(der)g(Heimatknoten)h(eines)e(Services)h(wieder)g(ersc)m
+(hein)m(t,)k(bringt)c(Heartb)s(eat)382 1153 y(das)29
+b(Service)h(sofort)f(auf)g(diesen)h(zur\374c)m(k.)41
+b(Beim)30 b(Einsatz)g(v)m(on)f(DRBD)g(k)-5 b(ann)29 b(es)g(ab)s(er)382
+1266 y(sein,)c(da\377)e(der)h(Heimatknoten)g(no)s(c)m(h)g(damit)g(b)s
+(esc)m(h\344ftigt)g(ist,)g(seinen)g(Datenstand)g(zu)382
+1379 y(aktualisieren.)49 b(In)33 b(diesem)g(F)-8 b(all)34
+b(m)m(u\377)g(das)f(DRBD-Skript)g(den)g(Bo)s(ot-V)-8
+b(organg)35 b(des)382 1492 y(Knotens)j(so)f(lange)g(anhalten,)k(bis)c
+(der)g(Sync)m(hronisationsv)m(organg)j(abgesc)m(hlossen)382
+1605 y(ist.)382 1898 y Fo(6.3.2)112 b(Ergebnisse)382
+2119 y Fp(Die)34 b(Absc)m(haltung)h(des)f(aktiv)m(en)g(Serv)m(ers)h
+(f\374hrt)f(erw)m(artungsgem\344\377)i(dazu,)g(da\377)e(der)382
+2232 y(zw)m(eite)44 b(Serv)m(er)f(nac)m(h)g(kurzer)g(Zeit)f
+(einspringt.)78 b(W)-8 b(enn)43 b(ein)f(Clien)m(t)i(w)m(\344hrend)g
+(des)382 2345 y(F)-8 b(ailo)m(v)m(ers)47 b(gerade)f(eine)g(Datei)f(sc)m
+(hreibt,)50 b(ist)45 b(diese)h(Datei)f(allerdings)i(nac)m(h)f(dem)382
+2458 y(F)-8 b(ailo)m(v)m(er)32 b(nic)m(h)m(t)g(fehlerfrei)f(v)m
+(orhanden.)382 2621 y(Mit)44 b(der)g(sync)m(hronen)1179
+2588 y Fg(7)1263 2621 y Fp(V)-8 b(erw)m(endung)47 b(des)d(Filesystems)f
+(k)m(onn)m(te)i(dieses)f(Problem)382 2734 y(b)s(ehob)s(en)33
+b(w)m(erden.)50 b(Da)33 b(b)s(ei)f(diesen)i(T)-8 b(ests)33
+b(nat\374rlic)m(h)h(Protok)m(oll)h(B)e(und)g(C)g(v)m(erw)m(en-)382
+2847 y(det)k(wurde,)j(v)m(erm)m(ute)e(ic)m(h,)i(da\377)d(der)g(F)-8
+b(ehler)38 b(im)g(NFS-Serv)m(er)f(liegt.)61 b(Dieser)37
+b(sollte)382 2959 y(erst)k(dann)g(den)h(Absc)m(hlu\377)f(der)h(Sc)m
+(hreib)s(op)s(eration)h(dem)e(Clien)m(t)h(mitteilen,)j(w)m(enn)382
+3072 y(die)34 b(Daten)h(wirklic)m(h)g(auf)f(nic)m(h)m(t)i(\035\374c)m
+(h)m(tigen)h(Sp)s(eic)m(her)e(gesc)m(hrieb)s(en)2769
+3039 y Fg(8)2844 3072 y Fp(sind.)52 b(Bei)34 b(der)382
+3185 y(sync)m(hronen)27 b(Durc)m(hf\374hrung)g(aller)f(Sc)m
+(hreibzugri\033e)i(geh)m(t)f(nat\374rlic)m(h)g(einiges)f(an)g(P)m(er-)
+382 3298 y(formance)31 b(v)m(erloren.)382 3461 y(W)-8
+b(enn)34 b(man)g(auf)g(die)f(sync)m(hrone)i(V)-8 b(erw)m(endung)36
+b(des)d(Filesystems)g(v)m(erzic)m(h)m(tet,)k(k)-5 b(ann)382
+3574 y(die)35 b(Aktualisierung)g(der)g(F)-8 b(estplatte)36
+b(mit)e(dem)h(up)s(date\(8\))h(K)m(ommando)h(gesteuert)382
+3687 y(w)m(erden.)48 b(Mit)33 b(diesem)f(K)m(ommando)j(k)-5
+b(ann)33 b(man)g(steuern,)g(wie)g(lange)g(Daten)m(bl\366)s(c)m(k)m(e,)
+382 3800 y(die)27 b(v)m(on)g(einem)h(Filesystem,)f(das)g(mit)g(async)m
+(hronen)h(Sc)m(hreib)s(op)s(erationen)i(arb)s(eitet,)382
+3913 y(stammen,)39 b(im)e(Bu\033er-Cac)m(he)h(bleib)s(en)f(d\374rfen,)h
+(b)s(ev)m(or)f(sie)f(auf)h(die)f(F)-8 b(estplatte)38
+b(ge-)382 4025 y(sc)m(hrieb)s(en)d(w)m(erden)h(m)m(\374ssen.)52
+b(Die)34 b(Standardeinstellung)j(b)s(etr\344gt)e(5)f(Sekunden)h(f\374r)
+382 4138 y(Daten)m(bl\366)s(c)m(k)m(e,)29 b(die)d(Metadaten)h(des)f
+(Filesystems)f(en)m(thalten,)k(und)d(30)g(Sekunden)h(f\374r)382
+4251 y(Daten)m(bl\366)s(c)m(k)m(e)32 b(mit)f(Userdaten.)382
+4414 y(Bei)37 b(der)h(Erprobung)h(des)f(ReiserFS-Dateisystems)f(hat)h
+(sic)m(h)g(herausgestellt,)i(da\377)382 4527 y(dieses)31
+b(k)m(einen)h(generell)h(sync)m(hronen)g(Betrieb)f(un)m(terst\374tzt)h
+(und)f(da\377)g(es)f(in)g(der)h(da-)382 4640 y(mals)e(v)m
+(erf\374gbaren)i(V)-8 b(ersion)30 b(auc)m(h)h(die)g(P)m(arameter,)h
+(die)f(mit)f(up)s(date\(8\))h(einstellbar)382 4753 y(sind,)f
+(ignoriert.)382 4915 y(Der)20 b(V)-8 b(ersuc)m(h,)24
+b(einen)d(ho)s(c)m(h)m(v)m(erf\374gbaren)i(SAMBA-Serv)m(er)e(zu)f
+(implemen)m(tieren,)26 b(zeigt)382 5028 y(deutlic)m(h,)g(da\377)e(das)f
+(SMB-Protok)m(oll)i(nic)m(h)m(t)f(stateless)f(ist.)38
+b(Bei)23 b(mehreren)i(V)-8 b(ersuc)m(hen,)p 382 5090
+1196 4 v 486 5144 a Ff(7)520 5175 y Fe(Das)26 b(ext2-Filesystem)f(un)n
+(terst\374tzt)f(die)i(Option)f(-sync,)g(die)g(b)r(eim)g(moun)n(t-K)n
+(ommando)d(ange-)382 5267 y(geb)r(en)k(w)n(erden)f(k)l(ann.)486
+5326 y Ff(8)520 5358 y Fe(Das)h(k)l(ann)f(ein)g(User-Prozess)i(mit)e
+(fdatasync\(2\))h(o)r(der)g(fsync\(2\).)1831 5622 y Fp(74)p
+eop
+%%Page: 75 77
+75 76 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 382
+539 a Fp(einen)38 b(F)-8 b(ailo)m(v)m(er)39 b(w)m(\344hrend)f(eines)g
+(Sc)m(hreibzugri\033s)h(durc)m(hzuf\374hren,)i(ist)c(der)g(Clien)m(t,)
+382 652 y(der)31 b(mit)f(Windo)m(ws)h(98)g(installiert)g(w)m(ar,)h
+(abgest\374rzt.)382 945 y Fo(6.3.3)112 b(Heartb)s(eat)38
+b(Erw)m(eiterungen)382 1166 y Fp(Im)g(Zuge)g(der)g(Auseinandersetzung)i
+(mit)e(Heartb)s(eat)h(wurde)f(auc)m(h)h(deutlic)m(h,)j(da\377)382
+1279 y(f\374r)26 b(einen)h(zuv)m(erl\344ssigen)h(Pro)s(duktionseinsatz)
+f(Heartb)s(eat)g(erw)m(eitert)h(w)m(erden)g(m)m(u\377.)382
+1392 y(V)-8 b(or)39 b(allem)g(transien)m(te)g(Netzw)m(erkfehler)h(k)m
+(\366nnen)f(mit)g(dem)g(heutigen)2895 1359 y Fg(9)2974
+1392 y Fp(Heartb)s(eat)382 1505 y(zu)30 b(k)-5 b(atastrophalen)32
+b(F)-8 b(ehlern)32 b(f\374hren.)382 1668 y(Hier)e(ein)h(Beispiel,)g(in)
+f(dem)h(die)g(T)-8 b(ransaktionseigensc)m(haften)33 b(v)m(erloren)f
+(gehen:)493 1930 y(1.)46 b(Es)31 b(handelt)g(sic)m(h)g(um)g(einen)g
+(Cluster)g(b)s(estehend)g(aus)f(zw)m(ei)h(Knoten)h(und)f(n)m(ur)609
+2043 y(einer)g(Netzw)m(erkv)m(erbindung.)1423 2660 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+
+1423 2660 a @beginspecial 50 @llx 693 @lly 233 @urx 771
+@ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-1-1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:13:03 2000
+%%Title: heart-1-1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(S)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 2660 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 2660 a 493 2919 a Fp(2.)46
+b(F\344llt)21 b(die)f(Netzw)m(erkv)m(erbindung)k(zum)c(prim\344ren)i
+(Serv)m(er)f(temp)s(or\344r)g(aus,)i(\374b)s(er-)609
+3032 y(nimm)m(t)32 b(der)f(andere)g(Knoten)g(das)f(Service.)1423
+3632 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 3632 a @beginspecial 50 @llx 693 @lly 233
+@urx 771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-1-2.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:13:13 2000
+%%Title: heart-1-2.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+198.426 737.009 m
+198.426 722.836 l
+141.733 722.836 l
+141.733 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(P)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+4.8189 w
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 3632 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 3632 a 493 3890 a Fp(3.)46
+b(Nun)39 b(f\344llt)g(der)h(zw)m(eite)h(Serv)m(er)f(aus.)66
+b(Der)40 b(Cluster)f(k)-5 b(ann)40 b(das)f(Service)g(jetzt)609
+4003 y(nic)m(h)m(t)32 b(mehr)f(an)m(bieten.)1423 4603
+y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 4603 a @beginspecial 50 @llx 693 @lly 233 @urx
+771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-1-3.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:13:22 2000
+%%Title: heart-1-3.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+4.8189 w
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 198.426 751.182] ellipse
+0 0 0 rgb
+4.8189 w
+0 j
+S
+newpath
+204.378 757.135 m
+192.473 745.23 l
+1 j
+S
+[8.50395 0 0 -8.50395 198.426 751.182] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+204.378 757.135 m
+192.473 745.23 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 4603 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 4603 a 493 4861 a Fp(4.)46
+b(Ein)22 b(An)m(w)m(ender,)j(dessen)c(Arb)s(eit)g(durc)m(h)i(den)f(T)-8
+b(otalausfall)22 b(un)m(terbro)s(c)m(hen)i(wur-)609 4974
+y(de,)31 b(b)s(ehebt)g(den)g(temp)s(or\344ren)g(Netzw)m(erk)-5
+b(ausfall.)42 b(Nun)30 b(ist)g(das)g(Service)h(zw)m(ar)609
+5087 y(wieder)k(v)m(erf\374gbar,)h(die)e(V)-8 b(er\344nderungen,)37
+b(die)d(die)g(T)-8 b(ransaktionen)36 b(in)e(Phase)609
+5200 y(2)d(v)m(orgenommen)h(hab)s(en,)f(sind)f(ab)s(er)h(v)m(erloren!)p
+382 5262 1196 4 v 486 5315 a Ff(9)520 5347 y Fe(V)-6
+b(ersion)26 b(0.4.7)1831 5622 y Fp(75)p eop
+%%Page: 76 78
+76 77 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 1423
+931 a
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 931 a @beginspecial 50 @llx 693 @lly 233 @urx
+771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-1-4.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:13:32 2000
+%%Title: heart-1-4.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 198.426 751.182] ellipse
+4.8189 w
+S
+newpath
+204.378 757.135 m
+192.473 745.23 l
+1 j
+S
+[8.50395 0 0 -8.50395 198.426 751.182] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+204.378 757.135 m
+192.473 745.23 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 931 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 931 a 382 1247 a Fp(Um)22
+b(dieses)f(F)-8 b(ehlv)m(erhalten)24 b(zu)e(v)m(erhindern,)k(m)m
+(\374\377te)d(Heartb)s(eat)f(auf)g(einem)h(isolierten)382
+1360 y(Serv)m(er)37 b(in)e(einen)i(Zustand)f(\374b)s(ergehen,)j(in)c
+(dem)i(k)m(ein)f(Service)g(laufen)g(k)-5 b(ann.)57 b(Die-)382
+1473 y(sen)31 b(Zustand)i(k)-5 b(ann)31 b(Heartb)s(eat)h(erst)g(dann)g
+(wieder)g(v)m(erlassen,)h(nac)m(hdem)g(es)e(seinen)382
+1586 y(Datenstand)g(an)g(den)g(aktuellen)g(Datenstand)g(des)f(Clusters)
+h(anpassen)g(k)m(onn)m(te.)382 1745 y(Der)f(folgende)h(Zustandsgraph)h
+(m)m(\374\377te)g(f\374r)e(jedes)g(Service)h(v)m(orhanden)h(sein:)1286
+2878 y
+ currentpoint currentpoint translate 0.78741 0.78741 scale neg exch
+neg exch translate
+ 1286 2878 a @beginspecial 94 @llx 647 @lly 274
+@urx 798 @ury 1800 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heartbeat-state.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Fri Apr 14 09:54:59 2000
+%%Title: heartbeat-state.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 94 647 274 798
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+172.914 680.232 m
+137.032 700.157 101.164 680.232 101.164 680.232 c
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+pusht
+172.914 680.232 translate
+-29.0431 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[25.5118 0 0 -19.8426 99.2128 697.324] rect
+1 1 1 rgb
+F
+newpath
+246.614 748.492 m
+245.929 707.454 210.739 686.354 210.739 686.354 c
+0 0 0 rgb
+S
+pusht
+210.739 686.354 translate
+-149.053 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+189.643 694.713 m
+188.958 735.75 153.768 756.85 153.768 756.85 c
+S
+pusht
+189.643 694.713 translate
+-89.0437 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+232.261 756.778 m
+197.064 735.666 196.386 694.641 196.386 694.641 c
+S
+pusht
+232.261 756.778 translate
+30.9563 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+228.638 779.445 m
+192.756 799.37 156.888 779.445 156.888 779.445 c
+S
+pusht
+228.638 779.445 translate
+-29.0431 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+228.638 762.871 m
+192.756 742.946 156.888 762.871 156.888 762.871 c
+S
+pusht
+156.888 762.871 translate
+150.947 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+newpath
+175.29 686.426 m
+140.094 707.538 139.415 748.564 139.415 748.564 c
+[5 5 ] 0 d
+S
+pusht
+139.415 748.564 translate
+90.9482 rotate
+1 dup scale
+[ ] 0 d
+-4 3 m
+2 0 l
+-4 -3 l
+-4 3 l
+F
+popt
+[22.6772 0 0 -22.6772 249.449 771.024] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[22.6772 0 0 -22.6772 136.063 771.024] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+[11.3386 19.639 19.639 -11.3386 193.267 672.396] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+1 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 18 sf
+(S)
+244 766 T
+(P)
+131 766 T
+(W)
+184 668 T
+[8.50395 0 0 -8.50394 192.756 788.033] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 137.032 688.82] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 192.756 754.017] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 206.929 731.34] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 178.583 731.34] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 150.236 714.332] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+[8.50395 0 0 -8.50394 238.111 714.332] ellipse
+gsave
+1 1 1 rgb
+F
+grestore
+0 0 0 rgb
+0.566929 w
+0 j
+0 J
+[] 0 d
+S
+/Times-Roman 12 sf
+(3)
+189 785 T
+(1)
+134 686 T
+(4)
+189 751 T
+(7)
+203 728 T
+(5)
+175 728 T
+(2)
+147 711 T
+(6)
+235 711 T
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1286 2878 a
+ currentpoint currentpoint translate 1 0.78741 div 1 0.78741 div scale
+neg exch neg exch translate
+ 1286 2878 a 382 3194 a Fn(P)i(Primary)45
+b Fp(In)30 b(diesem)g(Zustand)h(l\344uft)g(das)f(Service.)382
+3378 y Fn(S)k(Secondary)45 b Fp(Das)22 b(Service)g(l\344uft)g(nic)m(h)m
+(t.)39 b(Der)22 b(Knoten,)j(der)d(das)f(Service)i(an)m(bietet,)609
+3491 y(wird)45 b(\374b)s(erw)m(ac)m(h)m(t,)51 b(und)45
+b(die)g(Daten,)k(die)c(er)f(sc)m(hreibt,)50 b(w)m(erden)c(auf)e(diesen)
+609 3604 y(Knoten)32 b(gespiegelt.)382 3787 y Fn(W)j(W)-9
+b(aiting)46 b Fp(Da)35 b(der)f(aktuelle)i(Stand)f(der)g(clusterw)m
+(eiten)i(Daten)e(nic)m(h)m(t)h(b)s(ek)-5 b(ann)m(t)609
+3900 y(ist,)43 b(wird)f(v)m(om)f(Knoten,)j(der)d(gerade)h(das)e
+(Service)i(an)m(bietet,)j(der)c(aktuelle)609 4013 y(Datenstand)32
+b(b)s(ezogen.)382 4259 y(\334b)s(erg\344nge:)382 4505
+y(1)204 b(W)-8 b(enn)31 b(Heartb)s(eat)g(startet,)f(geh)m(t)i(es)e
+(zuerst)h(in)f(den)h(Zustand)g(W)f(\374b)s(er.)382 4688
+y(2)204 b(W)-8 b(enn)36 b(ein)g(Cluster)g(zum)g(ersten)g(Mal)g
+(gestartet)g(wird,)i(gehen)e(alle)g(Knoten)631 4801 y(in)c(den)h
+(Zustand)g(W.)f(Der)h(A)m(dministrator)h(hat)f(die)f(M\366glic)m(hk)m
+(eit,)j(einen)e(der)631 4914 y(Knoten)e(in)f(den)h(Zustand)g(P)g(\374b)
+s(erzuf\374hren.)382 5097 y(3)204 b(W)-8 b(enn)40 b(ein)g(anderer)g
+(Knoten)h(das)e(Service)h(\374b)s(ernehmen)h(will,)i(geh)m(t)d(dieser)
+631 5210 y(Knoten)31 b(in)f(den)h(Zustand)g(S)g(\374b)s(er.)382
+5394 y(4)204 b(Der)30 b(prim\344re)i(Knoten)f(eines)f(Services)h(ist)f
+(ausgefallen.)1831 5622 y(76)p eop
+%%Page: 77 79
+77 78 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 382
+539 a Fp(5,)30 b(6)104 b(Der)28 b(Knoten)h(ist)e(v)m(om)i(Netzw)m(erk)g
+(isoliert,)g(d.h.)40 b(er)28 b(k)-5 b(ann)28 b(w)m(eder)h(einen)g
+(ande-)631 652 y(ren)22 b(Knoten)h(des)e(Clusters,)j(no)s(c)m(h)f
+(Netzw)m(erkressourcen,)i(v)m(on)d(denen)h(b)s(ek)-5
+b(ann)m(t)631 764 y(ist,)30 b(da\377)h(sie)f(normalerw)m(eise)i(sic)m
+(h)m(tbar)g(sind,)f(erreic)m(hen.)382 952 y(7)204 b(Die)43
+b(Aufsync)m(hronisation)i(des)f(Datenstandes)h(mit)f(dem)g(Datenstand)h
+(des)631 1065 y(aktuellen)31 b(prim\344ren)h(Knotens)f(w)m(ar)g
+(erfolgreic)m(h.)382 1327 y(Ein)g(w)m(eiteres)g(Beispiel:)493
+1590 y(1.)46 b(Eine)h(K)m(on\034guration)h(mit)e(zw)m(ei)h(Netzw)m
+(erkk)-5 b(arten;)55 b(Heartb)s(eat)46 b(sind)g(b)s(eide)609
+1703 y(Netzw)m(erkv)m(erbindungen)34 b(b)s(ek)-5 b(ann)m(t.)1423
+2320 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 2320 a @beginspecial 50 @llx 693 @lly 233
+@urx 771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-2-1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:21:21 2000
+%%Title: heart-2-1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+113.386 751.181 m
+170.079 751.181 l
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(S)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 2320 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 2320 a 493 2579 a Fp(2.)46
+b(Da)37 b(die)g(Heartb)s(eat-Instanz)h(auf)f(dem)g(sekund\344ren)h
+(Knoten)g(den)f(prim\344ren)609 2691 y(Knoten)26 b(immer)h(no)s(c)m(h)e
+(erreic)m(hen)i(k)-5 b(ann,)27 b(k)m(omm)m(t)g(es)d(zu)i(k)m(einem)g(F)
+-8 b(ailo)m(v)m(er.)41 b(Das)609 2804 y(Service)31 b(ist)f(nic)m(h)m(t)
+i(mehr)f(erreic)m(h)m(bar.)1423 3404 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 3404 a @beginspecial
+50 @llx 693 @lly 233 @urx 771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-2-2.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:21:11 2000
+%%Title: heart-2-2.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+93.5434 722.836 m
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+113.386 751.181 m
+170.079 751.181 l
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(S)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+4.8189 w
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 3404 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 3404 a 518 3737 a Fd(\017)46
+b Fp(W\374rde)31 b(man)h(Heartb)s(eat)f(n)m(ur)h(das)f(Clien)m(t-Netzw)
+m(erk)i(b)s(ek)-5 b(ann)m(tgeb)s(en,)33 b(w\374rde)609
+3850 y(der)e(F)-8 b(ailo)m(v)m(er)32 b(funktionieren.)1423
+4450 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1423 4450 a @beginspecial 50 @llx 693 @lly 233
+@urx 771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-2-3.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:24:09 2000
+%%Title: heart-2-3.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+198.425 737.009 m
+198.425 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+113.386 751.181 m
+170.079 751.181 l
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(P)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+4.8189 w
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 85.0395 722.836] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+90.9925 728.789 m
+79.0869 716.883 l
+1 j
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1423 4450 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1423 4450 a 693 4734 a Fp(1.)46
+b(Zw)m(ei)32 b(Knoten.)41 b(Heartb)s(eat)31 b(k)m(enn)m(t)h(n)m(ur)f
+(das)f(Clien)m(t-Netzw)m(erk.)1523 5313 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1523 5313 a
+@beginspecial 50 @llx 693 @lly 233 @urx 771 @ury 1830
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-3-1.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:36:16 2000
+%%Title: heart-3-1.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+113.386 751.181 m
+170.079 751.181 l
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(S)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1523 5313 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1523 5313 a 1831 5622 a Fp(77)p
+eop
+%%Page: 78 80
+78 79 bop 382 262 a Fl(KAPITEL)31 b(6.)71 b(HA)30 b(UNTER)g(LINUX)437
+b(6.3.)71 b(IMPLEMENTIER)m(UNG)p 382 299 2989 4 v 693
+539 a Fp(2.)46 b(Nun)d(k)m(omm)m(t)h(es)e(b)s(eim)g(sekund\344ren)i
+(Knoten)f(zu)g(einem)g(temp)s(or\344ren)809 652 y(Netzw)m(erk)-5
+b(ausfall.)41 b(Da)27 b(dieser)g(n)m(un)h(k)m(eine)g(Heartb)s(eat-P)m
+(ak)m(ete)h(mehr)f(mit)809 764 y(dem)41 b(prim\344ren)h(Knoten)g
+(austausc)m(hen)g(k)-5 b(ann,)43 b(startet)e(Heartb)s(eat)g(die)809
+877 y(Services)35 b(eb)s(enfalls)f(auf)h(diesem)f(Knoten.)54
+b(DRBD)34 b(bric)m(h)m(t)j(die)d(V)-8 b(erbin-)809 990
+y(dung)31 b(ab,)g(da)f(es)g(auf)h(b)s(eiden)f(Knoten)i(im)e
+(prim\344ren)i(Zustand)f(ist.)1523 1587 y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1523 1587 a
+@beginspecial 50 @llx 693 @lly 233 @urx 771 @ury 1830
+@rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-3-2.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:36:06 2000
+%%Title: heart-3-2.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(P)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+[8.50395 0 0 -8.50395 198.426 722.836] ellipse
+4.8189 w
+S
+newpath
+204.379 728.789 m
+192.473 716.883 l
+1 j
+S
+[8.50395 0 0 -8.50395 198.426 722.836] ellipse
+1 0 0 rgb
+4.25197 w
+0 j
+S
+newpath
+204.379 728.789 m
+192.473 716.883 l
+1 j
+S
+newpath
+113.386 751.182 m
+140.315 751.182 l
+0 0 0 rgb
+1 w
+0 j
+S
+newpath
+143.15 751.182 m
+170.079 751.182 l
+S
+newpath
+140.315 754.016 m
+140.315 748.346 l
+0.283465 w
+S
+newpath
+143.15 754.016 m
+143.15 748.346 l
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1523 1587 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1523 1587 a 693 1804 a Fp(3.)46
+b(W)-8 b(enn)38 b(der)f(temp)s(or\344re)h(Netzw)m(erk)-5
+b(ausfall)39 b(wieder)f(v)m(ersc)m(h)m(windet,)j(wird)809
+1917 y(v)m(erm)m(utlic)m(h)23 b(nic)m(h)m(ts)f(mehr)g(funktionieren,)i
+(da)c(jetzt)h(b)s(eide)g(Knoten)h(ARP-)809 2030 y(P)m(ak)m(ete)47
+b(aussenden,)j(um)c(die)f(virtuelle)h(IP-A)m(dresse)g(auf)f(ihre)h(MA)m
+(C-)809 2143 y(A)m(dresse)31 b(abzubilden.)1523 2722
+y
+ currentpoint currentpoint translate 0.74356 0.74356 scale neg exch
+neg exch translate
+ 1523 2722 a @beginspecial 50 @llx 693 @lly 233 @urx
+771 @ury 1830 @rwi @setspecial
+%%BeginDocument: /home/philipp/diplomarbeit//heart-3-3.ps
+%!PS-Adobe-3.0 EPSF-3.0
+%%For: Philipp Reisner
+%%CreationDate: Thu Apr 13 16:35:56 2000
+%%Title: heart-3-3.ps
+%%Creator: Sketch 0.6.5
+%%Pages: 1
+%%BoundingBox: 50 693 233 771
+%%Extensions: CMYK
+%%DocumentSuppliedResources: (atend)
+%%DocumentNeededResources: font Times-Roman
+%%EndComments
+
+%%BeginProlog
+%%BeginResource: procset Linux-Sketch-Procset 1.0 2
+/SketchDict 100 dict def
+SketchDict begin
+/bd { bind def } bind def
+/x { exch } bd
+/xd { exch def } bd
+/PI 3.14159265358979323846264338327 def
+/radgrad { 180 mul PI div } bd
+/skstartmatrix matrix currentmatrix def
+/tmpmat matrix def
+/ISOLatin1Encoding dup where
+{ pop pop }
+{ [/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand
+/quoteright /parenleft /parenright /asterisk /plus /comma /minus /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 /quoteleft /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 /bar /braceright
+/asciitilde /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /dotlessi /grave /acute /circumflex /tilde /macron /breve
+/dotaccent /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek
+/caron /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen
+/registered /macron /degree /plusminus /twosuperior /threesuperior /acute /mu
+/paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown /Agrave /Aacute /Acircumflex
+/Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex
+/Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde /Ograve
+/Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute
+/Ucircumflex /Udieresis /Yacute /Thorn /germandbls /agrave /aacute
+/acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute
+/ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis /eth /ntilde
+/ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
+/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
+}
+ifelse
+/arct dup where
+{pop pop}
+{
+/arct {arcto pop pop pop pop} bd
+}
+ifelse
+/size 0 def
+/fontname 0 def
+/newfont 0 def
+/sf {
+/size xd
+/fontname xd
+fontname findfont
+dup /Encoding get StandardEncoding eq
+{
+dup
+length dict /newfont xd
+{
+1 index
+/FID ne
+{ newfont 3 1 roll put }
+{ pop pop }
+ifelse
+} forall
+newfont /Encoding ISOLatin1Encoding put
+fontname newfont definefont
+}
+if
+size scalefont setfont
+} bd
+/pusht {matrix currentmatrix} bd
+/popt {setmatrix} bd
+/pushc {gsave} bd
+/popc {grestore} bd
+/rgb {setrgbcolor} bd
+/w { setlinewidth } bd
+/j { setlinejoin } bd
+/J { setlinecap } bd
+/d { setdash } bd
+/F { eofill } bd
+/f { closepath F } bd
+/S {
+pusht
+skstartmatrix setmatrix stroke
+popt
+} bd
+/s { closepath S } bd
+/m { moveto } bd
+/l { lineto } bd
+/c { curveto } bd
+/txt {
+/tmpmat tmpmat currentmatrix def
+dup type /arraytype eq {concat} {translate} ifelse
+0 0 m
+tmpmat
+} bd
+/T {txt x show popt} bd
+/P {txt x true charpath popt} bd
+/TP {txt x dup show 0 0 m true charpath popt} bd
+/C {newpath 0 360 arc} bd
+/R {
+2 copy m
+x 2 index l
+x 2 index x l
+l
+closepath
+} bd
+/ellipse {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 1.0 C
+popt
+}
+{
+pusht 5 1 roll
+4 -1 roll concat
+newpath
+dup 2 eq {
+0 0 m
+} if
+3 1 roll
+radgrad x
+radgrad x
+0 0 1 5 -2 roll
+arc
+0 ne { closepath } if
+popt
+}
+ifelse
+} bd
+/radius1 0 def
+/radius2 0 def
+/factor 0 def
+/rect {
+dup type /arraytype eq
+{
+pusht x concat
+0 0 m 1 0 l 1 1 l 0 1 l closepath
+popt
+}
+{
+/radius2 xd
+/radius1 xd
+pusht x concat
+radius1 radius2 div 1 scale
+0 radius2 m
+0 1 radius2 1 radius2 arct
+radius2 radius1 div
+dup 1 1 index 0 radius2 arct
+0 0 0 radius2 arct
+0 0 0 1 radius2 arct
+closepath
+popt
+}
+ifelse
+} bd
+/buf 0 def
+/width 0 def
+/height 0 def
+/skcimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width 3 mul string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+false 3 colorimage
+tmpmat setmatrix
+} bd
+/skgimg {
+/tmpmat tmpmat currentmatrix def
+{ concat } if
+/height xd
+/width xd
+/buf width string def
+width height scale
+width height 8
+[width 0 0 height neg 0 height]
+{ currentfile buf readhexstring pop } bind
+image
+tmpmat setmatrix
+} bd
+/rclip {
+4 2 roll m
+dup 0 x rlineto
+x 0 rlineto
+neg 0 x rlineto
+closepath
+clip
+} bd
+/skeps {
+10 dict begin
+/sk_state save def
+concat
+3 index neg 3 index neg translate
+rclip
+0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin
+10 setmiterlimit [ ] 0 setdash
+newpath
+/sk_dict_count countdictstack def
+/sk_count count 1 sub def
+userdict begin
+/showpage { } def
+/languagelevel where
+{
+pop
+languagelevel 1 ne
+{
+false setstrokeadjust
+false setoverprint
+} if
+} if
+} bd
+/skepsend {
+count sk_count sub { pop } repeat
+countdictstack sk_dict_count sub { end } repeat
+sk_state restore
+end
+} bd
+/gradidx 0 def
+/gradient {
+3 mul array
+/gradidx 0 def
+} bd
+/$ {
+3 index gradidx 5 -1 roll put
+2 index gradidx 1 add 4 -1 roll put
+1 index gradidx 2 add 3 -1 roll put
+/gradidx gradidx 3 add def
+} bd
+/! {
+3
+{
+dup dup gradidx dup 3 1 roll 3 sub get put
+/gradidx gradidx 1 add def
+}
+repeat
+} bd
+/gradcolor {
+3 mul dup 2 add 1 exch % idx 1 idx+2
+{
+1 index exch % array array i
+get % array component
+exch % component array
+}
+for
+4 1 roll
+} bd
+/x0 0 def /y0 0 def /x1 0 def /y1 0 def
+/left 0 def /right 0 def /top 0 def /bottom 0 def
+/numcolors 0 def
+/axial {
+/y1 xd /x1 xd /y0 xd /x0 xd
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+x0 x1 ne y0 y1 ne or
+{
+x0 y0 translate
+[x1 x0 sub y1 y0 sub dup neg 2 index 0 0] concat
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+0 gradcolor rgb clippath f
+0 1 numcolors 1 sub
+{
+dup numcolors div
+3 1 roll
+gradcolor rgb
+exch
+bottom right top R f
+}
+for
+}
+if
+pop
+popt
+} bd
+/r0 0 def /r1 0 def /dr 0 def
+/radial {
+/r1 xd /r0 xd /y0 xd /x0 xd
+/dr r1 r0 sub def
+dup length 3 idiv /numcolors xd
+pusht exch % ctm array
+r0 r1 ne
+{
+x0 y0 translate
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+newpath
+dr 0 gt {numcolors 1 sub}{0} ifelse gradcolor rgb
+clippath f
+dr 0 gt {numcolors 1 sub -1 0} { 0 1 numcolors 1 sub} ifelse
+{
+dup numcolors div dr mul r0 add
+3 1 roll
+gradcolor rgb
+exch
+0 0 3 -1 roll C f
+}
+for
+}
+if
+pop
+popt
+} bd
+/max {
+2 copy lt {exch} if pop
+} bd
+/conical {
+pusht 5 1 roll
+3 1 roll /y0 xd /x0 xd
+x0 y0 translate
+radgrad rotate
+dup length 3 idiv /numcolors xd
+clippath flattenpath pathbbox newpath
+4 { abs 4 1 roll} repeat
+3 { max } repeat
+2 mul
+dup scale
+0 gradcolor rgb
+0 0 1 0 360 arc f
+1 1 numcolors 1 sub
+{
+dup numcolors div 180 mul
+3 1 roll
+gradcolor rgb
+exch
+0 0 moveto
+0 0 1 4 -1 roll dup neg arc
+closepath f
+}
+for
+pop
+popt
+} bd
+/XStep 0 def /YStep 0 def /imagedata 0 def /components 0 def
+/tileimage2 {
+exch 4 2 roll
+/height xd
+/width xd
+mark
+/components 2 index
+/PatternType 1
+/PaintType 1
+/TilingType 1
+/BBox [0 0 width height]
+/XStep width
+/YStep height
+/PaintProc {
+begin
+XStep YStep 8
+matrix
+imagedata
+false
+components
+colorimage
+end
+}
+counttomark 2 div cvi dup dict begin
+{ def } repeat
+pop currentdict end
+dup
+/imagedata
+4 -1 roll
+width height mul mul string
+currentfile exch readhexstring pop
+put
+exch
+makepattern
+setpattern
+clippath
+eofill
+} bd
+/tileimage1 {
+concat
+/components xd
+/height xd
+/width xd
+/imagedata
+currentfile
+width height mul components mul string
+readhexstring pop
+def
+clippath flattenpath pathbbox
+/top xd /right xd /bottom xd /left xd
+left width div floor width mul
+bottom height div floor height mul
+translate
+top bottom sub height div ceiling cvi
+{
+gsave
+right left sub width div ceiling cvi
+{
+width height 8 matrix
+components 1 eq
+{
+{ imagedata }
+image
+}
+{
+imagedata
+false components
+colorimage
+}
+ifelse
+width 0 translate
+}
+repeat
+grestore
+0 height translate
+}
+repeat
+} bd
+/makepattern where
+{
+pop
+/tileimage /tileimage2 load def
+}
+{
+/tileimage /tileimage1 load def
+}
+ifelse
+end
+%%EndResource
+%%EndProlog
+
+%%BeginSetup
+%%IncludeResource: font Times-Roman
+
+10.433 setmiterlimit
+%%EndSetup
+
+%%Page: 1 1
+SketchDict begin
+newpath
+85.0395 737.009 m
+85.0395 722.836 l
+141.732 722.836 l
+141.732 700.159 l
+0.639 0.617 0.97 rgb
+4.25197 w
+1 j
+0 J
+[] 0 d
+S
+newpath
+198.425 737.007 m
+198.425 722.834 l
+141.733 722.834 l
+141.733 700.157 l
+S
+[56.6929 0 0 -28.3464 56.6929 765.354] rect
+0 0 0 rgb
+1 w
+0 j
+S
+[56.6929 0 0 -28.3464 170.079 765.354] rect
+S
+newpath
+85.0394 737.008 m
+85.0394 722.835 l
+198.425 722.835 l
+198.425 737.008 l
+S
+/Times-Roman 12 sf
+(P)
+81 748 T
+(P)
+195 748 T
+newpath
+141.732 722.835 m
+141.732 700.157 l
+0.992126 w
+S
+newpath
+113.386 751.182 m
+140.315 751.182 l
+1 w
+S
+newpath
+143.15 751.182 m
+170.079 751.182 l
+S
+newpath
+140.315 754.016 m
+140.315 748.346 l
+0.283465 w
+S
+newpath
+143.15 754.016 m
+143.15 748.346 l
+S
+%%PageTrailer
+showpage
+%%Trailer
+end
+%%DocumentSuppliedResources: procset Linux-Sketch-Procset 1.0 2
+%%EOF
+
+%%EndDocument
+ @endspecial 1523 2722 a
+ currentpoint currentpoint translate 1 0.74356 div 1 0.74356 div scale
+neg exch neg exch translate
+ 1523 2722 a 382 3055 a Fp(Um)f(dieses)h
+(Problem)h(zu)f(b)s(eseitigen,)g(m)m(\374\377te)h(Heartb)s(eat)f(eine)g
+(Menge)g(v)m(on)g(norma-)382 3168 y(lerw)m(eise)41 b(sic)m(h)m(tbaren)g
+(Ressourcen)f(\(wie)g(z.B.)g(Router,)i(Gatew)m(a)m(ys,)h(.)15
+b(.)g(.)g(\))68 b(\374b)s(erw)m(a-)382 3281 y(c)m(hen.)47
+b(Kann)33 b(Heartb)s(eat)f(k)m(eine)h(dieser)g(Ressourcen)f(mehr)h
+(erreic)m(hen,)h(m)m(u\377)f(es)f(sic)m(h)382 3394 y(b)s(ei)h(anderen)i
+(Knoten)f(des)f(Clusters)h(erkundigen,)i(ob)d(diese)h(no)s(c)m(h)g(die)
+g(Ressourcen)382 3507 y(erreic)m(hen)i(k)m(\366nnen.)52
+b(W)-8 b(enn)34 b(diese)g(die)g(Ressourcen)g(no)s(c)m(h)g(sehen)g(k)m
+(\366nnen,)i(m)m(u\377)f(der)382 3620 y(Knoten)27 b(da)m(v)m(on)g
+(ausgehen,)g(da\377)f(seine)g(Netzw)m(erkk)-5 b(arte)27
+b(o)s(der)f(seine)g(Netzw)m(erk)-5 b(an)m(bin-)382 3732
+y(dung)37 b(ausgefallen)h(ist.)60 b(Alle)37 b(Services)g(m)m(\374ssen)g
+(abgegeb)s(en)h(w)m(erden,)i(der)d(Knoten)382 3845 y(k)-5
+b(ann)30 b(ab)s(er)h(die)f(Spiegelung)i(v)m(on)f(Daten)g(w)m(eiterhin)h
+(durc)m(hf\374hren.)1831 5622 y(78)p eop
+%%Page: 79 81
+79 80 bop 382 1210 a Fk(Kapitel)62 b(7)382 1673 y Fm(Zusammenfassung)
+382 2167 y Fp(HA-Cluster,)49 b(die)c(mit)g(dem)g(Prinzip)h(des)f(F)-8
+b(ailo)m(v)m(ers)46 b(arb)s(eiten,)j(k)m(onn)m(ten)e(b)s(ereits)382
+2280 y(fr\374her)35 b(un)m(ter)h(Lin)m(ux)g(implemen)m(tiert)i(w)m
+(erden.)55 b(Bis)35 b(jetzt)g(w)m(ar)g(es)g(allerdings)h(nic)m(h)m(t)
+382 2393 y(m\366glic)m(h,)49 b(Services)44 b(anzubieten,)49
+b(die)44 b(ihren)g(Datenstand)h(dynamisc)m(h)g(v)m(er\344ndern)382
+2506 y(\(z.B.)25 b(Fileserv)m(er,)h(Daten)m(bankserv)m(er,)h(.)15
+b(.)g(.)g(\),)26 b(da)f(die)f(in)h(Absc)m(hnitt)g(2.3.3.1)g(\(Seite)g
+(12\))382 2619 y(v)m(orgestellten)38 b(Shared)g(SCSI-Devices)f(un)m
+(ter)h(Lin)m(ux)g(\(no)s(c)m(h\))f(nic)m(h)m(t)i(implemen)m(tiert)382
+2731 y(sind.)382 2893 y(Mit)26 b(DRBD,)f(das)h(das)g(Spiegeln)h(v)m(on)
+f(F)-8 b(estplatten)28 b(\374b)s(er)e(IP-basierte)h(Netzw)m(erk)m(e)g
+(er-)382 3006 y(laubt,)f(wird)f(die)g(M\366glic)m(hk)m(eit)h(gesc)m
+(ha\033en,)h(solc)m(he)e(Services)f(mit)h(einem)g(HA-Cluster)382
+3119 y(un)m(ter)31 b(Lin)m(ux)h(anzubieten.)382 3280
+y(Im)c(Zuge)g(der)g(En)m(t)m(wic)m(klung)k(v)m(on)c(DRBD)f(wurde)i(ein)
+f(Algorithm)m(us)i(en)m(t)m(wic)m(k)m(elt,)h(der)382
+3393 y(dem)45 b(Disk-Sc)m(heduler)i(b)s(eim)e(Sc)m(hreib)s(en)i(die)e
+(gr\366\377tm\366glic)m(he)j(F)-8 b(reiheit)47 b(einr\344um)m(t,)382
+3506 y(Bl\366)s(c)m(k)m(e)30 b(umzuordnen,)h(dab)s(ei)f(ab)s(er)f(die)g
+(Reihenfolge,)i(die)e(das)g(Filesystem)g(v)m(orgibt,)382
+3619 y(nic)m(h)m(t)j(v)m(erletzt)f(\(siehe)g(Absc)m(hnitt)g(3.3.1)g
+(auf)g(Seite)g(24\).)382 3780 y(Der)45 b(Durc)m(hsatz)i(eines)e
+(DRBD-Ger\344tes)h(wird)g(nat\374rlic)m(h)h(durc)m(h)f(den)g(Durc)m
+(hsatz)382 3893 y(der)37 b(b)s(eteiligten)h(F)-8 b(estplatten)38
+b(und)f(den)g(Durc)m(hsatz)h(des)f(Netzw)m(erk)m(es)h(b)s(esc)m
+(hr\344nkt.)382 4006 y(In)e(V)-8 b(ersuc)m(hen)38 b(k)m(onn)m(te)g(ein)
+f(Durc)m(hsatz)h(zwisc)m(hen)g(50)f(\045)g(und)g(98)g(\045)f(des)h
+(maximal)382 4119 y(m\366glic)m(hen)32 b(W)-8 b(ertes)31
+b(erreic)m(h)m(t)i(w)m(erden)e(\(siehe)g(Absc)m(hnitt)g(5.4)g(auf)f
+(Seite)h(55\).)382 4280 y(So)m(w)m(ohl)46 b(die)f(Cluster-Managemen)m
+(t-Soft)m(w)m(are)k(als)44 b(auc)m(h)i(die)e(neuen)h(Filesysteme)382
+4393 y(stec)m(k)m(en)37 b(no)s(c)m(h)f(in)g(ihren)h(Kindersc)m(h)m
+(uhen,)j(do)s(c)m(h)d(die)f(st\344ndig)g(pr\344sen)m(te)h(Nac)m(hfrage)
+382 4506 y(nac)m(h)31 b(HA-L\366sungen)g(wird)g(die)g(En)m(t)m(wic)m
+(klungen)j(auc)m(h)d(in)g(Zukunft)f(v)m(oran)m(treib)s(en.)382
+4668 y(Da)45 b(PC-Hardw)m(are)i(w)m(esen)m(tlic)m(h)h(billiger)e(ist)f
+(und)g(DRBD)f(auc)m(h)i(die)g(k)m(ostspielige)382 4781
+y(Hardw)m(are)32 b(f\374r)e(Shared)i(Disks)d(ersetzt,)j(k)m(\366nn)m
+(ten)g(sic)m(h)f(HA-Clustern)g(auf)f(der)h(Basis)382
+4894 y(v)m(on)44 b(Lin)m(ux)g(neue)g(An)m(w)m(endungsgebiete)j
+(er\366\033nen,)h(die)43 b(ihnen)i(bisher)e(w)m(egen)i(der)382
+5006 y(hohen)31 b(K)m(osten)g(v)m(erw)m(ehrt)i(w)m(aren.)382
+5168 y(Ob)43 b(sic)m(h)h(DRBD)e(als)h(Alternativ)m(e)i(zu)e(Shared)h
+(Disks)e(b)s(ehaupten)j(k)m(\366nnen)f(wird,)382 5281
+y(wird)32 b(sic)m(h)f(no)s(c)m(h)h(herausstellen.)44
+b(Dies)31 b(wird)g(zu)h(einem)g(Gro\377teil)g(da)m(v)m(on)g
+(abh\344ngen,)382 5394 y(ob)27 b(DRBD)f(v)m(on)h(den)g(Lin)m
+(ux-Distributoren)j(in)c(ihre)i(Distributionen)g(aufgenommen)1831
+5622 y(79)p eop
+%%Page: 80 82
+80 81 bop 382 262 a Fl(KAPITEL)31 b(7.)71 b(ZUSAMMENF)-10
+b(ASSUNG)p 382 299 2989 4 v 382 539 a Fp(wird;)40 b(und)d(genau)h(das)e
+(zeic)m(hnet)j(sic)m(h)e(b)s(ereits)f(ab.)60 b(DRBD)36
+b(wird)h(als)f(Bestandteil)382 652 y(der)21 b(n\344c)m(hsten)i
+(Connectiv)-5 b(a-Lin)m(ux-Distribution)25 b(ersc)m(heinen,)g(und)c
+(auc)m(h)i(SuSE)f(zeigt)382 764 y(In)m(teresse.)382 927
+y(Do)s(c)m(h)35 b(DRBD)g(wird)g(sic)m(her)h(nic)m(h)m(t)h(die)e(letzte)
+h(in)m(teressan)m(te)h(En)m(t)m(wic)m(klung)h(auf)d(dem)382
+1040 y(Gebiet)45 b(des)f(Clusterings)h(sein.)82 b(V)-8
+b(or)44 b(allem)h(An)m(bieter)h(v)m(on)e(W)-8 b(eb-Applik)j(ationen)382
+1153 y(bauen)26 b(Cluster,)h(b)s(ei)f(denen)g(die)f(Netzw)m(erklast)i
+(auf)e(mehrere)i(Knoten)f(v)m(erteilt)h(wird.)382 1266
+y(F\374r)34 b(diesen)g(Cluster-T)m(yp)h(br\344uc)m(h)m(te)h(man)f(ein)f
+(v)m(erteiltes)h(Filesystem,)f(das)g(so)m(w)m(ohl)382
+1379 y(Redundanz,)29 b(hohe)g(P)m(erformance,)i(Sp)s(erren)d(v)m(on)g
+(Dateien)h(und)f(sim)m(ultanen)i(Zugri\033)382 1492 y(v)m(on)h(allen)g
+(Knoten)g(des)f(Clusters)h(aus)f(erlaubt.)1831 5622 y(80)p
+eop
+%%Page: 81 83
+81 82 bop 382 1199 a Fk(Anhang)60 b(A)382 1652 y Fm(Me\377ergebnisse)
+382 2136 y Fp(Die)31 b(Angab)s(en)g(in)g(den)g(Spalten)h(F)-8
+b(estplatte,)32 b(DRBD)e(n.)h(v.,)f(Prot.)43 b(A,)30
+b(Prot.)43 b(B)30 b(und)382 2248 y(Prot.)41 b(C)31 b(sind)f(in)g(MB/s.)
+493 2464 y(1.)648 2659 y(\(a\))p 809 2775 2808 4 v 807
+3326 4 552 v 922 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 3292 a Fp(Knoten)1213 3292
+y
+ currentpoint grestore moveto
+ 1213 3292 a 970 3326 4 552 v 1157 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 3292
+a Fp(System)1442 3292 y
+ currentpoint grestore moveto
+ 1442 3292 a 1297 3326 4 552 v
+1555 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1555 3292 a Fp(V)-8 b(ersion)1847 3292 y
+ currentpoint grestore moveto
+
+1847 3292 a 1748 3326 4 552 v 1911 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1911 3292 a
+Fp(Arc)m(hitektur)2370 3292 y
+ currentpoint grestore moveto
+ 2370 3292 a 2008 3326 4
+552 v 2208 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2208 3292 a Fp(BogoMips)2601 3292 y
+ currentpoint grestore moveto
+
+2601 3292 a 2359 3326 4 552 v 2513 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2513 3292 a
+Fp(F)g(estplatte)2907 3292 y
+ currentpoint grestore moveto
+ 2907 3292 a 2619 3326 4
+552 v 2782 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2782 3292 a Fp(DRBD)30 b(n.)41 b(v.)3300
+3292 y
+ currentpoint grestore moveto
+ 3300 3292 a 2880 3326 4 552 v 3020 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3020
+3292 a Fp(Prot.)g(A)3330 3292 y
+ currentpoint grestore moveto
+ 3330 3292 a 3095 3326
+4 552 v 3258 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3258 3292 a Fp(Prot.)g(B)3564 3292
+y
+ currentpoint grestore moveto
+ 3564 3292 a 3355 3326 4 552 v 3518 3292 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3518 3292
+a Fp(Prot.)g(C)3826 3292 y
+ currentpoint grestore moveto
+ 3826 3292 a 3615 3326 4 552
+v 809 3329 2808 4 v 809 3346 V 807 3459 4 113 v 868 3425
+a Fp(1)p 970 3459 V 108 w(Lin)m(ux)p 1297 3459 V 101
+w(2.2.12-20)p 1748 3459 V 101 w(i386)p 2008 3459 V 101
+w(265,42)p 2359 3459 V 100 w(2,27)p 2619 3459 V 101 w(1,99)p
+2880 3459 V 100 w(1,3)p 3095 3459 V 100 w(1,29)p 3355
+3459 V 101 w(1,51)p 3615 3459 V 809 3462 2808 4 v 807
+3575 4 113 v 868 3541 a(2)p 970 3575 V 108 w(Lin)m(ux)p
+1297 3575 V 101 w(2.2.12-20)p 1748 3575 V 101 w(i386)p
+2008 3575 V 101 w(265,42)p 2359 3575 V 100 w(2,23)p 2619
+3575 V 101 w(2,04)p 2880 3575 V 100 w(1,3)p 3095 3575
+V 100 w(1,29)p 3355 3575 V 101 w(1,59)p 3615 3575 V 809
+3578 2808 4 v 859 3818 a(Netzw)m(erkbandbreite:)103 b(4,33)31
+b(MB/s)543 b(Datengr\366\377e:)101 b(10)31 b(MB)1045
+3931 y(Netzw)m(erklatenz:)102 b(0,1/0,8/36,4)32 b(ms)199
+b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)643 4133 y(\(b\))p
+809 4249 2854 4 v 807 4800 4 552 v 922 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 4767
+a Fp(Knoten)1213 4767 y
+ currentpoint grestore moveto
+ 1213 4767 a 970 4800 4 552 v
+1157 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 4767 a Fp(System)1442 4767 y
+ currentpoint grestore moveto
+ 1442 4767
+a 1297 4800 4 552 v 1555 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1555 4767 a Fp(V)-8 b(ersion)1847
+4767 y
+ currentpoint grestore moveto
+ 1847 4767 a 1748 4800 4 552 v 1911 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1911
+4767 a Fp(Arc)m(hitektur)2370 4767 y
+ currentpoint grestore moveto
+ 2370 4767 a 2008
+4800 4 552 v 2208 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2208 4767 a Fp(BogoMips)2601
+4767 y
+ currentpoint grestore moveto
+ 2601 4767 a 2359 4800 4 552 v 2513 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2513
+4767 a Fp(F)g(estplatte)2907 4767 y
+ currentpoint grestore moveto
+ 2907 4767 a 2619
+4800 4 552 v 2782 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2782 4767 a Fp(DRBD)30 b(n.)41
+b(v.)3300 4767 y
+ currentpoint grestore moveto
+ 3300 4767 a 2880 4800 4 552 v 3043 4767
+a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3043 4767 a Fp(Prot.)g(A)3353 4767 y
+ currentpoint grestore moveto
+ 3353 4767 a 3140
+4800 4 552 v 3303 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3303 4767 a Fp(Prot.)g(B)3609
+4767 y
+ currentpoint grestore moveto
+ 3609 4767 a 3400 4800 4 552 v 3563 4767 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3563
+4767 a Fp(Prot.)h(C)3871 4767 y
+ currentpoint grestore moveto
+ 3871 4767 a 3661 4800
+4 552 v 809 4804 2854 4 v 809 4820 V 807 4933 4 113 v
+868 4899 a Fp(1)p 970 4933 V 108 w(Lin)m(ux)p 1297 4933
+V 101 w(2.2.12-20)p 1748 4933 V 101 w(i386)p 2008 4933
+V 101 w(265,42)p 2359 4933 V 100 w(2,26)p 2619 4933 V
+101 w(1,96)p 2880 4933 V 100 w(1,34)p 3140 4933 V 100
+w(1,29)p 3400 4933 V 101 w(1,48)p 3661 4933 V 809 4937
+2854 4 v 807 5049 4 113 v 868 5016 a(2)p 970 5049 V 108
+w(Lin)m(ux)p 1297 5049 V 101 w(2.2.12-20)p 1748 5049
+V 101 w(i386)p 2008 5049 V 101 w(265,42)p 2359 5049 V
+100 w(2,25)p 2619 5049 V 101 w(1,99)p 2880 5049 V 100
+w(1,31)p 3140 5049 V 123 w(1,3)p 3400 5049 V 123 w(1,49)p
+3661 5049 V 809 5053 2854 4 v 859 5293 a(Netzw)m(erkbandbreite:)103
+b(9,7)30 b(MB/s)589 b(Datengr\366\377e:)101 b(100)31
+b(MB)1045 5406 y(Netzw)m(erklatenz:)102 b(0,1/0,8/34,3)32
+b(ms)199 b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)1831
+5622 y(81)p eop
+%%Page: 82 84
+82 83 bop 382 262 a Fl(ANHANG)29 b(A.)60 b(ME\337ER)m(GEBNISSE)p
+382 299 2989 4 v 493 539 a Fp(2.)648 749 y(\(a\))p 809
+870 2788 4 v 807 1421 4 552 v 922 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 1387 a Fp(Knoten)1213
+1387 y
+ currentpoint grestore moveto
+ 1213 1387 a 970 1421 4 552 v 1157 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157
+1387 a Fp(System)1442 1387 y
+ currentpoint grestore moveto
+ 1442 1387 a 1297 1421 4
+552 v 1495 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1495 1387 a Fp(V)-8 b(ersion)1787 1387
+y
+ currentpoint grestore moveto
+ 1787 1387 a 1627 1421 4 552 v 1818 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1818 1387
+a Fp(Arc)m(hitektur)2278 1387 y
+ currentpoint grestore moveto
+ 2278 1387 a 1943 1421
+4 552 v 2142 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2142 1387 a Fp(BogoMips)2536 1387
+y
+ currentpoint grestore moveto
+ 2536 1387 a 2294 1421 4 552 v 2448 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2448 1387
+a Fp(F)g(estplatte)2841 1387 y
+ currentpoint grestore moveto
+ 2841 1387 a 2554 1421
+4 552 v 2717 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2717 1387 a Fp(DRBD)30 b(n.)40 b(v.)3234
+1387 y
+ currentpoint grestore moveto
+ 3234 1387 a 2814 1421 4 552 v 2977 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2977
+1387 a Fp(Prot.)i(A)3287 1387 y
+ currentpoint grestore moveto
+ 3287 1387 a 3075 1421
+4 552 v 3238 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3238 1387 a Fp(Prot.)f(B)3544 1387
+y
+ currentpoint grestore moveto
+ 3544 1387 a 3335 1421 4 552 v 3498 1387 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3498 1387
+a Fp(Prot.)g(C)3806 1387 y
+ currentpoint grestore moveto
+ 3806 1387 a 3595 1421 4 552
+v 809 1424 2788 4 v 809 1441 V 807 1554 4 113 v 868 1520
+a Fp(1)p 970 1554 V 108 w(Lin)m(ux)p 1297 1554 V 101
+w(2.2.13)p 1627 1554 V 101 w(alpha)p 1943 1554 V 100
+w(528,48)p 2294 1554 V 101 w(4,49)p 2554 1554 V 100 w(4,68)p
+2814 1554 V 123 w(0,7)p 3075 1554 V 123 w(0,73)p 3335
+1554 V 100 w(0,65)p 3595 1554 V 809 1557 2788 4 v 807
+1670 4 113 v 868 1636 a(2)p 970 1670 V 108 w(Lin)m(ux)p
+1297 1670 V 101 w(2.2.13)p 1627 1670 V 128 w(i586)p 1943
+1670 V 151 w(47,82)p 2294 1670 V 123 w(2,09)p 2554 1670
+V 100 w(2,11)p 2814 1670 V 101 w(0,95)p 3075 1670 V 100
+w(0,94)p 3335 1670 V 100 w(0,91)p 3595 1670 V 809 1674
+2788 4 v 859 1919 a(Netzw)m(erkbandbreite:)103 b(0,95)31
+b(MB/s)498 b(Datengr\366\377e:)101 b(10)31 b(MB)1045
+2031 y(Netzw)m(erklatenz:)102 b(0,5/0,5/0,8)32 b(ms)199
+b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)643 2244 y(\(b\))p
+809 2366 V 807 2917 4 552 v 922 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 2883 a Fp(Knoten)1213
+2883 y
+ currentpoint grestore moveto
+ 1213 2883 a 970 2917 4 552 v 1157 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157
+2883 a Fp(System)1442 2883 y
+ currentpoint grestore moveto
+ 1442 2883 a 1297 2917 4
+552 v 1495 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1495 2883 a Fp(V)-8 b(ersion)1787 2883
+y
+ currentpoint grestore moveto
+ 1787 2883 a 1627 2917 4 552 v 1818 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1818 2883
+a Fp(Arc)m(hitektur)2278 2883 y
+ currentpoint grestore moveto
+ 2278 2883 a 1943 2917
+4 552 v 2142 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2142 2883 a Fp(BogoMips)2536 2883
+y
+ currentpoint grestore moveto
+ 2536 2883 a 2294 2917 4 552 v 2448 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2448 2883
+a Fp(F)g(estplatte)2841 2883 y
+ currentpoint grestore moveto
+ 2841 2883 a 2554 2917
+4 552 v 2717 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2717 2883 a Fp(DRBD)30 b(n.)40 b(v.)3234
+2883 y
+ currentpoint grestore moveto
+ 3234 2883 a 2814 2917 4 552 v 2977 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2977
+2883 a Fp(Prot.)i(A)3287 2883 y
+ currentpoint grestore moveto
+ 3287 2883 a 3075 2917
+4 552 v 3238 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3238 2883 a Fp(Prot.)f(B)3544 2883
+y
+ currentpoint grestore moveto
+ 3544 2883 a 3335 2917 4 552 v 3498 2883 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3498 2883
+a Fp(Prot.)g(C)3806 2883 y
+ currentpoint grestore moveto
+ 3806 2883 a 3595 2917 4 552
+v 809 2920 2788 4 v 809 2937 V 807 3049 4 113 v 868 3016
+a Fp(1)p 970 3049 V 108 w(Lin)m(ux)p 1297 3049 V 101
+w(2.2.13)p 1627 3049 V 101 w(alpha)p 1943 3049 V 100
+w(528,48)p 2294 3049 V 101 w(4,94)p 2554 3049 V 100 w(4,81)p
+2814 3049 V 101 w(0,74)p 3075 3049 V 100 w(0,74)p 3335
+3049 V 100 w(0,73)p 3595 3049 V 809 3053 2788 4 v 807
+3166 4 113 v 868 3132 a(2)p 970 3166 V 108 w(Lin)m(ux)p
+1297 3166 V 101 w(2.2.13)p 1627 3166 V 128 w(i586)p 1943
+3166 V 151 w(47,82)p 2294 3166 V 123 w(2,05)p 2554 3166
+V 100 w(1,16)p 2814 3166 V 101 w(0,95)p 3075 3166 V 100
+w(0,94)p 3335 3166 V 100 w(0,93)p 3595 3166 V 809 3169
+2788 4 v 859 3414 a(Netzw)m(erkbandbreite:)103 b(1,04)31
+b(MB/s)498 b(Datengr\366\377e:)101 b(55)31 b(MB)1045
+3527 y(Netzw)m(erklatenz:)102 b(0,5/0,5/0,7)32 b(ms)199
+b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)493 3796 y(3.)648
+4007 y(\(a\))p 809 4128 3009 4 v 807 4679 4 552 v 922
+4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 4645 a Fp(Knoten)1213 4645 y
+ currentpoint grestore moveto
+ 1213 4645 a 970
+4679 4 552 v 1157 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 4645 a Fp(System)1442 4645
+y
+ currentpoint grestore moveto
+ 1442 4645 a 1297 4679 4 552 v 1588 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1588 4645
+a Fp(V)-8 b(ersion)1880 4645 y
+ currentpoint grestore moveto
+ 1880 4645 a 1813 4679
+4 552 v 1976 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1976 4645 a Fp(Arc)m(hitektur)2436
+4645 y
+ currentpoint grestore moveto
+ 2436 4645 a 2073 4679 4 552 v 2273 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2273
+4645 a Fp(BogoMips)2666 4645 y
+ currentpoint grestore moveto
+ 2666 4645 a 2424 4679
+4 552 v 2601 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2601 4645 a Fp(F)g(estplatte)2995
+4645 y
+ currentpoint grestore moveto
+ 2995 4645 a 2730 4679 4 552 v 2915 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2915
+4645 a Fp(DRBD)30 b(n.)41 b(v.)3433 4645 y
+ currentpoint grestore moveto
+ 3433 4645
+a 3035 4679 4 552 v 3198 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3198 4645 a Fp(Prot.)h(A)3508
+4645 y
+ currentpoint grestore moveto
+ 3508 4645 a 3296 4679 4 552 v 3459 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3459
+4645 a Fp(Prot.)f(B)3765 4645 y
+ currentpoint grestore moveto
+ 3765 4645 a 3556 4679
+4 552 v 3719 4645 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3719 4645 a Fp(Prot.)g(C)4027 4645
+y
+ currentpoint grestore moveto
+ 4027 4645 a 3816 4679 4 552 v 809 4682 3009 4 v 809
+4699 V 807 4812 4 113 v 868 4778 a Fp(1)p 970 4812 V
+108 w(Lin)m(ux)p 1297 4812 V 124 w(2.2.14-9cl)p 1813
+4812 V 124 w(i586)p 2073 4812 V 100 w(897,84)p 2424 4812
+V 101 w(11,17)p 2730 4812 V 100 w(10,21)p 3035 4812 V
+101 w(3,67)p 3296 4812 V 100 w(3,59)p 3556 4812 V 100
+w(3,56)p 3816 4812 V 809 4815 3009 4 v 807 4928 4 113
+v 868 4894 a(2)p 970 4928 V 108 w(Lin)m(ux)p 1297 4928
+V 101 w(2.2.14-14cl)p 1813 4928 V 102 w(i586)p 2073 4928
+V 100 w(799,54)p 2424 4928 V 123 w(8,66)p 2730 4928 V
+168 w(7,8)p 3035 4928 V 168 w(3,8)p 3296 4928 V 123 w(3,69)p
+3556 4928 V 100 w(3,99)p 3816 4928 V 809 4931 3009 4
+v 859 5176 a(Netzw)m(erkbandbreite:)103 b(8,6)30 b(MB/s)544
+b(Datengr\366\377e:)101 b(100)31 b(MB)1045 5289 y(Netzw)m(erklatenz:)
+102 b(0,0/0,0/0,3)32 b(ms)199 b(DRBD)30 b(V)-8 b(ersion:)100
+b(0.5.3)1831 5622 y(82)p eop
+%%Page: 83 85
+83 84 bop 382 262 a Fl(ANHANG)29 b(A.)60 b(ME\337ER)m(GEBNISSE)p
+382 299 2989 4 v 643 539 a Fp(\(b\))p 809 660 2964 4
+v 807 1211 4 552 v 922 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 1178 a Fp(Knoten)1213
+1178 y
+ currentpoint grestore moveto
+ 1213 1178 a 970 1211 4 552 v 1157 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157
+1178 a Fp(System)1442 1178 y
+ currentpoint grestore moveto
+ 1442 1178 a 1297 1211 4
+552 v 1588 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1588 1178 a Fp(V)-8 b(ersion)1880 1178
+y
+ currentpoint grestore moveto
+ 1880 1178 a 1813 1211 4 552 v 1976 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1976 1178
+a Fp(Arc)m(hitektur)2436 1178 y
+ currentpoint grestore moveto
+ 2436 1178 a 2073 1211
+4 552 v 2273 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2273 1178 a Fp(BogoMips)2666 1178
+y
+ currentpoint grestore moveto
+ 2666 1178 a 2424 1211 4 552 v 2601 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2601 1178
+a Fp(F)g(estplatte)2995 1178 y
+ currentpoint grestore moveto
+ 2995 1178 a 2730 1211
+4 552 v 2893 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2893 1178 a Fp(DRBD)30 b(n.)40 b(v.)3410
+1178 y
+ currentpoint grestore moveto
+ 3410 1178 a 2990 1211 4 552 v 3153 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3153
+1178 a Fp(Prot.)h(A)3463 1178 y
+ currentpoint grestore moveto
+ 3463 1178 a 3250 1211
+4 552 v 3414 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3414 1178 a Fp(Prot.)g(B)3720 1178
+y
+ currentpoint grestore moveto
+ 3720 1178 a 3511 1211 4 552 v 3674 1178 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3674 1178
+a Fp(Prot.)g(C)3981 1178 y
+ currentpoint grestore moveto
+ 3981 1178 a 3771 1211 4 552
+v 809 1215 2964 4 v 809 1231 V 807 1344 4 113 v 868 1310
+a Fp(1)p 970 1344 V 108 w(Lin)m(ux)p 1297 1344 V 124
+w(2.2.14-9cl)p 1813 1344 V 124 w(i586)p 2073 1344 V 100
+w(897,84)p 2424 1344 V 101 w(14,88)p 2730 1344 V 100
+w(12,9)p 2990 1344 V 101 w(4,94)p 3250 1344 V 100 w(4,68)p
+3511 1344 V 100 w(4,57)p 3771 1344 V 809 1348 2964 4
+v 807 1461 4 113 v 868 1427 a(2)p 970 1461 V 108 w(Lin)m(ux)p
+1297 1461 V 101 w(2.2.14-14cl)p 1813 1461 V 102 w(i586)p
+2073 1461 V 100 w(799,54)p 2424 1461 V 101 w(10,97)p
+2730 1461 V 100 w(9,11)p 2990 1461 V 101 w(5,35)p 3250
+1461 V 122 w(5,3)p 3511 1461 V 146 w(5,2)p 3771 1461
+V 809 1464 2964 4 v 859 1710 a(Netzw)m(erkbandbreite:)103
+b(8,7)30 b(MB/s)544 b(Datengr\366\377e:)101 b(100)31
+b(MB)1045 1822 y(Netzw)m(erklatenz:)102 b(0,0/0,0/0,2)32
+b(ms)199 b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)653 2037
+y(\(c\))p 809 2159 3009 4 v 807 2710 4 552 v 922 2676
+a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 2676 a Fp(Knoten)1213 2676 y
+ currentpoint grestore moveto
+ 1213 2676 a 970 2710
+4 552 v 1157 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 2676 a Fp(System)1442 2676 y
+ currentpoint grestore moveto
+
+1442 2676 a 1297 2710 4 552 v 1588 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1588 2676 a
+Fp(V)-8 b(ersion)1880 2676 y
+ currentpoint grestore moveto
+ 1880 2676 a 1813 2710 4
+552 v 1976 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1976 2676 a Fp(Arc)m(hitektur)2436
+2676 y
+ currentpoint grestore moveto
+ 2436 2676 a 2073 2710 4 552 v 2273 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2273
+2676 a Fp(BogoMips)2666 2676 y
+ currentpoint grestore moveto
+ 2666 2676 a 2424 2710
+4 552 v 2601 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2601 2676 a Fp(F)g(estplatte)2995
+2676 y
+ currentpoint grestore moveto
+ 2995 2676 a 2730 2710 4 552 v 2915 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2915
+2676 a Fp(DRBD)30 b(n.)41 b(v.)3433 2676 y
+ currentpoint grestore moveto
+ 3433 2676
+a 3035 2710 4 552 v 3198 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3198 2676 a Fp(Prot.)h(A)3508
+2676 y
+ currentpoint grestore moveto
+ 3508 2676 a 3296 2710 4 552 v 3459 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3459
+2676 a Fp(Prot.)f(B)3765 2676 y
+ currentpoint grestore moveto
+ 3765 2676 a 3556 2710
+4 552 v 3719 2676 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3719 2676 a Fp(Prot.)g(C)4027 2676
+y
+ currentpoint grestore moveto
+ 4027 2676 a 3816 2710 4 552 v 809 2713 3009 4 v 809
+2730 V 807 2843 4 113 v 868 2809 a Fp(1)p 970 2843 V
+108 w(Lin)m(ux)p 1297 2843 V 124 w(2.2.14-9cl)p 1813
+2843 V 124 w(i586)p 2073 2843 V 100 w(897,84)p 2424 2843
+V 101 w(15,79)p 2730 2843 V 100 w(14,18)p 3035 2843 V
+101 w(1,06)p 3296 2843 V 100 w(1,06)p 3556 2843 V 100
+w(1,01)p 3816 2843 V 809 2846 3009 4 v 807 2959 4 113
+v 868 2925 a(2)p 970 2959 V 108 w(Lin)m(ux)p 1297 2959
+V 101 w(2.2.14-14cl)p 1813 2959 V 102 w(i586)p 2073 2959
+V 100 w(799,54)p 2424 2959 V 101 w(11,34)p 2730 2959
+V 123 w(9,83)p 3035 2959 V 123 w(0,87)p 3296 2959 V 100
+w(0,92)p 3556 2959 V 100 w(0,87)p 3816 2959 V 809 2962
+3009 4 v 859 3208 a(Netzw)m(erkbandbreite:)103 b(0,94)31
+b(MB/s)498 b(Datengr\366\377e:)101 b(100)31 b(MB)1045
+3321 y(Netzw)m(erklatenz:)102 b(0,3/0,3/0,5)32 b(ms)199
+b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)493 3592 y(4.)648
+3805 y(\(a\))p 809 3927 2778 4 v 807 4478 4 552 v 922
+4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 4444 a Fp(Knoten)1213 4444 y
+ currentpoint grestore moveto
+ 1213 4444 a 970
+4478 4 552 v 1157 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 4444 a Fp(System)1442 4444
+y
+ currentpoint grestore moveto
+ 1442 4444 a 1297 4478 4 552 v 1495 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1495 4444
+a Fp(V)-8 b(ersion)1787 4444 y
+ currentpoint grestore moveto
+ 1787 4444 a 1627 4478
+4 552 v 1790 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1790 4444 a Fp(Arc)m(hitektur)2250
+4444 y
+ currentpoint grestore moveto
+ 2250 4444 a 1888 4478 4 552 v 2087 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2087
+4444 a Fp(BogoMips)2481 4444 y
+ currentpoint grestore moveto
+ 2481 4444 a 2238 4478
+4 552 v 2415 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2415 4444 a Fp(F)g(estplatte)2809
+4444 y
+ currentpoint grestore moveto
+ 2809 4444 a 2544 4478 4 552 v 2707 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2707
+4444 a Fp(DRBD)30 b(n.)40 b(v.)3224 4444 y
+ currentpoint grestore moveto
+ 3224 4444
+a 2804 4478 4 552 v 2967 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2967 4444 a Fp(Prot.)i(A)3277
+4444 y
+ currentpoint grestore moveto
+ 3277 4444 a 3065 4478 4 552 v 3228 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3228
+4444 a Fp(Prot.)f(B)3534 4444 y
+ currentpoint grestore moveto
+ 3534 4444 a 3325 4478
+4 552 v 3488 4444 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3488 4444 a Fp(Prot.)g(C)3796 4444
+y
+ currentpoint grestore moveto
+ 3796 4444 a 3585 4478 4 552 v 809 4481 2778 4 v 809
+4498 V 807 4610 4 113 v 868 4577 a Fp(1)p 970 4610 V
+108 w(Lin)m(ux)p 1297 4610 V 101 w(2.2.14)p 1627 4610
+V 101 w(i686)p 1888 4610 V 100 w(498,07)p 2238 4610 V
+101 w(11,23)p 2544 4610 V 100 w(10,4)p 2804 4610 V 101
+w(6,63)p 3065 4610 V 100 w(6,28)p 3325 4610 V 100 w(5,63)p
+3585 4610 V 809 4614 2778 4 v 807 4727 4 113 v 868 4693
+a(2)p 970 4727 V 108 w(Lin)m(ux)p 1297 4727 V 101 w(2.2.14)p
+1627 4727 V 101 w(i586)p 1888 4727 V 100 w(466,94)p 2238
+4727 V 123 w(6,76)p 2544 4727 V 123 w(6,06)p 2804 4727
+V 101 w(6,26)p 3065 4727 V 100 w(6,46)p 3325 4727 V 123
+w(5,4)p 3585 4727 V 809 4730 2778 4 v 859 4976 a(Netzw)m
+(erkbandbreite:)103 b(11,1)31 b(MB/s)498 b(Datengr\366\377e:)101
+b(100)31 b(MB)1045 5089 y(Netzw)m(erklatenz:)102 b(0,0/0,0/0,2)32
+b(ms)199 b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)643 5303
+y(\(b\))1831 5622 y(83)p eop
+%%Page: 84 86
+84 85 bop 382 262 a Fl(ANHANG)29 b(A.)60 b(ME\337ER)m(GEBNISSE)p
+382 299 2989 4 v 809 451 2733 4 v 807 1002 4 552 v 922
+968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 922 968 a Fp(Knoten)1213 968 y
+ currentpoint grestore moveto
+ 1213 968 a 970 1002
+4 552 v 1157 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1157 968 a Fp(System)1442 968 y
+ currentpoint grestore moveto
+ 1442
+968 a 1297 1002 4 552 v 1495 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1495 968 a Fp(V)-8
+b(ersion)1787 968 y
+ currentpoint grestore moveto
+ 1787 968 a 1627 1002 4 552 v 1790
+968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 1790 968 a Fp(Arc)m(hitektur)2250 968 y
+ currentpoint grestore moveto
+ 2250 968
+a 1888 1002 4 552 v 2087 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2087 968 a Fp(BogoMips)2481
+968 y
+ currentpoint grestore moveto
+ 2481 968 a 2238 1002 4 552 v 2393 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2393 968
+a Fp(F)g(estplatte)2786 968 y
+ currentpoint grestore moveto
+ 2786 968 a 2499 1002 4
+552 v 2662 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2662 968 a Fp(DRBD)30 b(n.)40 b(v.)3179
+968 y
+ currentpoint grestore moveto
+ 3179 968 a 2759 1002 4 552 v 2922 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 2922 968
+a Fp(Prot.)h(A)3232 968 y
+ currentpoint grestore moveto
+ 3232 968 a 3019 1002 4 552
+v 3182 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3182 968 a Fp(Prot.)h(B)3489 968 y
+ currentpoint grestore moveto
+ 3489
+968 a 3280 1002 4 552 v 3443 968 a
+ gsave currentpoint currentpoint translate 90 neg rotate neg exch neg
+exch translate
+ 3443 968 a Fp(Prot.)f(C)3750
+968 y
+ currentpoint grestore moveto
+ 3750 968 a 3540 1002 4 552 v 809 1005 2733 4 v
+809 1022 V 807 1134 4 113 v 868 1101 a Fp(1)p 970 1134
+V 108 w(Lin)m(ux)p 1297 1134 V 101 w(2.2.14)p 1627 1134
+V 101 w(i686)p 1888 1134 V 100 w(498,07)p 2238 1134 V
+101 w(11,3)p 2499 1134 V 100 w(9,65)p 2759 1134 V 100
+w(6,14)p 3019 1134 V 101 w(6,18)p 3280 1134 V 100 w(5,29)p
+3540 1134 V 809 1138 2733 4 v 807 1251 4 113 v 868 1217
+a(2)p 970 1251 V 108 w(Lin)m(ux)p 1297 1251 V 101 w(2.2.14)p
+1627 1251 V 101 w(i586)p 1888 1251 V 100 w(466,94)p 2238
+1251 V 101 w(6,62)p 2499 1251 V 100 w(6,34)p 2759 1251
+V 100 w(6,27)p 3019 1251 V 101 w(6,27)p 3280 1251 V 100
+w(6,08)p 3540 1251 V 809 1254 2733 4 v 859 1500 a(Netzw)m
+(erkbandbreite:)103 b(11,1)31 b(MB/s)498 b(Datengr\366\377e:)101
+b(100)31 b(MB)1045 1613 y(Netzw)m(erklatenz:)102 b(0,0/0,0/0,2)32
+b(ms)199 b(DRBD)30 b(V)-8 b(ersion:)100 b(0.5.3)1831
+5622 y(84)p eop
+%%Page: 85 87
+85 86 bop 382 1247 a Fm(Literaturv)-6 b(erzeic)g(hnis)382
+1726 y Fp([BBDK97])68 b(Mic)m(hael)42 b(Bec)m(k,)i(Harald)e(B\366hme,)j
+(Mirk)m(o)d(Dzadzk)-5 b(a,)44 b(Ulric)m(h)e(Kunitz,)857
+1839 y(Rob)s(ert)23 b(Magn)m(us,)j(Dirk)d(V)-8 b(erw)m(orner.)26
+b Fa(Linux-Kernel-Pr)-5 b(o)g(gr)g(ammierung)857 1952
+y(A)n(lgorithmen)24 b(und)g(Struktur)-5 b(en)26 b(der)e(V)-7
+b(ersion)24 b(2.0)p Fp(,)f(4.)f(Au\035age.)g(A)m(ddison)857
+2065 y(W)-8 b(eseley)30 b(Longman,)i(Bonn)f(1997.)382
+2246 y([HHMK94])46 b(Sebastian)34 b(Hetze,)h(Dirk)f(Hohndel,)i(Martin)e
+(M\374ller,)h(Olaf)f(Kirc)m(h.)h Fa(Li-)857 2359 y(nuX)48
+b(A)n(nwenderhandbuch)j(und)d(L)-5 b(eitfaden)49 b(f\374r)g(die)g
+(Systemverwal-)857 2472 y(tung)p Fp(.)40 b(4.)f(erw)m(eiterte)j(und)e
+(aktualisierte)g(Au\035age.)g(LunetIX)g(Softfair)857
+2585 y(1994.)382 2767 y([Hor98])187 b(Simon)132 b(Horman.)g
+Fa(Cr)-5 b(e)g(ating)125 b(R)-5 b(e)g(dundant)126 b(Linux)f(Servers.)
+857 2880 y Fp(h)m(ttp://www.us.v)m(ergenet.net/lin)m(ux/redun)q(dan)n
+(t_lin)n(ux_p)q(ap)s(er-)857 2993 y(/talk/redundan)m(t_lin)m(ux.ps.bz2)
+382 3174 y([K)m(op97])173 b(Hermann)44 b(K)m(op)s(etz.)h
+Fa(REAL)f(TIME)g(SYSTEMS)f(Design)i(Principles)857 3287
+y(for)g(Distribute)-5 b(d)47 b(Emb)-5 b(e)g(dde)g(d)48
+b(Applic)-5 b(ations)p Fp(.)45 b(Ku)m(wler)i(A)m(cademic)f(Pu-)857
+3400 y(blishers,)30 b(Boston,)h(1997.)382 3582 y([Lew99])174
+b(Phil)21 b(Lewis.)h Fa(A)i(High-A)n(vailability)g(Cluster)g(for)f
+(Linux.)g(Linux)h(Journal)p Fp(,)857 3695 y(Issue)f(64,)i(August)f
+(1999.)g(Sp)s(ecialized)h(Systems)f(Consultan)m(ts,)i(Seattle.)382
+3877 y([Mil98])202 b(Harald)168 b(Milz.)g Fa(Linux)159
+b(High)g(A)n(vailability)f(HO)n(WTO.)857 3989 y Fp(h)m
+(ttp://metalab.unc.edu/pub/Lin)n(ux/ALPHA/lin)n(ux-ha/)q(High-)857
+4102 y(A)-10 b(v)-5 b(ailabilit)m(y-HO)m(WTO.h)m(tml)382
+4284 y([MPI97])158 b Fa(MPI-2:)41 b(Extensions)31 b(to)h(the)h
+(Message-Passing)g(Interfac)-5 b(e.)30 b Fp(1997)g(Uni-)857
+4397 y(v)m(ersit)m(y)51 b(of)g(T)-8 b(ennessee,)57 b(Kno)m(xville,)g(T)
+-8 b(ennessee.)52 b(h)m(ttp://www.mpi-)857 4510 y(forum.org/do)s
+(cs/mpi-20.ps.Z)382 4692 y([P\03498])224 b(Gregory)43
+b(F.)g(P\034ster.)h Fa(In)f(se)-5 b(ar)g(ch)46 b(of)e(Clusters)p
+Fp(.)f(Pren)m(tice-Hall)i(PTR,)857 4805 y(Upp)s(er)30
+b(Saddle)h(Riv)m(er)f(1998.)382 4986 y([Reis99])167 b(Hans)20
+b(Reiser.)g Fa(R)-5 b(eiserFS.)20 b Fp(h)m(ttp://www.devlin)m
+(ux.com/pro)5 b(ject/reiser-)857 5099 y(fs/res_whol.sh)m(tml)382
+5281 y([Rob00])173 b(Alan)39 b(Rob)s(ertson.)g Fa(High-A)n(vailability)
+i(Linux)f(Pr)-5 b(oje)g(ct.)41 b Fp(h)m(ttp://lin)m(ux-)857
+5394 y(ha.org)1831 5622 y(85)p eop
+%%Page: 86 88
+86 87 bop 382 262 a Fl(LITERA)-8 b(TUR)e(VERZEICHNIS)667
+b(LITERA)-8 b(TUR)e(VERZEICHNIS)p 382 299 2989 4 v 382
+539 a Fp([PBB+99])76 b(Kenneth)90 b(W.)g(Preslan,)105
+b(Andrew)90 b(P)-8 b(.)90 b(Barry)-8 b(,)105 b(Jonathan)91
+b(E.)857 652 y(Brasso)m(w,)96 b(Gran)m(t)84 b(M.)e(Eric)m(kson,)97
+b(Erling)84 b(Nygaard,)96 b(Christo-)857 764 y(pher)c(J.)g(Sab)s(ol,)
+108 b(Stev)m(en)93 b(R.)e(Soltis,)108 b(Da)m(vid)93 b(C.)f(T)-8
+b(eigland)857 877 y(und)93 b(Matthew)h(T.)f(O'Keefe.)h
+Fa(A)c(64-bit,)104 b(shar)-5 b(e)g(d)92 b(disk)e(Fi-)857
+990 y(le)69 b(System)f(for)g(Linux)p Fp(.)h(Pro)s(ceedings)i(of)e(the)h
+(Sixteen)m(th)i(IEEE)857 1103 y(Mass)51 b(Storage)i(Systems)f(Symp)s
+(osium,)58 b(Marc)m(h)53 b(1999.)g(\(Alternativ)857 1216
+y(h)m(ttp://www.global\034lesystem.org/pubs/NASA_GFS_1999.ps\))382
+1404 y([Rub98])168 b(Alessandro)22 b(Rubini.)h Fa(Linux)i(Devic)-5
+b(e)27 b(Drivers.)22 b Fp(O'Reilly)h(&)f(Asso)s(ciates,)857
+1517 y(Inc.)30 b(Sebastop)s(ol)h(1998.)382 1704 y([Rub97])168
+b(Alessandro)29 b(Rubini.)h Fa(The)i(virtual)g(\034lesystem)g(in)f
+(Linux)p Fp(.)e(Lin)m(ux)i(Jour-)857 1817 y(nal,)40 b(Issue)d(37,)k(Ma)
+m(y)d(1997.)h(Sp)s(ecialized)g(Systems)f(Consultan)m(ts,)j(Se-)857
+1930 y(attle.)382 2118 y([Rus98])182 b(Da)m(vid)251 b(A)f(Rusling.)g
+Fa(The)235 b(Linux)f(Kernel.)857 2231 y Fp(h)m(ttp://www.lin)m(uxdo)s
+(c.org/LDP/tlk/tlk.h)m(tm)q(l)382 2418 y([Russ00])146
+b(Rust)m(y)172 b(Russel.)f Fa(Linux)163 b(Kernel)g(L)-5
+b(o)g(cking)164 b(HO)n(WTO.)857 2531 y Fp(h)m(ttp://net\034lter.k)m
+(ernelnotes.org/unreliab)q(le-gui)q(des/k)m(ern)q(el-)857
+2644 y(lo)s(c)m(king-HO)m(WTO.h)m(tml)382 2832 y([Sha00])190
+b(Ra)m(wn)263 b(Shah.)g Fa(Linux)246 b(clustering)h(c)-5
+b(ornuc)g(opia)p Fp(.)857 2945 y(h)m(ttp://www.lin)m(uxw)m
+(orld.com/lw-20)q(00-03/)q(lw-03)q(-clusteri)q(ng.h)n(tml)382
+3132 y([Sta95])205 b(William)34 b(Stallings.)h Fa(Op)-5
+b(er)g(ating)37 b(Systems)p Fp(,)d(second)g(edition.)h(Pren)m(tice-)857
+3245 y(Hall,)30 b(Englew)m(o)s(o)s(d)i(Cli\033s,)e(New)g(Jersey)h
+(1995.)382 3433 y([Sun90])185 b(V.)77 b(S.)g(Sunderam.)i
+Fa(PVM:)d(A)f(F)-7 b(r)i(amework)77 b(for)e(Par)-5 b(al)5
+b(lel)77 b(Dis-)857 3546 y(tribute)-5 b(d)92 b(Computing.)i
+Fp(Journal)h(of)f(Concurrency:)170 b(Practice)857 3659
+y(and)80 b(Exp)s(erience,)93 b(2,)f(4,)g(Seiten)81 b(315-339,)93
+b(Dezem)m(b)s(er)81 b(1990.)857 3771 y(h)m(ttp://www.netlib.org/ncwn/p)
+m(vmsystem.ps.)382 3959 y([T)-8 b(w)m(e98])176 b(Stephen)229
+b(C.)f(T)-8 b(w)m(eedie.)231 b Fa(Journaling)215 b(the)f(Li-)857
+4072 y(nux)259 b(ext2fs)g(Filesystem)p Fp(.)277 b(Lin)m(uxExp)s(o)h
+(1998.)857 4185 y(ftp://ftp.uk.lin)m(ux.org/pub/lin)m
+(ux/sct/fs/jfs/journal-design.ps.gz)382 4373 y([V)-8
+b(ol97])205 b(Y)-8 b(uri)58 b(V)-8 b(olobuev.)60 b Fa(Playing)d(r)-5
+b(e)g(dir)59 b(games)g(wirh)f(ARP)f(and)h(ICMP)p Fp(.)857
+4485 y(h)m(ttp://www.ro)s(otshell.com)382 4673 y([W)-8
+b(eis97])149 b(P)m(eter)34 b(W)-8 b(eiss.)32 b Fa(Dynamische)i(T)-7
+b(r)i(eib)g(er)36 b(unter)f(Linux)p Fp(.)d(IX)g(Magazin,)i(Ja-)857
+4786 y(n)m(uar)d(1997.)g(V)-8 b(erlag)31 b(Heinz)g(Heise,)f(M\374nc)m
+(hen.)382 4974 y([W)-8 b(ey96])162 b(P)m(eter)37 b(S.)e(W)-8
+b(eygan)m(t.)37 b Fa(Clusters)h(for)e(High)i(A)n(vailability)p
+Fp(.)d(Pren)m(tice)i(Hall)857 5087 y(PTR,)30 b(Englew)m(o)s(o)s(d)i
+(Cli\033s,)e(New)g(Jersey)h(1996.)382 5274 y([ZJW99])141
+b(W)-8 b(ensong)24 b(Zhang,)i(Shiy)m(ao)e(Jin,)i(Quan)m(yuan)f(W)-8
+b(u.)24 b Fa(Cr)-5 b(e)g(ating)27 b(Linux)f(Vir-)857
+5387 y(tual)34 b(Servers)p Fp(.)f(Pro)s(ceedings)h(of)e(the)g(5th)h
+(Ann)m(ual)g(Lin)m(ux)g(Exp)s(o,)g(pages)1831 5622 y(86)p
+eop
+%%Page: 87 89
+87 88 bop 382 262 a Fl(LITERA)-8 b(TUR)e(VERZEICHNIS)667
+b(LITERA)-8 b(TUR)e(VERZEICHNIS)p 382 299 2989 4 v 857
+539 a Fp(101-110.)28 b(W)-8 b(eb)s(com,)28 b(T)-8 b(ec)m(hnical)29
+b(Do)s(cumen)m(tation)g(Division.)e(\(Alterna-)857 652
+y(tiv)j(h)m(ttp://www.lin)m(uxvirtualserv)m(er.org/clvs.ps.gz\))1831
+5622 y(87)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF