From jira at ovirt-jira.atlassian.net Wed Nov 15 14:36:32 2017 Content-Type: multipart/mixed; boundary="===============6541986448426523591==" MIME-Version: 1.0 From: Barak Korren (oVirt JIRA) To: infra at ovirt.org Subject: [JIRA] (OVIRT-1763) Increase entropy for hosts Date: Wed, 15 Nov 2017 14:36:31 +0000 Message-ID: In-Reply-To: JIRA.33295.1510744867000@Atlassian.JIRA --===============6541986448426523591== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable This is a multi-part message in MIME format... ------------=3D_1510756591-26566-475 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 7bit [ https://ovirt-jira.atlassian.net/browse/OVIRT-1763?page=3Dcom.atlassi= an.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D35= 345#comment-35345 ] = Barak Korren edited comment on OVIRT-1763 at 11/15/17 2:36 PM: --------------------------------------------------------------- [~ederevea] OST uses a simple check to determine if to run in RAM or not: {code} # if above RAM_THRESHOLD KBs are available in /dev/shm, run there RAM_THRESHOLD=3D15000000 # ... get_run_path() { local avail_shm avail_shm=3D$(df --output=3Davail /dev/shm | sed 1d) [[ "$avail_shm" -ge "$RAM_THRESHOLD" ]] && \ mkdir -p "/dev/shm/ost" && \ echo "/dev/shm/ost/deployment-$SUITE" || \ echo "$PWD/deployment-$SUITE" } {code} This seems to be 15G so we need to figure out why wasn't this available whe= n these lines ran (These lines are amount the very first things that run wh= en an OST suit starts up, so its unlikely to be cause by anything the suit = is doing) Code quoted above is part of '{{automation/suit.sh}}' in OST: https://gerrit.ovirt.org/gitweb?p=3Dovirt-system-tests.git;a=3Dblob;f=3Daut= omation/suite.sh;hb=3Drefs/heads/master#l28 was (Author: bkorren(a)redhat.com): [~ederevea] OST uses a simple check to determine if to run in RAM or not: {code} # if above RAM_THRESHOLD KBs are available in /dev/shm, run there RAM_THRESHOLD=3D15000000 # ... get_run_path() { local avail_shm avail_shm=3D$(df --output=3Davail /dev/shm | sed 1d) [[ "$avail_shm" -ge "$RAM_THRESHOLD" ]] && \ mkdir -p "/dev/shm/ost" && \ echo "/dev/shm/ost/deployment-$SUITE" || \ echo "$PWD/deployment-$SUITE" } {code} This seems to be 15G so we need to figure out why wasn't this available whe= n these lines ran (These lines are amount the very first things that run wh= en an OST suit starts up, so its unlikely to be cause by anything the suit = is doing) > Increase entropy for hosts > -------------------------- > > Key: OVIRT-1763 > URL: https://ovirt-jira.atlassian.net/browse/OVIRT-1763 > Project: oVirt - virtualization made easy > Issue Type: Bug > Reporter: Dafna Ron > Assignee: infra > > we had a failure in ost that was really hard to debug: http://jenkins.ovi= rt.org/job/ovirt-master_change-queue-tester/3795/ > There are no failures in the logs and the test itself was terminated by a= timeout. > It took the vms a long time to download packages and install and didi see= ms to think that this is due to limited entropy on the physical host. = > we need to review this issue and increase the entropy on the hosts. = -- This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#100071) ------------=3D_1510756591-26566-475 Content-Type: text/html; charset=3D"UTF-8" Content-Disposition: inline Content-Transfer-Encoding: 7bit
[ https://ovirt-jira.atlassian.net/browse/OVIRT-1763?page=3Dcom.atlass=
ian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=
=3D35345#comment-35345 ]

Barak Korren edited comment on OVIRT-1763 at 11/15/17 2:36 PM:

[~ederevea] OST uses a simple check to determine if to run in RAM or not= :

{code} # if above RAM_THRESHOLD KBs are available in /dev/shm, run there= RAM_THRESHOLD=3D15000000

# …

get_run_path() {

local avail_shm
avail_shm=3D$(df --output=3Davail /dev/shm | sed 1d)
[[ "$avail_shm" -ge "$RAM_THRESHOLD" ]] && \
    mkdir -p "/dev/shm/ost" && \
    echo "/dev/shm/ost/deployment-$SUITE" || \
    echo "$PWD/deployment-$SUITE"

} {code}

This seems to be 15G so we need to figure out why wasn't this available = when these lines ran (These lines are amount the very first things that run= when an OST suit starts up, so its unlikely to be cause by anything the su= it is doing)

Code quoted above is part of ‘{{automation/suit.sh}}’ in OST= : https://gerrit.= ovirt.org/gitweb?p=3Dovirt-system-tests.git;a=3Dblob;f=3Dautomation/suite.s= h;hb=3Drefs/heads/master#l28

was (Author: bkorren(a)redhat.com): [~ederevea] OST uses a simple check = to determine if to run in RAM or not:

{code} # if above RAM_THRESHOLD KBs are available in /dev/shm, run there= RAM_THRESHOLD=3D15000000

# …

get_run_path() {

local avail_shm
avail_shm=3D$(df --output=3Davail /dev/shm | sed 1d)
[[ "$avail_shm" -ge "$RAM_THRESHOLD" ]] && \
    mkdir -p "/dev/shm/ost" && \
    echo "/dev/shm/ost/deployment-$SUITE" || \
    echo "$PWD/deployment-$SUITE"

} {code}

This seems to be 15G so we need to figure out why wasn't this available = when these lines ran (These lines are amount the very first things that run= when an OST suit starts up, so its unlikely to be cause by anything the su= it is doing)

Increase entropy for hosts

     Key: OVIRT-1763
     URL: https://ovirt-jira.atlassian.net/browse/OVIRT-1763
 Project: oVirt - virtualization made easy
         Issue Type: Bug
Reporter: Dafna Ron
Assignee: infra

we had a failure in ost that was really hard to debug: http://jenki= ns.ovirt.org/job/ovirt-master_change-queue-tester/3795/ There are no fa= ilures in the logs and the test itself was terminated by a timeout. It took= the vms a long time to download packages and install and didi seems to thi= nk that this is due to limited entropy on the physical host. we need to rev= iew this issue and increase the entropy on the hosts.

— This message was sent by Atlassian Jira (v1001.0.0-SNAPSHOT#1000= 71)

3D"" ------------=3D_1510756591-26566-475-- --===============6541986448426523591== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4uLgoKLS0tLS0tLS0t LS0tPV8xNTEwNzU2NTkxLTI2NTY2LTQ3NQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJz ZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKCiAgICBbIGh0dHBzOi8v b3ZpcnQtamlyYS5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9PVklSVC0xNzYzP3BhZ2U9Y29tLmF0bGFz c2lhbi5qaXJhLnBsdWdpbi5zeXN0ZW0uaXNzdWV0YWJwYW5lbHM6Y29tbWVudC10YWJwYW5lbCZm b2N1c2VkQ29tbWVudElkPTM1MzQ1I2NvbW1lbnQtMzUzNDUgXSAKCkJhcmFrIEtvcnJlbiBlZGl0 ZWQgY29tbWVudCBvbiBPVklSVC0xNzYzIGF0IDExLzE1LzE3IDI6MzYgUE06Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKW35l ZGVyZXZlYV0gT1NUIHVzZXMgYSBzaW1wbGUgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRvIHJ1biBp biBSQU0gb3Igbm90OgoKe2NvZGV9CiMgaWYgYWJvdmUgUkFNX1RIUkVTSE9MRCBLQnMgYXJlIGF2 YWlsYWJsZSBpbiAvZGV2L3NobSwgcnVuIHRoZXJlClJBTV9USFJFU0hPTEQ9MTUwMDAwMDAKCiMg Li4uCgpnZXRfcnVuX3BhdGgoKSB7CiAgICAgbG9jYWwgYXZhaWxfc2htCiAgICAgYXZhaWxfc2ht PSQoZGYgLS1vdXRwdXQ9YXZhaWwgL2Rldi9zaG0gfCBzZWQgMWQpCiAgICAgW1sgIiRhdmFpbF9z aG0iIC1nZSAiJFJBTV9USFJFU0hPTEQiIF1dICYmIFwKICAgICAgICAgbWtkaXIgLXAgIi9kZXYv c2htL29zdCIgJiYgXAogICAgICAgICBlY2hvICIvZGV2L3NobS9vc3QvZGVwbG95bWVudC0kU1VJ VEUiIHx8IFwKICAgICAgICAgZWNobyAiJFBXRC9kZXBsb3ltZW50LSRTVUlURSIKfQp7Y29kZX0K ClRoaXMgc2VlbXMgdG8gYmUgMTVHIHNvIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aHkgd2Fzbid0 IHRoaXMgYXZhaWxhYmxlIHdoZW4gdGhlc2UgbGluZXMgcmFuIChUaGVzZSBsaW5lcyBhcmUgYW1v dW50IHRoZSB2ZXJ5IGZpcnN0IHRoaW5ncyB0aGF0IHJ1biB3aGVuIGFuIE9TVCBzdWl0IHN0YXJ0 cyB1cCwgc28gaXRzIHVubGlrZWx5IHRvIGJlIGNhdXNlIGJ5IGFueXRoaW5nIHRoZSBzdWl0IGlz IGRvaW5nKQoKQ29kZSBxdW90ZWQgYWJvdmUgaXMgcGFydCBvZiAne3thdXRvbWF0aW9uL3N1aXQu c2h9fScgaW4gT1NUOgpodHRwczovL2dlcnJpdC5vdmlydC5vcmcvZ2l0d2ViP3A9b3ZpcnQtc3lz dGVtLXRlc3RzLmdpdDthPWJsb2I7Zj1hdXRvbWF0aW9uL3N1aXRlLnNoO2hiPXJlZnMvaGVhZHMv bWFzdGVyI2wyOAoKCndhcyAoQXV0aG9yOiBia29ycmVuQHJlZGhhdC5jb20pOgpbfmVkZXJldmVh XSBPU1QgdXNlcyBhIHNpbXBsZSBjaGVjayB0byBkZXRlcm1pbmUgaWYgdG8gcnVuIGluIFJBTSBv ciBub3Q6Cgp7Y29kZX0KIyBpZiBhYm92ZSBSQU1fVEhSRVNIT0xEIEtCcyBhcmUgYXZhaWxhYmxl IGluIC9kZXYvc2htLCBydW4gdGhlcmUKUkFNX1RIUkVTSE9MRD0xNTAwMDAwMAoKIyAuLi4KCmdl dF9ydW5fcGF0aCgpIHsKICAgICBsb2NhbCBhdmFpbF9zaG0KICAgICBhdmFpbF9zaG09JChkZiAt LW91dHB1dD1hdmFpbCAvZGV2L3NobSB8IHNlZCAxZCkKICAgICBbWyAiJGF2YWlsX3NobSIgLWdl ICIkUkFNX1RIUkVTSE9MRCIgXV0gJiYgXAogICAgICAgICBta2RpciAtcCAiL2Rldi9zaG0vb3N0 IiAmJiBcCiAgICAgICAgIGVjaG8gIi9kZXYvc2htL29zdC9kZXBsb3ltZW50LSRTVUlURSIgfHwg XAogICAgICAgICBlY2hvICIkUFdEL2RlcGxveW1lbnQtJFNVSVRFIgp9Cntjb2RlfQoKVGhpcyBz ZWVtcyB0byBiZSAxNUcgc28gd2UgbmVlZCB0byBmaWd1cmUgb3V0IHdoeSB3YXNuJ3QgdGhpcyBh dmFpbGFibGUgd2hlbiB0aGVzZSBsaW5lcyByYW4gKFRoZXNlIGxpbmVzIGFyZSBhbW91bnQgdGhl IHZlcnkgZmlyc3QgdGhpbmdzIHRoYXQgcnVuIHdoZW4gYW4gT1NUIHN1aXQgc3RhcnRzIHVwLCBz byBpdHMgdW5saWtlbHkgdG8gYmUgY2F1c2UgYnkgYW55dGhpbmcgdGhlIHN1aXQgaXMgZG9pbmcp Cgo+IEluY3JlYXNlIGVudHJvcHkgZm9yIGhvc3RzCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KPgo+ICAgICAgICAgICAgICAgICBLZXk6IE9WSVJULTE3NjMKPiAgICAgICAgICAgICAgICAg VVJMOiBodHRwczovL292aXJ0LWppcmEuYXRsYXNzaWFuLm5ldC9icm93c2UvT1ZJUlQtMTc2Mwo+ ICAgICAgICAgICAgIFByb2plY3Q6IG9WaXJ0IC0gdmlydHVhbGl6YXRpb24gbWFkZSBlYXN5Cj4g ICAgICAgICAgSXNzdWUgVHlwZTogQnVnCj4gICAgICAgICAgICBSZXBvcnRlcjogRGFmbmEgUm9u Cj4gICAgICAgICAgICBBc3NpZ25lZTogaW5mcmEKPgo+IHdlIGhhZCBhIGZhaWx1cmUgaW4gb3N0 IHRoYXQgd2FzIHJlYWxseSBoYXJkIHRvIGRlYnVnOiBodHRwOi8vamVua2lucy5vdmlydC5vcmcv am9iL292aXJ0LW1hc3Rlcl9jaGFuZ2UtcXVldWUtdGVzdGVyLzM3OTUvCj4gVGhlcmUgYXJlIG5v IGZhaWx1cmVzIGluIHRoZSBsb2dzIGFuZCB0aGUgdGVzdCBpdHNlbGYgd2FzIHRlcm1pbmF0ZWQg YnkgYSB0aW1lb3V0Lgo+IEl0IHRvb2sgdGhlIHZtcyBhIGxvbmcgdGltZSB0byBkb3dubG9hZCBw YWNrYWdlcyBhbmQgaW5zdGFsbCBhbmQgZGlkaSBzZWVtcyB0byB0aGluayB0aGF0IHRoaXMgaXMg ZHVlIHRvIGxpbWl0ZWQgZW50cm9weSBvbiB0aGUgcGh5c2ljYWwgaG9zdC4gCj4gd2UgbmVlZCB0 byByZXZpZXcgdGhpcyBpc3N1ZSBhbmQgaW5jcmVhc2UgdGhlIGVudHJvcHkgb24gdGhlIGhvc3Rz LiAKCgoKLS0KVGhpcyBtZXNzYWdlIHdhcyBzZW50IGJ5IEF0bGFzc2lhbiBKaXJhCih2MTAwMS4w LjAtU05BUFNIT1QjMTAwMDcxKQoKLS0tLS0tLS0tLS0tPV8xNTEwNzU2NTkxLTI2NTY2LTQ3NQpD b250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtRGlzcG9zaXRp b246IGlubGluZQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0Cgo8aHRtbD48Ym9keT4K PHByZT5bIGh0dHBzOi8vb3ZpcnQtamlyYS5hdGxhc3NpYW4ubmV0L2Jyb3dzZS9PVklSVC0xNzYz P3BhZ2U9Y29tLmF0bGFzc2lhbi5qaXJhLnBsdWdpbi5zeXN0ZW0uaXNzdWV0YWJwYW5lbHM6Y29t bWVudC10YWJwYW5lbCZhbXA7Zm9jdXNlZENvbW1lbnRJZD0zNTM0NSNjb21tZW50LTM1MzQ1IF08 L3ByZT4KPGgzPkJhcmFrIEtvcnJlbiBlZGl0ZWQgY29tbWVudCBvbiBPVklSVC0xNzYzIGF0IDEx LzE1LzE3IDI6MzYgUE06PC9oMz4KPHA+W35lZGVyZXZlYV0gT1NUIHVzZXMgYSBzaW1wbGUgY2hl Y2sgdG8gZGV0ZXJtaW5lIGlmIHRvIHJ1biBpbiBSQU0gb3Igbm90OjwvcD4KPHA+e2NvZGV9ICMg aWYgYWJvdmUgUkFNX1RIUkVTSE9MRCBLQnMgYXJlIGF2YWlsYWJsZSBpbiAvZGV2L3NobSwgcnVu IHRoZXJlIFJBTV9USFJFU0hPTEQ9MTUwMDAwMDA8L3A+CjxwPiMgJmhlbGxpcDs8L3A+CjxwPmdl dF9ydW5fcGF0aCgpIHs8L3A+CjxwcmU+bG9jYWwgYXZhaWxfc2htCmF2YWlsX3NobT0kKGRmIC0t b3V0cHV0PWF2YWlsIC9kZXYvc2htIHwgc2VkIDFkKQpbWyAiJGF2YWlsX3NobSIgLWdlICIkUkFN X1RIUkVTSE9MRCIgXV0gJmFtcDsmYW1wOyBcCiAgICBta2RpciAtcCAiL2Rldi9zaG0vb3N0IiAm YW1wOyZhbXA7IFwKICAgIGVjaG8gIi9kZXYvc2htL29zdC9kZXBsb3ltZW50LSRTVUlURSIgfHwg XAogICAgZWNobyAiJFBXRC9kZXBsb3ltZW50LSRTVUlURSI8L3ByZT4KPHA+fSB7Y29kZX08L3A+ CjxwPlRoaXMgc2VlbXMgdG8gYmUgMTVHIHNvIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aHkgd2Fz bid0IHRoaXMgYXZhaWxhYmxlIHdoZW4gdGhlc2UgbGluZXMgcmFuIChUaGVzZSBsaW5lcyBhcmUg YW1vdW50IHRoZSB2ZXJ5IGZpcnN0IHRoaW5ncyB0aGF0IHJ1biB3aGVuIGFuIE9TVCBzdWl0IHN0 YXJ0cyB1cCwgc28gaXRzIHVubGlrZWx5IHRvIGJlIGNhdXNlIGJ5IGFueXRoaW5nIHRoZSBzdWl0 IGlzIGRvaW5nKTwvcD4KPHA+Q29kZSBxdW90ZWQgYWJvdmUgaXMgcGFydCBvZiAmbHNxdW87e3th dXRvbWF0aW9uL3N1aXQuc2h9fSZyc3F1bzsgaW4gT1NUOiA8YSBocmVmPSJodHRwczovL2dlcnJp dC5vdmlydC5vcmcvZ2l0d2ViP3A9b3ZpcnQtc3lzdGVtLXRlc3RzLmdpdDthPWJsb2I7Zj1hdXRv bWF0aW9uL3N1aXRlLnNoO2hiPXJlZnMvaGVhZHMvbWFzdGVyI2wyOCI+aHR0cHM6Ly9nZXJyaXQu b3ZpcnQub3JnL2dpdHdlYj9wPW92aXJ0LXN5c3RlbS10ZXN0cy5naXQ7YT1ibG9iO2Y9YXV0b21h dGlvbi9zdWl0ZS5zaDtoYj1yZWZzL2hlYWRzL21hc3RlciNsMjg8L2E+PC9wPgo8cD53YXMgKEF1 dGhvcjogYmtvcnJlbkByZWRoYXQuY29tKTogW35lZGVyZXZlYV0gT1NUIHVzZXMgYSBzaW1wbGUg Y2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRvIHJ1biBpbiBSQU0gb3Igbm90OjwvcD4KPHA+e2NvZGV9 ICMgaWYgYWJvdmUgUkFNX1RIUkVTSE9MRCBLQnMgYXJlIGF2YWlsYWJsZSBpbiAvZGV2L3NobSwg cnVuIHRoZXJlIFJBTV9USFJFU0hPTEQ9MTUwMDAwMDA8L3A+CjxwPiMgJmhlbGxpcDs8L3A+Cjxw PmdldF9ydW5fcGF0aCgpIHs8L3A+CjxwcmU+bG9jYWwgYXZhaWxfc2htCmF2YWlsX3NobT0kKGRm IC0tb3V0cHV0PWF2YWlsIC9kZXYvc2htIHwgc2VkIDFkKQpbWyAiJGF2YWlsX3NobSIgLWdlICIk UkFNX1RIUkVTSE9MRCIgXV0gJmFtcDsmYW1wOyBcCiAgICBta2RpciAtcCAiL2Rldi9zaG0vb3N0 IiAmYW1wOyZhbXA7IFwKICAgIGVjaG8gIi9kZXYvc2htL29zdC9kZXBsb3ltZW50LSRTVUlURSIg fHwgXAogICAgZWNobyAiJFBXRC9kZXBsb3ltZW50LSRTVUlURSI8L3ByZT4KPHA+fSB7Y29kZX08 L3A+CjxwPlRoaXMgc2VlbXMgdG8gYmUgMTVHIHNvIHdlIG5lZWQgdG8gZmlndXJlIG91dCB3aHkg d2Fzbid0IHRoaXMgYXZhaWxhYmxlIHdoZW4gdGhlc2UgbGluZXMgcmFuIChUaGVzZSBsaW5lcyBh cmUgYW1vdW50IHRoZSB2ZXJ5IGZpcnN0IHRoaW5ncyB0aGF0IHJ1biB3aGVuIGFuIE9TVCBzdWl0 IHN0YXJ0cyB1cCwgc28gaXRzIHVubGlrZWx5IHRvIGJlIGNhdXNlIGJ5IGFueXRoaW5nIHRoZSBz dWl0IGlzIGRvaW5nKTwvcD4KPGJsb2NrcXVvdGU+PGgzPkluY3JlYXNlIGVudHJvcHkgZm9yIGhv c3RzPC9oMz4KPHByZT4gICAgIEtleTogT1ZJUlQtMTc2MwogICAgIFVSTDogaHR0cHM6Ly9vdmly dC1qaXJhLmF0bGFzc2lhbi5uZXQvYnJvd3NlL09WSVJULTE3NjMKIFByb2plY3Q6IG9WaXJ0IC0g dmlydHVhbGl6YXRpb24gbWFkZSBlYXN5CiAgICAgICAgIElzc3VlIFR5cGU6IEJ1ZwpSZXBvcnRl cjogRGFmbmEgUm9uCkFzc2lnbmVlOiBpbmZyYTwvcHJlPgo8cD53ZSBoYWQgYSBmYWlsdXJlIGlu IG9zdCB0aGF0IHdhcyByZWFsbHkgaGFyZCB0byBkZWJ1ZzogPGEgaHJlZj0iaHR0cDovL2plbmtp bnMub3ZpcnQub3JnL2pvYi9vdmlydC1tYXN0ZXJfY2hhbmdlLXF1ZXVlLXRlc3Rlci8zNzk1LyI+ aHR0cDovL2plbmtpbnMub3ZpcnQub3JnL2pvYi9vdmlydC1tYXN0ZXJfY2hhbmdlLXF1ZXVlLXRl c3Rlci8zNzk1LzwvYT4gVGhlcmUgYXJlIG5vIGZhaWx1cmVzIGluIHRoZSBsb2dzIGFuZCB0aGUg dGVzdCBpdHNlbGYgd2FzIHRlcm1pbmF0ZWQgYnkgYSB0aW1lb3V0LiBJdCB0b29rIHRoZSB2bXMg YSBsb25nIHRpbWUgdG8gZG93bmxvYWQgcGFja2FnZXMgYW5kIGluc3RhbGwgYW5kIGRpZGkgc2Vl bXMgdG8gdGhpbmsgdGhhdCB0aGlzIGlzIGR1ZSB0byBsaW1pdGVkIGVudHJvcHkgb24gdGhlIHBo eXNpY2FsIGhvc3QuIHdlIG5lZWQgdG8gcmV2aWV3IHRoaXMgaXNzdWUgYW5kIGluY3JlYXNlIHRo ZSBlbnRyb3B5IG9uIHRoZSBob3N0cy48L3A+PC9ibG9ja3F1b3RlPgo8cD4mbWRhc2g7IFRoaXMg bWVzc2FnZSB3YXMgc2VudCBieSBBdGxhc3NpYW4gSmlyYSAodjEwMDEuMC4wLVNOQVBTSE9UIzEw MDA3MSk8L3A+Cgo8aW1nIHNyYz0iaHR0cHM6Ly91NDA0MzQwMi5jdC5zZW5kZ3JpZC5uZXQvd2Yv b3Blbj91cG49aTVUTVdHVjk5YW1KYk54SnBTcDItMkJDbXBZTHl6WVMzcjFROTM5VDJzZ3oySzJx UDJCa1h5V0VzTjdZeUhKcEQ1Y2U5Vk9vSk5tLTJCYW5xbG44V1dYZDVjMEF1M0RscWRWc29tR2lL MFBlRnRaajhpSldNbUNodGhYbzQwQ2Y2OW5yNE9XVkF6OEF1SzlnNVFQSnBoUEhhYXRMVWJad3Jm NzB3Wkw5d2w5NEw0eEpBYWtDWmx0TTMxN1FhR3N3VUFxVXpZdkRUZkY2OE8zaGN3bG1vUlRpQ1V5 VFU4UWdDTUtZT0x6LTJGSnBJbENiZy0zRCIgYWx0PSIiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGJv cmRlcj0iMCIgc3R5bGU9ImhlaWdodDoxcHggIWltcG9ydGFudDt3aWR0aDoxcHggIWltcG9ydGFu dDtib3JkZXItd2lkdGg6MCAhaW1wb3J0YW50O21hcmdpbi10b3A6MCAhaW1wb3J0YW50O21hcmdp bi1ib3R0b206MCAhaW1wb3J0YW50O21hcmdpbi1yaWdodDowICFpbXBvcnRhbnQ7bWFyZ2luLWxl ZnQ6MCAhaW1wb3J0YW50O3BhZGRpbmctdG9wOjAgIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTow ICFpbXBvcnRhbnQ7cGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7cGFkZGluZy1sZWZ0OjAgIWlt cG9ydGFudDsiLz4KPC9ib2R5PjwvaHRtbD4KCi0tLS0tLS0tLS0tLT1fMTUxMDc1NjU5MS0yNjU2 Ni00NzUtLQo= --===============6541986448426523591==--