From chuan.liao at hp.com Thu Apr 10 22:59:07 2014 Content-Type: multipart/mixed; boundary="===============4394186381134351661==" MIME-Version: 1.0 From: Liao, Chuan (Jason Liao, HPservers-Core-OE-PSC) To: devel at ovirt.org Subject: [ovirt-devel] Clarify NUMA feature and CPU pinning Date: Fri, 11 Apr 2014 02:57:44 +0000 Message-ID: --===============4394186381134351661== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_B63C858E777679458338A30A991BB52401613084G1W3647americas_ Content-Type: text/plain; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable Hi Gilad & Einav Thanks for sharing your ideas about NUMA feature and CPU pinning. It makes = =3D easier for users to understand. And something I want to clarify: 1. NUMA tuning feature and CPU pinning feature are individually in lib= =3D virt ( ovirt backend ). 2. User could configure VM CPU pining ( NUMA not included ) separately= =3D . 3. When configuring NUMA feature, user should configure VM NUMA tuning= =3D ( pin to host NUMA node & tuning mode ) and VM CPU pinning ( NUMA included= =3D ), otherwise VM will have low performance. 4. Single virtual NUMA node could pin to multiply host NUMA nodes. 5. Multiply virtual NUMA nodes could pin to single host NUMA node. 6. NUMA tuning mode have default value 'strict', and could change to '= =3D prefer', 'interleave' Our proposal: OVirt 3.5 1. Keep current UX design, add NUMA tuning mode select box in VM dialo= =3D g. 2. Keep current BE model, query and action command. 3. Consider the low performance scene ( user did not configure VM CPU = =3D pinning ) When VdsBroker check the CPU pinning text is empty, then generate the right= =3D CPU pinning text from virtual NUMA nodes ( pin to host NUMA nodes ) The next version 1. Remove current CPU pinning text feature. 2. Consider the NUMA node inside CPU pinning design. ( Should consider= =3D the individually CPU pining design not includes NUMA ) 3. Add related CPU pinning BE model, query and action command. 4. Turn off VdsBroker generate function. Do you agree ? Best Regards, Jason Liao --_000_B63C858E777679458338A30A991BB52401613084G1W3647americas_ Content-Type: text/html; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Gilad & Einav

 

Thanks for sharing your ideas about= =3D NUMA feature and CPU pinning. It makes easier for users to understand.

 

And something I want to clarify:

1.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  NUMA tuning feature and CPU= =3D pinning feature are individually in libvirt ( ovirt backend ).<= =3D /span>

2.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  User could configure VM CPU= =3D pining ( NUMA not included ) separately.

3.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  When configuring NUMA featu= =3D re, user should configure VM NUMA tuning ( pin to host NUMA node & tuni= =3D ng mode ) and VM CPU pinning ( NUMA included ), otherwise VM will have low performance.

4.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Single virtual NUMA node co= =3D uld pin to multiply host NUMA nodes.

5.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Multiply virtual NUMA nodes= =3D could pin to single host NUMA node.

6.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  NUMA tuning mode have defau= =3D lt value ‘strict’, and could change to ‘prefer’, &#= =3D 8216;interleave’

 

Our proposal:

OVirt 3.5

1.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Keep current UX design, add= =3D NUMA tuning mode select box in VM dialog.

2.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Keep current BE model, quer= =3D y and action command.

3.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Consider the low performanc= =3D e scene ( user did not configure VM CPU pinning )

=3D When VdsBroker check the CPU pinning text is empty, then g= =3D enerate the right CPU pinning text from virtual NUMA nodes ( pin to host NUMA nodes )

 

The next version<= =3D /p>

1.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Remove current CPU pinning = =3D text feature.

2.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Consider the NUMA node insi= =3D de CPU pinning design. ( Should consider the individually CPU pining design= =3D not includes NUMA )

3.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Add related CPU pinning BE = =3D model, query and action command.

4.<= sp=3D an style=3D3D"font:7.0pt "Times New Roman"">   &nb= sp=3D ;  Turn off VdsBroker generate= =3D function.

 

Do you agree ?

 

Best= =3D Regards,
Jason Liao= =3D

 

--_000_B63C858E777679458338A30A991BB52401613084G1W3647americas_-- --===============4394186381134351661== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwX0I2M0M4NThFNzc3Njc5NDU4MzM4QTMwQTk5MUJCNTI0MDE2MTMwODRHMVczNjQ3YW1l cmljYXNfCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhpIEdpbGFkICYgRWluYXYK ClRoYW5rcyBmb3Igc2hhcmluZyB5b3VyIGlkZWFzIGFib3V0IE5VTUEgZmVhdHVyZSBhbmQgQ1BV IHBpbm5pbmcuIEl0IG1ha2VzID0KZWFzaWVyIGZvciB1c2VycyB0byB1bmRlcnN0YW5kLgoKQW5k IHNvbWV0aGluZyBJIHdhbnQgdG8gY2xhcmlmeToKCjEuICAgICAgTlVNQSB0dW5pbmcgZmVhdHVy ZSBhbmQgQ1BVIHBpbm5pbmcgZmVhdHVyZSBhcmUgaW5kaXZpZHVhbGx5IGluIGxpYj0KdmlydCAo IG92aXJ0IGJhY2tlbmQgKS4KCjIuICAgICAgVXNlciBjb3VsZCBjb25maWd1cmUgVk0gQ1BVIHBp bmluZyAoIE5VTUEgbm90IGluY2x1ZGVkICkgc2VwYXJhdGVseT0KLgoKMy4gICAgICBXaGVuIGNv bmZpZ3VyaW5nIE5VTUEgZmVhdHVyZSwgdXNlciBzaG91bGQgY29uZmlndXJlIFZNIE5VTUEgdHVu aW5nPQogKCBwaW4gdG8gaG9zdCBOVU1BIG5vZGUgJiB0dW5pbmcgbW9kZSApIGFuZCBWTSBDUFUg cGlubmluZyAoIE5VTUEgaW5jbHVkZWQ9CiApLCBvdGhlcndpc2UgVk0gd2lsbCBoYXZlIGxvdyBw ZXJmb3JtYW5jZS4KCjQuICAgICAgU2luZ2xlIHZpcnR1YWwgTlVNQSBub2RlIGNvdWxkIHBpbiB0 byBtdWx0aXBseSBob3N0IE5VTUEgbm9kZXMuCgo1LiAgICAgIE11bHRpcGx5IHZpcnR1YWwgTlVN QSBub2RlcyBjb3VsZCBwaW4gdG8gc2luZ2xlIGhvc3QgTlVNQSBub2RlLgoKNi4gICAgICBOVU1B IHR1bmluZyBtb2RlIGhhdmUgZGVmYXVsdCB2YWx1ZSAnc3RyaWN0JywgYW5kIGNvdWxkIGNoYW5n ZSB0byAnPQpwcmVmZXInLCAnaW50ZXJsZWF2ZScKCk91ciBwcm9wb3NhbDoKT1ZpcnQgMy41Cgox LiAgICAgIEtlZXAgY3VycmVudCBVWCBkZXNpZ24sIGFkZCBOVU1BIHR1bmluZyBtb2RlIHNlbGVj dCBib3ggaW4gVk0gZGlhbG89CmcuCgoyLiAgICAgIEtlZXAgY3VycmVudCBCRSBtb2RlbCwgcXVl cnkgYW5kIGFjdGlvbiBjb21tYW5kLgoKMy4gICAgICBDb25zaWRlciB0aGUgbG93IHBlcmZvcm1h bmNlIHNjZW5lICggdXNlciBkaWQgbm90IGNvbmZpZ3VyZSBWTSBDUFUgPQpwaW5uaW5nICkKCldo ZW4gVmRzQnJva2VyIGNoZWNrIHRoZSBDUFUgcGlubmluZyB0ZXh0IGlzIGVtcHR5LCB0aGVuIGdl bmVyYXRlIHRoZSByaWdodD0KIENQVSBwaW5uaW5nIHRleHQgZnJvbSB2aXJ0dWFsIE5VTUEgbm9k ZXMgKCBwaW4gdG8gaG9zdCBOVU1BIG5vZGVzICkKClRoZSBuZXh0IHZlcnNpb24KCjEuICAgICAg UmVtb3ZlIGN1cnJlbnQgQ1BVIHBpbm5pbmcgdGV4dCBmZWF0dXJlLgoKMi4gICAgICBDb25zaWRl ciB0aGUgTlVNQSBub2RlIGluc2lkZSBDUFUgcGlubmluZyBkZXNpZ24uICggU2hvdWxkIGNvbnNp ZGVyPQogdGhlIGluZGl2aWR1YWxseSBDUFUgcGluaW5nIGRlc2lnbiBub3QgaW5jbHVkZXMgTlVN QSApCgozLiAgICAgIEFkZCByZWxhdGVkIENQVSBwaW5uaW5nIEJFIG1vZGVsLCBxdWVyeSBhbmQg YWN0aW9uIGNvbW1hbmQuCgo0LiAgICAgIFR1cm4gb2ZmIFZkc0Jyb2tlciBnZW5lcmF0ZSBmdW5j dGlvbi4KCkRvIHlvdSBhZ3JlZSA/CgpCZXN0IFJlZ2FyZHMsCkphc29uIExpYW8KCgotLV8wMDBf QjYzQzg1OEU3Nzc2Nzk0NTgzMzhBMzBBOTkxQkI1MjQwMTYxMzA4NEcxVzM2NDdhbWVyaWNhc18K Q29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InVzLWFzY2lpIgpDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgo8aHRtbCB4bWxuczp2PTNEInVybjpzY2hl bWFzLW1pY3Jvc29mdC1jb206dm1sIiB4bWxuczpvPTNEInVybjpzY2hlbWFzLW1pY3I9Cm9zb2Z0 LWNvbTpvZmZpY2U6b2ZmaWNlIiB4bWxuczp3PTNEInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206 b2ZmaWNlOndvcmQiID0KeG1sbnM6bT0zRCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29m ZmljZS8yMDA0LzEyL29tbWwiIHhtbG5zPTNEImh0dHA6PQovL3d3dy53My5vcmcvVFIvUkVDLWh0 bWw0MCI+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PTNEIkNvbnRlbnQtVHlwZSIgY29udGVudD0z RCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9M0R1cy1hc2NpaSI9Cj4KPG1ldGEgbmFtZT0zRCJHZW5lcmF0 b3IiIGNvbnRlbnQ9M0QiTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPgo8c3R5 bGU+PCEtLQovKiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseTpT aW1TdW47CglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30KQGZvbnQtZmFjZQoJe2ZvbnQt ZmFtaWx5OiJDYW1icmlhIE1hdGgiOwoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9CkBm b250LWZhY2UKCXtmb250LWZhbWlseTpDYWxpYnJpOwoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQg MyAyIDQ7fQpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6U2ltU3VuOwoJcGFub3NlLTE6MiAxIDYg MCAzIDEgMSAxIDEgMTt9CkBmb250LWZhY2UKCXtmb250LWZhbWlseToiSFAgU2ltcGxpZmllZCI7 CglwYW5vc2UtMToyIDExIDYgNCAyIDIgNCAyIDIgNDt9CkBmb250LWZhY2UKCXtmb250LWZhbWls eToiWWFIZWkgQ29uc29sYXMgSHlicmlkIjsKCXBhbm9zZS0xOjIgMTEgNSA5IDIgMiA0IDIgMiA0 O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OiJcQFlhSGVpIENvbnNvbGFzIEh5YnJpZCI7Cglw YW5vc2UtMToyIDExIDUgOSAyIDIgNCAyIDIgNDt9Ci8qIFN0eWxlIERlZmluaXRpb25zICovCnAu TXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKCXttYXJnaW46MGNtOwoJbWFy Z2luLWJvdHRvbTouMDAwMXB0OwoJdGV4dC1hbGlnbjpqdXN0aWZ5OwoJdGV4dC1qdXN0aWZ5Omlu dGVyLWlkZW9ncmFwaDsKCWZvbnQtc2l6ZToxMC41cHQ7Cglmb250LWZhbWlseToiQ2FsaWJyaSIs InNhbnMtc2VyaWYiO30KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluawoJe21zby1zdHlsZS1wcmlv cml0eTo5OTsKCWNvbG9yOiMwNTYzQzE7Cgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KYTp2 aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5 OwoJY29sb3I6Izk1NEY3MjsKCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQpwLk1zb0xpc3RQ YXJhZ3JhcGgsIGxpLk1zb0xpc3RQYXJhZ3JhcGgsIGRpdi5Nc29MaXN0UGFyYWdyYXBoCgl7bXNv LXN0eWxlLXByaW9yaXR5OjM0OwoJbWFyZ2luOjBjbTsKCW1hcmdpbi1ib3R0b206LjAwMDFwdDsK CXRleHQtYWxpZ246anVzdGlmeTsKCXRleHQtanVzdGlmeTppbnRlci1pZGVvZ3JhcGg7Cgl0ZXh0 LWluZGVudDoyMS4wcHQ7Cglmb250LXNpemU6MTAuNXB0OwoJZm9udC1mYW1pbHk6IkNhbGlicmki LCJzYW5zLXNlcmlmIjt9CnNwYW4uRW1haWxTdHlsZTE3Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29u YWwtY29tcG9zZTsKCWZvbnQtZmFtaWx5OiJIUCBTaW1wbGlmaWVkIiwic2Fucy1zZXJpZiI7Cglj b2xvcjp3aW5kb3d0ZXh0O30KLk1zb0NocERlZmF1bHQKCXttc28tc3R5bGUtdHlwZTpleHBvcnQt b25seTt9Ci8qIFBhZ2UgRGVmaW5pdGlvbnMgKi8KQHBhZ2UgV29yZFNlY3Rpb24xCgl7c2l6ZTo2 MTIuMHB0IDc5Mi4wcHQ7CgltYXJnaW46NzIuMHB0IDkwLjBwdCA3Mi4wcHQgOTAuMHB0O30KZGl2 LldvcmRTZWN0aW9uMQoJe3BhZ2U6V29yZFNlY3Rpb24xO30KLyogTGlzdCBEZWZpbml0aW9ucyAq LwpAbGlzdCBsMAoJe21zby1saXN0LWlkOjE0Mjk4ODUzNTI7Cgltc28tbGlzdC10eXBlOmh5YnJp ZDsKCW1zby1saXN0LXRlbXBsYXRlLWlkczoxMjM0NDQwMzM0IC02ODA2NTI4MDAgNjc2OTg3MTMg Njc2OTg3MTUgNjc2OTg3MDMgNjc2PQo5ODcxMyA2NzY5ODcxNSA2NzY5ODcwMyA2NzY5ODcxMyA2 NzY5ODcxNTt9CkBsaXN0IGwwOmxldmVsMQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOwoJbXNv LWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTguMHB0OwoJdGV4dC1p bmRlbnQ6LTE4LjBwdDt9CkBsaXN0IGwwOmxldmVsMgoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0 OmFscGhhLWxvd2VyOwoJbXNvLWxldmVsLXRleHQ6IiUyXCkiOwoJbXNvLWxldmVsLXRhYi1zdG9w Om5vbmU7Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7CgltYXJnaW4tbGVmdDo0Mi4w cHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDA6bGV2ZWwzCgl7bXNvLWxldmVsLW51 bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1zby1s ZXZlbC1udW1iZXItcG9zaXRpb246cmlnaHQ7CgltYXJnaW4tbGVmdDo2My4wcHQ7Cgl0ZXh0LWlu ZGVudDotMjEuMHB0O30KQGxpc3QgbDA6bGV2ZWw0Cgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7 Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7CgltYXJnaW4tbGVmdDo4NC4wcHQ7Cgl0 ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDA6bGV2ZWw1Cgl7bXNvLWxldmVsLW51bWJlci1m b3JtYXQ6YWxwaGEtbG93ZXI7Cgltc28tbGV2ZWwtdGV4dDoiJTVcKSI7Cgltc28tbGV2ZWwtdGFi LXN0b3A6bm9uZTsKCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsKCW1hcmdpbi1sZWZ0 OjEwNS4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDA6bGV2ZWw2Cgl7bXNvLWxl dmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsK CW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246cmlnaHQ7CgltYXJnaW4tbGVmdDoxMjYuMHB0OwoJ dGV4dC1pbmRlbnQ6LTIxLjBwdDt9CkBsaXN0IGwwOmxldmVsNwoJe21zby1sZXZlbC10YWItc3Rv cDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTQ3 LjBwdDsKCXRleHQtaW5kZW50Oi0yMS4wcHQ7fQpAbGlzdCBsMDpsZXZlbDgKCXttc28tbGV2ZWwt bnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsKCW1zby1sZXZlbC10ZXh0OiIlOFwpIjsKCW1zby1s ZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFy Z2luLWxlZnQ6MTY4LjBwdDsKCXRleHQtaW5kZW50Oi0yMS4wcHQ7fQpAbGlzdCBsMDpsZXZlbDkK CXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsKCW1zby1sZXZlbC10YWItc3Rv cDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpyaWdodDsKCW1hcmdpbi1sZWZ0OjE4 OS4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDEKCXttc28tbGlzdC1pZDoxOTY3 NDY0MjQ1OwoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7Cgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6LTk3 MjY2MjYxOCA4NzU3NDMzNjIgNjc2OTg3MTMgNjc2OTg3MTUgNjc2OTg3MDMgNjc2OT0KODcxMyA2 NzY5ODcxNSA2NzY5ODcwMyA2NzY5ODcxMyA2NzY5ODcxNTt9CkBsaXN0IGwxOmxldmVsMQoJe21z by1sZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJ bWFyZ2luLWxlZnQ6MTguMHB0OwoJdGV4dC1pbmRlbnQ6LTE4LjBwdDt9CkBsaXN0IGwxOmxldmVs MgoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFscGhhLWxvd2VyOwoJbXNvLWxldmVsLXRleHQ6 IiUyXCkiOwoJbXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0 aW9uOmxlZnQ7CgltYXJnaW4tbGVmdDo0Mi4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxp c3QgbDE6bGV2ZWwzCgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7Cgltc28t bGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246cmlnaHQ7Cglt YXJnaW4tbGVmdDo2My4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDE6bGV2ZWw0 Cgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxl ZnQ7CgltYXJnaW4tbGVmdDo4NC4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDE6 bGV2ZWw1Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6YWxwaGEtbG93ZXI7Cgltc28tbGV2ZWwt dGV4dDoiJTVcKSI7Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1zby1sZXZlbC1udW1iZXIt cG9zaXRpb246bGVmdDsKCW1hcmdpbi1sZWZ0OjEwNS4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0 O30KQGxpc3QgbDE6bGV2ZWw2Cgl7bXNvLWxldmVsLW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7 Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246cmln aHQ7CgltYXJnaW4tbGVmdDoxMjYuMHB0OwoJdGV4dC1pbmRlbnQ6LTIxLjBwdDt9CkBsaXN0IGwx OmxldmVsNwoJe21zby1sZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTQ3LjBwdDsKCXRleHQtaW5kZW50Oi0yMS4wcHQ7fQpA bGlzdCBsMTpsZXZlbDgKCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDphbHBoYS1sb3dlcjsKCW1z by1sZXZlbC10ZXh0OiIlOFwpIjsKCW1zby1sZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxldmVs LW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTY4LjBwdDsKCXRleHQtaW5kZW50 Oi0yMS4wcHQ7fQpAbGlzdCBsMTpsZXZlbDkKCXttc28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21h bi1sb3dlcjsKCW1zby1sZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3Np dGlvbjpyaWdodDsKCW1hcmdpbi1sZWZ0OjE4OS4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30K QGxpc3QgbDIKCXttc28tbGlzdC1pZDoyMDg3MTQ1MDgwOwoJbXNvLWxpc3QtdHlwZTpoeWJyaWQ7 Cgltc28tbGlzdC10ZW1wbGF0ZS1pZHM6MzcxMTE0MzE4IC00MTMyMTkxNTggNjc2OTg3MTMgNjc2 OTg3MTUgNjc2OTg3MDMgNjc2OT0KODcxMyA2NzY5ODcxNSA2NzY5ODcwMyA2NzY5ODcxMyA2NzY5 ODcxNTt9CkBsaXN0IGwyOmxldmVsMQoJe21zby1sZXZlbC10YWItc3RvcDpub25lOwoJbXNvLWxl dmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTguMHB0OwoJdGV4dC1pbmRl bnQ6LTE4LjBwdDt9CkBsaXN0IGwyOmxldmVsMgoJe21zby1sZXZlbC1udW1iZXItZm9ybWF0OmFs cGhhLWxvd2VyOwoJbXNvLWxldmVsLXRleHQ6IiUyXCkiOwoJbXNvLWxldmVsLXRhYi1zdG9wOm5v bmU7Cgltc28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7CgltYXJnaW4tbGVmdDo0Mi4wcHQ7 Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDI6bGV2ZWwzCgl7bXNvLWxldmVsLW51bWJl ci1mb3JtYXQ6cm9tYW4tbG93ZXI7Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1zby1sZXZl bC1udW1iZXItcG9zaXRpb246cmlnaHQ7CgltYXJnaW4tbGVmdDo2My4wcHQ7Cgl0ZXh0LWluZGVu dDotMjEuMHB0O30KQGxpc3QgbDI6bGV2ZWw0Cgl7bXNvLWxldmVsLXRhYi1zdG9wOm5vbmU7Cglt c28tbGV2ZWwtbnVtYmVyLXBvc2l0aW9uOmxlZnQ7CgltYXJnaW4tbGVmdDo4NC4wcHQ7Cgl0ZXh0 LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDI6bGV2ZWw1Cgl7bXNvLWxldmVsLW51bWJlci1mb3Jt YXQ6YWxwaGEtbG93ZXI7Cgltc28tbGV2ZWwtdGV4dDoiJTVcKSI7Cgltc28tbGV2ZWwtdGFiLXN0 b3A6bm9uZTsKCW1zby1sZXZlbC1udW1iZXItcG9zaXRpb246bGVmdDsKCW1hcmdpbi1sZWZ0OjEw NS4wcHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30KQGxpc3QgbDI6bGV2ZWw2Cgl7bXNvLWxldmVs LW51bWJlci1mb3JtYXQ6cm9tYW4tbG93ZXI7Cgltc28tbGV2ZWwtdGFiLXN0b3A6bm9uZTsKCW1z by1sZXZlbC1udW1iZXItcG9zaXRpb246cmlnaHQ7CgltYXJnaW4tbGVmdDoxMjYuMHB0OwoJdGV4 dC1pbmRlbnQ6LTIxLjBwdDt9CkBsaXN0IGwyOmxldmVsNwoJe21zby1sZXZlbC10YWItc3RvcDpu b25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2luLWxlZnQ6MTQ3LjBw dDsKCXRleHQtaW5kZW50Oi0yMS4wcHQ7fQpAbGlzdCBsMjpsZXZlbDgKCXttc28tbGV2ZWwtbnVt YmVyLWZvcm1hdDphbHBoYS1sb3dlcjsKCW1zby1sZXZlbC10ZXh0OiIlOFwpIjsKCW1zby1sZXZl bC10YWItc3RvcDpub25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpsZWZ0OwoJbWFyZ2lu LWxlZnQ6MTY4LjBwdDsKCXRleHQtaW5kZW50Oi0yMS4wcHQ7fQpAbGlzdCBsMjpsZXZlbDkKCXtt c28tbGV2ZWwtbnVtYmVyLWZvcm1hdDpyb21hbi1sb3dlcjsKCW1zby1sZXZlbC10YWItc3RvcDpu b25lOwoJbXNvLWxldmVsLW51bWJlci1wb3NpdGlvbjpyaWdodDsKCW1hcmdpbi1sZWZ0OjE4OS4w cHQ7Cgl0ZXh0LWluZGVudDotMjEuMHB0O30Kb2wKCXttYXJnaW4tYm90dG9tOjBjbTt9CnVsCgl7 bWFyZ2luLWJvdHRvbTowY207fQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgo8 bzpzaGFwZWRlZmF1bHRzIHY6ZXh0PTNEImVkaXQiIHNwaWRtYXg9M0QiMTAyNiIgLz4KPC94bWw+ PCFbZW5kaWZdLS0+PCEtLVtpZiBndGUgbXNvIDldPjx4bWw+CjxvOnNoYXBlbGF5b3V0IHY6ZXh0 PTNEImVkaXQiPgo8bzppZG1hcCB2OmV4dD0zRCJlZGl0IiBkYXRhPTNEIjEiIC8+CjwvbzpzaGFw ZWxheW91dD48L3htbD48IVtlbmRpZl0tLT4KPC9oZWFkPgo8Ym9keSBsYW5nPTNEIlpILUNOIiBs aW5rPTNEIiMwNTYzQzEiIHZsaW5rPTNEIiM5NTRGNzIiIHN0eWxlPTNEInRleHQtanVzdGk9CmZ5 LXRyaW06cHVuY3R1YXRpb24iPgo8ZGl2IGNsYXNzPTNEIldvcmRTZWN0aW9uMSI+CjxwIGNsYXNz PTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6 JnF1b3Q7SFAgUz0KaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkhpIEdp bGFkICZhbXA7IEVpbmF2PG86cD48L286cD48L3NwPQphbj48L3A+CjxwIGNsYXNzPTNEIk1zb05v cm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAg Uz0KaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9v OnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBsYW5nPTNEIkVOLVVT IiBzdHlsZT0zRCJmb250LWZhbWlseTomcXVvdDtIUCBTPQppbXBsaWZpZWQmcXVvdDssJnF1b3Q7 c2Fucy1zZXJpZiZxdW90OyI+VGhhbmtzIGZvciBzaGFyaW5nIHlvdXIgaWRlYXMgYWJvdXQ9CiBO VU1BIGZlYXR1cmUgYW5kIENQVSBwaW5uaW5nLjwvc3Bhbj48c3BhbiBsYW5nPTNEIkVOLVVTIj4g SXQgbWFrZXMgZTwvc3Bhbj0KPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFt aWx5OiZxdW90O0hQIFNpbXBsaWZpZWQmcXVvdDssJnF1b3Q7PQpzYW5zLXNlcmlmJnF1b3Q7Ij5h c2llcgogZm9yIHVzZXJzIHRvIHVuZGVyc3RhbmQuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBj bGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFt aWx5OiZxdW90O0hQIFM9CmltcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48 bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4g bGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgUz0KaW1wbGlmaWVk JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkFuZCBzb21ldGhpbmcgSSB3YW50IHRvIGNs YXJpZnk6PG86PQpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb0xpc3RQYXJhZ3Jh cGgiIHN0eWxlPTNEIm1hcmdpbi1sZWZ0OjE4LjBwdDt0ZXh0LWluZGVudDotMTguMD0KcHQ7bXNv LWxpc3Q6bDIgbGV2ZWwxIGxmbzEiPgo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBsYW5nPTNE IkVOLVVTIiBzdHlsZT0zRCJmb250LWZhbWlseTomcXVvdDtIUCBTaW09CnBsaWZpZWQmcXVvdDss JnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PHNwYW4gc3R5bGU9M0QibXNvLWxpc3Q6SWdub3JlIj4x LjxzcD0KYW4gc3R5bGU9M0QiZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsi PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwPQo7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwh W2VuZGlmXT48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJmb250LWZhbWlseTomcT0KdW90 O0hQIFNpbXBsaWZpZWQmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+TlVNQSB0dW5pbmcg ZmVhdHVyZSBhbmQgQ1BVPQogcGlubmluZyBmZWF0dXJlIGFyZSBpbmRpdmlkdWFsbHkgaW4gbGli dmlydCAoIG92aXJ0IGJhY2tlbmQgKS48bzpwPjwvbzpwPjw9Ci9zcGFuPjwvcD4KPHAgY2xhc3M9 M0QiTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6MTguMHB0O3RleHQtaW5k ZW50Oi0xOC4wPQpwdDttc28tbGlzdDpsMiBsZXZlbDEgbGZvMSI+CjwhW2lmICFzdXBwb3J0TGlz dHNdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFNp bT0KcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48c3BhbiBzdHlsZT0zRCJt c28tbGlzdDpJZ25vcmUiPjIuPHNwPQphbiBzdHlsZT0zRCJmb250OjcuMHB0ICZxdW90O1RpbWVz IE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A9CjsmbmJzcDsKPC9zcGFu Pjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZv bnQtZmFtaWx5OiZxPQp1b3Q7SFAgU2ltcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1 b3Q7Ij5Vc2VyIGNvdWxkIGNvbmZpZ3VyZSBWTSBDUFU9CiBwaW5pbmcgKCBOVU1BIG5vdCBpbmNs dWRlZCApIHNlcGFyYXRlbHkuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29M aXN0UGFyYWdyYXBoIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDoxOC4wcHQ7dGV4dC1pbmRlbnQ6LTE4 LjA9CnB0O21zby1saXN0OmwyIGxldmVsMSBsZm8xIj4KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNw YW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgU2ltPQpwbGlm aWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxzcGFuIHN0eWxlPTNEIm1zby1saXN0 Oklnbm9yZSI+My48c3A9CmFuIHN0eWxlPTNEImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJv bWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcD0KOyZuYnNwOwo8L3NwYW4+PC9zcGFu Pjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1p bHk6JnE9CnVvdDtIUCBTaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPldo ZW4gY29uZmlndXJpbmcgTlVNQSBmZWF0dT0KcmUsIHVzZXIgc2hvdWxkIGNvbmZpZ3VyZSBWTSBO VU1BIHR1bmluZyAoIHBpbiB0byBob3N0IE5VTUEgbm9kZSAmYW1wOyB0dW5pPQpuZyBtb2RlICkg YW5kIFZNIENQVSBwaW5uaW5nICggTlVNQSBpbmNsdWRlZCApLCBvdGhlcndpc2UgVk0KIHdpbGwg aGF2ZSBsb3cgcGVyZm9ybWFuY2UuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJN c29MaXN0UGFyYWdyYXBoIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDoxOC4wcHQ7dGV4dC1pbmRlbnQ6 LTE4LjA9CnB0O21zby1saXN0OmwyIGxldmVsMSBsZm8xIj4KPCFbaWYgIXN1cHBvcnRMaXN0c10+ PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgU2ltPQpw bGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxzcGFuIHN0eWxlPTNEIm1zby1s aXN0Oklnbm9yZSI+NC48c3A9CmFuIHN0eWxlPTNEImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3 IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcD0KOyZuYnNwOwo8L3NwYW4+PC9z cGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1m YW1pbHk6JnE9CnVvdDtIUCBTaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsi PlNpbmdsZSB2aXJ0dWFsIE5VTUEgbm9kZSBjbz0KdWxkIHBpbiB0byBtdWx0aXBseSBob3N0IE5V TUEgbm9kZXMuPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29MaXN0UGFyYWdy YXBoIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDoxOC4wcHQ7dGV4dC1pbmRlbnQ6LTE4LjA9CnB0O21z by1saXN0OmwyIGxldmVsMSBsZm8xIj4KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gbGFuZz0z RCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgU2ltPQpwbGlmaWVkJnF1b3Q7 LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxzcGFuIHN0eWxlPTNEIm1zby1saXN0Oklnbm9yZSI+ NS48c3A9CmFuIHN0eWxlPTNEImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7 Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcD0KOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48 IVtlbmRpZl0+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnE9CnVv dDtIUCBTaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk11bHRpcGx5IHZp cnR1YWwgTlVNQSBub2Rlcz0KIGNvdWxkIHBpbiB0byBzaW5nbGUgaG9zdCBOVU1BIG5vZGUuPG86 cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0z RCJtYXJnaW4tbGVmdDoxOC4wcHQ7dGV4dC1pbmRlbnQ6LTE4LjA9CnB0O21zby1saXN0OmwyIGxl dmVsMSBsZm8xIj4KPCFbaWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5 bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgU2ltPQpwbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMt c2VyaWYmcXVvdDsiPjxzcGFuIHN0eWxlPTNEIm1zby1saXN0Oklnbm9yZSI+Ni48c3A9CmFuIHN0 eWxlPTNEImZvbnQ6Ny4wcHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJz cDsmbmJzcDsmbmJzcD0KOyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNw YW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnE9CnVvdDtIUCBTaW1wbGlm aWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk5VTUEgdHVuaW5nIG1vZGUgaGF2ZSBk ZWZhdT0KbHQgdmFsdWUgJiM4MjE2O3N0cmljdCYjODIxNzssIGFuZCBjb3VsZCBjaGFuZ2UgdG8g JiM4MjE2O3ByZWZlciYjODIxNzssICYjPQo4MjE2O2ludGVybGVhdmUmIzgyMTc7PG86cD48L286 cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMi IHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFM9CmltcGxpZmllZCZxdW90OywmcXVvdDtz YW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNE Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1 b3Q7SFAgUz0KaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk91ciBwcm9w b3NhbDo8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4g bGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgUz0KaW1wbGlmaWVk JnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPk9WaXJ0IDMuNTxvOnA+PC9vOnA+PC9zcGFu PjwvcD4KPHAgY2xhc3M9M0QiTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6 MTguMHB0O3RleHQtaW5kZW50Oi0xOC4wPQpwdDttc28tbGlzdDpsMSBsZXZlbDEgbGZvMiI+Cjwh W2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFt aWx5OiZxdW90O0hQIFNpbT0KcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48 c3BhbiBzdHlsZT0zRCJtc28tbGlzdDpJZ25vcmUiPjEuPHNwPQphbiBzdHlsZT0zRCJmb250Ojcu MHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A9 CjsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIGxhbmc9M0QiRU4t VVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxPQp1b3Q7SFAgU2ltcGxpZmllZCZxdW90OywmcXVv dDtzYW5zLXNlcmlmJnF1b3Q7Ij5LZWVwIGN1cnJlbnQgVVggZGVzaWduLCBhZGQ9CiBOVU1BIHR1 bmluZyBtb2RlIHNlbGVjdCBib3ggaW4gVk0gZGlhbG9nLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4K PHAgY2xhc3M9M0QiTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6MTguMHB0 O3RleHQtaW5kZW50Oi0xOC4wPQpwdDttc28tbGlzdDpsMSBsZXZlbDEgbGZvMiI+CjwhW2lmICFz dXBwb3J0TGlzdHNdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZx dW90O0hQIFNpbT0KcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48c3BhbiBz dHlsZT0zRCJtc28tbGlzdDpJZ25vcmUiPjIuPHNwPQphbiBzdHlsZT0zRCJmb250OjcuMHB0ICZx dW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A9CjsmbmJz cDsKPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0 eWxlPTNEImZvbnQtZmFtaWx5OiZxPQp1b3Q7SFAgU2ltcGxpZmllZCZxdW90OywmcXVvdDtzYW5z LXNlcmlmJnF1b3Q7Ij5LZWVwIGN1cnJlbnQgQkUgbW9kZWwsIHF1ZXI9CnkgYW5kIGFjdGlvbiBj b21tYW5kLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTGlzdFBhcmFncmFw aCIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6MTguMHB0O3RleHQtaW5kZW50Oi0xOC4wPQpwdDttc28t bGlzdDpsMSBsZXZlbDEgbGZvMiI+CjwhW2lmICFzdXBwb3J0TGlzdHNdPjxzcGFuIGxhbmc9M0Qi RU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFNpbT0KcGxpZmllZCZxdW90Oywm cXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48c3BhbiBzdHlsZT0zRCJtc28tbGlzdDpJZ25vcmUiPjMu PHNwPQphbiBzdHlsZT0zRCJmb250OjcuMHB0ICZxdW90O1RpbWVzIE5ldyBSb21hbiZxdW90OyI+ Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A9CjsmbmJzcDsKPC9zcGFuPjwvc3Bhbj48L3NwYW4+PCFb ZW5kaWZdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxPQp1b3Q7 SFAgU2ltcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij5Db25zaWRlciB0aGUg bG93IHBlcmZvcm1hbmM9CmUgc2NlbmUgKCB1c2VyIGRpZCBub3QgY29uZmlndXJlIFZNIENQVSBw aW5uaW5nICk8bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb0xpc3RQYXJhZ3Jh cGgiIHN0eWxlPTNEIm1hcmdpbi1sZWZ0OjE4LjBwdDt0ZXh0LWluZGVudDowY20iPj0KPHNwYW4g bGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgU2ltcGxpZmllZCZx dW90OywmcXVvdDtzPQphbnMtc2VyaWYmcXVvdDsiPldoZW4gVmRzQnJva2VyIGNoZWNrIHRoZSBD UFUgcGlubmluZyB0ZXh0IGlzIGVtcHR5LCB0aGVuIGc9CmVuZXJhdGUgdGhlIHJpZ2h0IENQVSBw aW5uaW5nIHRleHQgZnJvbSB2aXJ0dWFsIE5VTUEgbm9kZXMgKAogcGluIHRvIGhvc3QgTlVNQSBu b2RlcyApPG86cD48L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFu IGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFM9CmltcGxpZmll ZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48 L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0Qi Zm9udC1mYW1pbHk6JnF1b3Q7SFAgUz0KaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYm cXVvdDsiPlRoZSBuZXh0IHZlcnNpb248bzpwPjwvbzpwPjwvc3Bhbj48PQovcD4KPHAgY2xhc3M9 M0QiTXNvTGlzdFBhcmFncmFwaCIgc3R5bGU9M0QibWFyZ2luLWxlZnQ6MTguMHB0O3RleHQtaW5k ZW50Oi0xOC4wPQpwdDttc28tbGlzdDpsMCBsZXZlbDEgbGZvMyI+CjwhW2lmICFzdXBwb3J0TGlz dHNdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFNp bT0KcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1b3Q7Ij48c3BhbiBzdHlsZT0zRCJt c28tbGlzdDpJZ25vcmUiPjEuPHNwPQphbiBzdHlsZT0zRCJmb250OjcuMHB0ICZxdW90O1RpbWVz IE5ldyBSb21hbiZxdW90OyI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A9CjsmbmJzcDsKPC9zcGFu Pjwvc3Bhbj48L3NwYW4+PCFbZW5kaWZdPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxlPTNEImZv bnQtZmFtaWx5OiZxPQp1b3Q7SFAgU2ltcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNlcmlmJnF1 b3Q7Ij5SZW1vdmUgY3VycmVudCBDUFUgcGlubmluZyA9CnRleHQgZmVhdHVyZS48bzpwPjwvbzpw Pjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPTNEIm1hcmdp bi1sZWZ0OjE4LjBwdDt0ZXh0LWluZGVudDotMTguMD0KcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxm bzMiPgo8IVtpZiAhc3VwcG9ydExpc3RzXT48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJm b250LWZhbWlseTomcXVvdDtIUCBTaW09CnBsaWZpZWQmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZx dW90OyI+PHNwYW4gc3R5bGU9M0QibXNvLWxpc3Q6SWdub3JlIj4yLjxzcD0KYW4gc3R5bGU9M0Qi Zm9udDo3LjBwdCAmcXVvdDtUaW1lcyBOZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwPQo7Jm5ic3A7Cjwvc3Bhbj48L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBsYW5n PTNEIkVOLVVTIiBzdHlsZT0zRCJmb250LWZhbWlseTomcT0KdW90O0hQIFNpbXBsaWZpZWQmcXVv dDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+Q29uc2lkZXIgdGhlIE5VTUEgbm9kZSBpbnNpPQpk ZSBDUFUgcGlubmluZyBkZXNpZ24uICggU2hvdWxkIGNvbnNpZGVyIHRoZSBpbmRpdmlkdWFsbHkg Q1BVIHBpbmluZyBkZXNpZ249CiBub3QgaW5jbHVkZXMgTlVNQSApPG86cD48L286cD48L3NwYW4+ PC9wPgo8cCBjbGFzcz0zRCJNc29MaXN0UGFyYWdyYXBoIiBzdHlsZT0zRCJtYXJnaW4tbGVmdDox OC4wcHQ7dGV4dC1pbmRlbnQ6LTE4LjA9CnB0O21zby1saXN0OmwwIGxldmVsMSBsZm8zIj4KPCFb aWYgIXN1cHBvcnRMaXN0c10+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1p bHk6JnF1b3Q7SFAgU2ltPQpwbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxz cGFuIHN0eWxlPTNEIm1zby1saXN0Oklnbm9yZSI+My48c3A9CmFuIHN0eWxlPTNEImZvbnQ6Ny4w cHQgJnF1b3Q7VGltZXMgTmV3IFJvbWFuJnF1b3Q7Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcD0K OyZuYnNwOwo8L3NwYW4+PC9zcGFuPjwvc3Bhbj48IVtlbmRpZl0+PHNwYW4gbGFuZz0zRCJFTi1V UyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnE9CnVvdDtIUCBTaW1wbGlmaWVkJnF1b3Q7LCZxdW90 O3NhbnMtc2VyaWYmcXVvdDsiPkFkZCByZWxhdGVkIENQVSBwaW5uaW5nIEJFID0KbW9kZWwsIHF1 ZXJ5IGFuZCBhY3Rpb24gY29tbWFuZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNE Ik1zb0xpc3RQYXJhZ3JhcGgiIHN0eWxlPTNEIm1hcmdpbi1sZWZ0OjE4LjBwdDt0ZXh0LWluZGVu dDotMTguMD0KcHQ7bXNvLWxpc3Q6bDAgbGV2ZWwxIGxmbzMiPgo8IVtpZiAhc3VwcG9ydExpc3Rz XT48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJmb250LWZhbWlseTomcXVvdDtIUCBTaW09 CnBsaWZpZWQmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90OyI+PHNwYW4gc3R5bGU9M0QibXNv LWxpc3Q6SWdub3JlIj40LjxzcD0KYW4gc3R5bGU9M0QiZm9udDo3LjBwdCAmcXVvdDtUaW1lcyBO ZXcgUm9tYW4mcXVvdDsiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwPQo7Jm5ic3A7Cjwvc3Bhbj48 L3NwYW4+PC9zcGFuPjwhW2VuZGlmXT48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJmb250 LWZhbWlseTomcT0KdW90O0hQIFNpbXBsaWZpZWQmcXVvdDssJnF1b3Q7c2Fucy1zZXJpZiZxdW90 OyI+VHVybiBvZmYgVmRzQnJva2VyIGdlbmVyYXRlPQogZnVuY3Rpb24uPG86cD48L286cD48L3Nw YW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiIHN0eWxl PTNEImZvbnQtZmFtaWx5OiZxdW90O0hQIFM9CmltcGxpZmllZCZxdW90OywmcXVvdDtzYW5zLXNl cmlmJnF1b3Q7Ij48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05v cm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAg Uz0KaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPkRvIHlvdSBhZ3JlZSA/ PG86cD48L286cD48L3NwYW4+PC9wPQo+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFu Zz0zRCJFTi1VUyIgc3R5bGU9M0QiZm9udC1mYW1pbHk6JnF1b3Q7SFAgUz0KaW1wbGlmaWVkJnF1 b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVvdDsiPjxvOnA+Jm5ic3A7PC9vOnA+PC9zcGFuPjwvcD4K PHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48Yj48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJm b250LXNpemU6OS4wcHQ7Zm9uPQp0LWZhbWlseTomcXVvdDtIUCBTaW1wbGlmaWVkJnF1b3Q7LCZx dW90O3NhbnMtc2VyaWYmcXVvdDs7Y29sb3I6YmxhY2siPkJlc3Q9CiBSZWdhcmRzLDxicj4KPC9z cGFuPjwvYj48c3BhbiBsYW5nPTNEIkVOLVVTIiBzdHlsZT0zRCJmb250LXNpemU6OS4wcHQ7Zm9u dC1mYW1pbHk6JnF1b3Q7PQpIUCBTaW1wbGlmaWVkJnF1b3Q7LCZxdW90O3NhbnMtc2VyaWYmcXVv dDs7Y29sb3I6IzcxNzE3MiI+SmFzb24gTGlhbzwvc3Bhbj49CjxzcGFuIGxhbmc9M0QiRU4tVVMi PjxvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj48c3BhbiBsYW5n PTNEIkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjwvZGl2Pgo8L2JvZHk+Cjwv aHRtbD4KCi0tXzAwMF9CNjNDODU4RTc3NzY3OTQ1ODMzOEEzMEE5OTFCQjUyNDAxNjEzMDg0RzFX MzY0N2FtZXJpY2FzXy0tCg== --===============4394186381134351661==--