<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>53357</bug_id>
          
          <creation_ts>2011-01-28 18:04:16 -0800</creation_ts>
          <short_desc>Some more Heap cleanup</short_desc>
          <delta_ts>2011-01-29 19:33:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>buildbot</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>341910</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 18:04:16 -0800</bug_when>
    <thetext>Some more Heap cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341925</commentid>
    <comment_count>1</comment_count>
      <attachid>80534</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 18:24:01 -0800</bug_when>
    <thetext>Created attachment 80534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341939</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-28 18:57:18 -0800</bug_when>
    <thetext>Attachment 80534 did not build on win:
Build output: http://queues.webkit.org/results/7535381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341973</commentid>
    <comment_count>3</comment_count>
      <attachid>80540</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 20:36:13 -0800</bug_when>
    <thetext>Created attachment 80540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341987</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-28 21:42:07 -0800</bug_when>
    <thetext>Attachment 80540 did not build on win:
Build output: http://queues.webkit.org/results/7597443</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341988</commentid>
    <comment_count>5</comment_count>
      <attachid>80545</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-28 21:56:30 -0800</bug_when>
    <thetext>Created attachment 80545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341992</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-28 22:21:14 -0800</bug_when>
    <thetext>Attachment 80540 did not build on win:
Build output: http://queues.webkit.org/results/7636275</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342086</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-29 05:07:26 -0800</bug_when>
    <thetext>Attachment 80545 did not build on mac:
Build output: http://queues.webkit.org/results/7567491</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342097</commentid>
    <comment_count>8</comment_count>
      <attachid>80562</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-29 08:06:50 -0800</bug_when>
    <thetext>Created attachment 80562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342109</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-29 10:33:26 -0800</bug_when>
    <thetext>Attachment 80562 did not build on mac:
Build output: http://queues.webkit.org/results/7506565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342116</commentid>
    <comment_count>10</comment_count>
      <attachid>80567</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-29 11:01:07 -0800</bug_when>
    <thetext>Created attachment 80567
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342138</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-29 14:20:09 -0800</bug_when>
    <thetext>Attachment 80567 did not build on mac:
Build output: http://queues.webkit.org/results/7528607</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342143</commentid>
    <comment_count>12</comment_count>
      <attachid>80573</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-29 14:44:14 -0800</bug_when>
    <thetext>Created attachment 80573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342168</commentid>
    <comment_count>13</comment_count>
      <attachid>80573</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-29 16:24:49 -0800</bug_when>
    <thetext>Comment on attachment 80573
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342188</commentid>
    <comment_count>14</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-29 19:33:03 -0800</bug_when>
    <thetext>Committed r77077: &lt;http://trac.webkit.org/changeset/77077&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80534</attachid>
            <date>2011-01-28 18:24:01 -0800</date>
            <delta_ts>2011-01-28 20:36:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110128182400.patch</filename>
            <type>text/plain</type>
            <size>15212</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOiBVcGRhdGVkIGV4
cG9ydGVkIHN5bWJvbHMuCisKKyAgICAgICAgKiBydW50aW1lL0hlYXAuY3BwOgorICAgICAgICAo
SlNDOjpIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZSk6IFJlbmFtZWQgcmVjb3Jk
RXh0cmFDb3N0IHRvIAorICAgICAgICByZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZSB0byBt
YXRjaCBvdXIgbmFtaW5nIGNvbnZlbnRpb25zLgorCisgICAgICAgIChKU0M6OkhlYXA6OmNhcGFj
aXR5KTogUmVuYW1lZCBzaXplIHRvIGNhcGFjaXR5IGJlY2F1c2UgdGhpcyBmdW5jdGlvbgorICAg
ICAgICByZXR1cm5zIHRoZSBjYXBhY2l0eSBvZiB0aGUgaGVhcCwgaW5jbHVkaW5nIHVudXNlZCBw
b3J0aW9ucy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5oOgorICAgICAgICAoSlNDOjpIZWFw
OjpnbG9iYWxEYXRhKToKKyAgICAgICAgKEpTQzo6SGVhcDo6bWFya2VkU3BhY2UpOgorICAgICAg
ICAoSlNDOjpIZWFwOjptYWNoaW5lU3RhY2tNYXJrZXIpOgorICAgICAgICAoSlNDOjpIZWFwOjpy
ZXBvcnRFeHRyYU1lbW9yeUNvc3QpOiBNb3ZlZCBzdGF0aWNzIHRvIHRoZSB0b3Agb2YgdGhlIGZp
bGUuCisgICAgICAgIE1vdmVkIGN0b3IgYW5kIGR0b3IgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUg
Y2xhc3MgZGVmaW5pdGlvbi4gR3JvdXBlZAorICAgICAgICBmdW5jdGlvbnMgYnkgcHVycG9zZS4K
KworICAgICAgICAqIHJ1bnRpbWUvTWFya2VkU3BhY2UuY3BwOgorICAgICAgICAoSlNDOjpNYXJr
ZWRTcGFjZTo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlz
CisgICAgICAgIGZ1bmN0aW9uIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNs
dWRpbmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5o
OiBSZW1vdmVkIHN0YXRpc3RpY3MgYW5kIHRoZSBTdGF0aXN0aWNzIGNsYXNzIGJlY2F1c2UKKyAg
ICAgICAgdGhlIHNhbWUgaW5mb3JtYXRpb24gY2FuIGJlIGdvdHRlbiBqdXN0IGJ5IGNhbGxpbmcg
c2l6ZSgpIGFuZCBjYXBhY2l0eSgpLgorCisgICAgICAgICogcnVudGltZS9NZW1vcnlTdGF0aXN0
aWNzLmNwcDoKKyAgICAgICAgKiBydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaDogRGl0dG8uCisK
IDIwMTEtMDEtMjcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gNzY5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsNyArMTY2LDYgQEAg
X19aTjNKU0MxNFNhbXBsaW5nVGhyZWFkNHN0b3BFdgogX19aTjNKU0MxNFNhbXBsaW5nVGhyZWFk
NXN0YXJ0RWoKIF9fWk4zSlNDMTRUaW1lb3V0Q2hlY2tlcjEwZGlkVGltZU91dEVQTlNfOUV4ZWNT
dGF0ZUUKIF9fWk4zSlNDMTRUaW1lb3V0Q2hlY2tlcjVyZXNldEV2Ci1fX1pOM0pTQzE0aGVhcFN0
YXRpc3RpY3NFUE5TXzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MxNHRocm93VHlwZUVycm9yRVBO
U185RXhlY1N0YXRlRQogX19aTjNKU0MxNUpTV3JhcHBlck9iamVjdDEybWFya0NoaWxkcmVuRVJO
U185TWFya1N0YWNrRQogX19aTjNKU0MxNWNyZWF0ZVR5cGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQpAQCAtMTk3LDcgKzE5Niw2IEBAIF9fWk4zSlNDMTlTb3VyY2VQcm92aWRl
ckNhY2hlRDFFdgogX19aTjNKU0MxOWluaXRpYWxpemVUaHJlYWRpbmdFdgogX19aTjNKU0MyME1h
cmtlZEFyZ3VtZW50QnVmZmVyMTBzbG93QXBwZW5kRU5TXzdKU1ZhbHVlRQogX19aTjNKU0MyMGNy
ZWF0ZVJlZmVyZW5jZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCi1fX1pOM0pT
QzIyZ2xvYmFsTWVtb3J5U3RhdGlzdGljc0V2CiBfX1pOM0pTQzIzQWJzdHJhY3RTYW1wbGluZ0Nv
dW50ZXI0ZHVtcEV2CiBfX1pOM0pTQzIzb2JqZWN0UHJvdG9GdW5jVG9TdHJpbmdFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM0pTQzIzc2V0VXBTdGF0aWNGdW5jdGlvblNsb3RFUE5TXzlFeGVjU3RhdGVF
UEtOU185SGFzaEVudHJ5RVBOU184SlNPYmplY3RFUktOU18xMElkZW50aWZpZXJFUk5TXzEyUHJv
cGVydHlTbG90RQpAQCAtMjEwLDcgKzIwOCw2IEBAIF9fWk4zSlNDMzVjcmVhdGVJbnRlcnJ1cHRl
ZEV4ZWN1dGlvbkV4Y2UKIF9fWk4zSlNDM05hTkUKIF9fWk4zSlNDNEhlYXAxNHByaW1hcnlIZWFw
RW5kRXYKIF9fWk4zSlNDNEhlYXAxNWFkZFdlYWtHQ0hhbmRsZUVQTlNfNkpTQ2VsbEUKLV9fWk4z
SlNDNEhlYXAxNXJlY29yZEV4dHJhQ29zdEVtCiBfX1pOM0pTQzRIZWFwMTZvYmplY3RUeXBlQ291
bnRzRXYKIF9fWk4zSlNDNEhlYXAxNnByaW1hcnlIZWFwQmVnaW5FdgogX19aTjNKU0M0SGVhcDE3
Y29sbGVjdEFsbEdhcmJhZ2VFdgpAQCAtMjE5LDYgKzIxNiw3IEBAIF9fWk4zSlNDNEhlYXAxOXNl
dEFjdGl2aXR5Q2FsbGJhY2tFTjNXVEYKIF9fWk4zSlNDNEhlYXAyMHByb3RlY3RlZE9iamVjdENv
dW50RXYKIF9fWk4zSlNDNEhlYXAyNXByb3RlY3RlZE9iamVjdFR5cGVDb3VudHNFdgogX19aTjNK
U0M0SGVhcDI2cHJvdGVjdGVkR2xvYmFsT2JqZWN0Q291bnRFdgorX19aTjNKU0M0SGVhcDI5cmVw
b3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2VFbQogX19aTjNKU0M0SGVhcDZpc0J1c3lFdgogX19a
TjNKU0M0SGVhcDdkZXN0cm95RXYKIF9fWk4zSlNDNEhlYXA3cHJvdGVjdEVOU183SlNWYWx1ZUUK
QEAgLTUxOSw5ICs1MTcsNyBAQCBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjZzZXR0ZXJF
dgogX19aTkszSlNDMThQcm9wZXJ0eURlc2NyaXB0b3I4d3JpdGFibGVFdgogX19aTkszSlNDMTlT
b3VyY2VQcm92aWRlckNhY2hlOGJ5dGVTaXplRXYKIF9fWk5LM0pTQzI0SlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0MTJnbG9iYWxPYmplY3RFdgotX19aTkszSlNDNEhlYXAxMHN0YXRpc3RpY3NFdgog
X19aTkszSlNDNEhlYXAxMW9iamVjdENvdW50RXYKLV9fWk5LM0pTQzRIZWFwNHNpemVFdgogX19a
TkszSlNDNkpTQ2VsbDExdG9QcmltaXRpdmVFUE5TXzlFeGVjU3RhdGVFTlNfMjJQcmVmZXJyZWRQ
cmltaXRpdmVUeXBlRQogX19aTkszSlNDNkpTQ2VsbDEydG9UaGlzT2JqZWN0RVBOU185RXhlY1N0
YXRlRQogX19aTkszSlNDNkpTQ2VsbDE0aXNHZXR0ZXJTZXR0ZXJFdgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2NDU0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5
LDcgQEAgdm9pZCBIZWFwOjpkZXN0cm95KCkKICAgICBtX2dsb2JhbERhdGEgPSAwOwogfQogCi12
b2lkIEhlYXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3QgY29zdCkKK3ZvaWQgSGVhcDo6cmVwb3J0
RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90IGNvc3QpCiB7CiAgICAgLy8gT3VyIGZyZXF1
ZW5jeSBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gdHJpZXMgdG8gYmFsYW5jZSBtZW1vcnkgdXNlIGFn
YWluc3Qgc3BlZWQKICAgICAvLyBieSBjb2xsZWN0aW5nIGJhc2VkIG9uIHRoZSBudW1iZXIgb2Yg
bmV3bHkgY3JlYXRlZCB2YWx1ZXMuIEhvd2V2ZXIsIGZvciB2YWx1ZXMKQEAgLTkyLDcgKzkyLDcg
QEAgdm9pZCBIZWFwOjpyZWNvcmRFeHRyYUNvc3Qoc2l6ZV90IGNvc3QpCiAgICAgLy8gaWYgYSBs
YXJnZSB2YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9uLCB0aGVyZSBpcyBub3Qg
bXVjaCBwb2ludCB0bwogICAgIC8vIGNvbGxlY3RpbmcgbW9yZSBmcmVxdWVudGx5IGFzIGxvbmcg
YXMgaXQgc3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9leHRyYUNvc3QgPiBtYXhFeHRyYUNvc3Qg
JiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLnNpemUoKSAvIDIpIHsKKyAgICBpZiAobV9l
eHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLmNh
cGFjaXR5KCkgLyAyKSB7CiAgICAgICAgIEpBVkFTQ1JJUFRDT1JFX0dDX0JFR0lOKCk7CiAKICAg
ICAgICAgbWFya1Jvb3RzKCk7CkBAIC0zMDIsMTQgKzMwMiwxNCBAQCBzaXplX3QgSGVhcDo6b2Jq
ZWN0Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX21hcmtlZFNwYWNlLm9iamVjdENvdW50KCk7
CiB9CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIEhlYXA6OnN0YXRpc3RpY3MoKSBjb25zdAor
c2l6ZV90IEhlYXA6OnNpemUoKSBjb25zdAogewotICAgIHJldHVybiBtX21hcmtlZFNwYWNlLnN0
YXRpc3RpY3MoKTsKKyAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplKCk7CiB9CiAKLXNpemVf
dCBIZWFwOjpzaXplKCkgY29uc3QKK3NpemVfdCBIZWFwOjpjYXBhY2l0eSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fbWFya2VkU3BhY2Uuc2l6ZSgpOworICAgIHJldHVybiBtX21hcmtlZFNwYWNl
LmNhcGFjaXR5KCk7CiB9CiAKIHNpemVfdCBIZWFwOjpnbG9iYWxPYmplY3RDb3VudCgpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTAs
NDUgKzUwLDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEhlYXAgewogICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShIZWFwKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgZGVz
dHJveSgpOworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU1ZhbHVlKTsgLy8gMCBmb3IgaW1t
ZWRpYXRlIHZhbHVlcworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAotICAg
ICAgICB2b2lkKiBhbGxvY2F0ZShzaXplX3QpOworICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxN
YXJrZWQoY29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwo
Y29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwor
ICAgICAgICAKKyAgICAgICAgSGVhcChKU0dsb2JhbERhdGEqKTsKKyAgICAgICAgfkhlYXAoKTsK
KyAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIEpTR2xvYmFsRGF0YSBtdXN0IGNhbGwgZGVzdHJv
eSgpIGJlZm9yZSB+SGVhcCgpLgogCi0gICAgICAgIGJvb2wgaXNCdXN5KCk7IC8vIHRydWUgaWYg
YW4gYWxsb2NhdGlvbiBvciBjb2xsZWN0aW9uIGlzIGluIHByb2dyZXNzCi0gICAgICAgIHZvaWQg
Y29sbGVjdEFsbEdhcmJhZ2UoKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkg
Y29uc3QgeyByZXR1cm4gbV9nbG9iYWxEYXRhOyB9CisgICAgICAgIE1hcmtlZFNwYWNlJiBtYXJr
ZWRTcGFjZSgpIHsgcmV0dXJuIG1fbWFya2VkU3BhY2U7IH0KKyAgICAgICAgTWFjaGluZVN0YWNr
TWFya2VyJiBtYWNoaW5lU3RhY2tNYXJrZXIoKSB7IHJldHVybiBtX21hY2hpbmVTdGFja01hcmtl
cjsgfQogCiAgICAgICAgIEdDQWN0aXZpdHlDYWxsYmFjayogYWN0aXZpdHlDYWxsYmFjaygpOwog
ICAgICAgICB2b2lkIHNldEFjdGl2aXR5Q2FsbGJhY2soUGFzc093blB0cjxHQ0FjdGl2aXR5Q2Fs
bGJhY2s+KTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1
NjsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0ICogMTAy
NDsKKyAgICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNv
bGxlY3Rpb24gaXMgaW4gcHJvZ3Jlc3MKKyAgICAgICAgdm9pZCogYWxsb2NhdGUoc2l6ZV90KTsK
KyAgICAgICAgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgpOwogCiAgICAgICAgIHZvaWQgcmVwb3J0
RXh0cmFNZW1vcnlDb3N0KHNpemVfdCBjb3N0KTsKIAotICAgICAgICBzaXplX3Qgb2JqZWN0Q291
bnQoKSBjb25zdDsKLSAgICAgICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcygp
IGNvbnN0OwotICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotCiAgICAgICAgIHZvaWQgcHJv
dGVjdChKU1ZhbHVlKTsKLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBu
byBsb25nZXIgcHJvdGVjdGVkIGJ5IGFueSBwcm90ZWN0IHBvaW50ZXJzCi0gICAgICAgIC8vICh0
aG91Z2ggaXQgbWF5IHN0aWxsIGJlIGFsaXZlIGR1ZSB0byBoZWFwL3N0YWNrIHJlZmVyZW5jZXMp
LgotICAgICAgICBib29sIHVucHJvdGVjdChKU1ZhbHVlKTsKKyAgICAgICAgYm9vbCB1bnByb3Rl
Y3QoSlNWYWx1ZSk7IC8vIFRydWUgd2hlbiB0aGUgcHJvdGVjdCBjb3VudCBkcm9wcyB0byAwLgog
Ci0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFsdWUpOyAvLyAwIGZvciBpbW1lZGlhdGUg
dmFsdWVzCi0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCopOworICAgICAgICBib29s
IGNvbnRhaW5zKHZvaWQqKTsKIAorICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OworICAgICAg
ICBzaXplX3QgY2FwYWNpdHkoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IG9iamVjdENvdW50KCkg
Y29uc3Q7CiAgICAgICAgIHNpemVfdCBnbG9iYWxPYmplY3RDb3VudCgpOwogICAgICAgICBzaXpl
X3QgcHJvdGVjdGVkT2JqZWN0Q291bnQoKTsKICAgICAgICAgc2l6ZV90IHByb3RlY3RlZEdsb2Jh
bE9iamVjdENvdW50KCk7CiAgICAgICAgIEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqPiogcHJv
dGVjdGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgICAgICBIYXNoQ291bnRlZFNldDxjb25zdCBj
aGFyKj4qIG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxN
YXJrZWQoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwo
Y29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwot
ICAgICAgICAKLSAgICAgICAgYm9vbCBjb250YWlucyh2b2lkKik7Ci0KICAgICAgICAgV2Vha0dD
SGFuZGxlKiBhZGRXZWFrR0NIYW5kbGUoSlNDZWxsKik7CiAKICAgICAgICAgdm9pZCBwdXNoVGVt
cFNvcnRWZWN0b3IoV1RGOjpWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpAQCAtOTYsMjEgKzk1
LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRC
dWZmZXIqPiYgbWFya0xpc3RTZXQoKSB7IGlmICghbV9tYXJrTGlzdFNldCkgbV9tYXJrTGlzdFNl
dCA9IG5ldyBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj47IHJldHVybiAqbV9tYXJrTGlz
dFNldDsgfQogCi0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fZ2xvYmFsRGF0YTsgfQotICAgICAgICAKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9y
IHByaW1hcnlIZWFwQmVnaW4oKTsKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlI
ZWFwRW5kKCk7CiAgICAgICAgIAotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXImIG1hY2hpbmVT
dGFja01hcmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFya2VyOyB9Ci0KLSAgICAgICAg
TWFya2VkU3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQotCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAgICAgICAg
SGVhcChKU0dsb2JhbERhdGEqKTsKLSAgICAgICAgfkhlYXAoKTsKIAotICAgICAgICB2b2lkIHJl
Y29yZEV4dHJhQ29zdChzaXplX3QpOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4
dHJhQ29zdCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3Qg
PSAxMDI0ICogMTAyNDsKKworICAgICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dD
YXNlKHNpemVfdCk7CiAKICAgICAgICAgdm9pZCBtYXJrUm9vdHMoKTsKICAgICAgICAgdm9pZCBt
YXJrUHJvdGVjdGVkT2JqZWN0cyhNYXJrU3RhY2smKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICBpbmxpbmUgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3Qo
c2l6ZV90IGNvc3QpCiAgICAgewogICAgICAgICBpZiAoY29zdCA+IG1pbkV4dHJhQ29zdCkgCi0g
ICAgICAgICAgICByZWNvcmRFeHRyYUNvc3QoY29zdCk7CisgICAgICAgICAgICByZXBvcnRFeHRy
YU1lbW9yeUNvc3RTbG93Q2FzZShjb3N0KTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIFdlYWtH
Q0hhbmRsZVBvb2wqIEhlYXA6OndlYWtHQ0hhbmRsZVBvb2woc2l6ZV90IGluZGV4KQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNp
b24gNzY0NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSwyMCArMjk1LDEyIEBAIHNpemVfdCBNYXJrZWRTcGFj
ZTo6b2JqZWN0Q291bnQoKSBjb25zdAogICAgICAgICAgICAtIG1faGVhcC51c2VkQmxvY2tzOyAv
LyAxIGNlbGwgcGVyIGJsb2NrIGlzIGEgZHVtbXkgc2VudGluZWwKIH0KIAotdm9pZCBNYXJrZWRT
cGFjZTo6YWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpIGNvbnN0Ci17Ci0g
ICAgc3RhdGlzdGljcy5zaXplICs9IG1faGVhcC51c2VkQmxvY2tzICogQkxPQ0tfU0laRTsKLSAg
ICBzdGF0aXN0aWNzLmZyZWUgKz0gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFIC0gKG9i
amVjdENvdW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7Ci19Ci0KLU1hcmtlZFNwYWNl
OjpTdGF0aXN0aWNzIE1hcmtlZFNwYWNlOjpzdGF0aXN0aWNzKCkgY29uc3QKK3NpemVfdCBNYXJr
ZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgU3RhdGlzdGljcyBzdGF0aXN0aWNzID0geyAw
LCAwIH07Ci0gICAgYWRkVG9TdGF0aXN0aWNzKHN0YXRpc3RpY3MpOwotICAgIHJldHVybiBzdGF0
aXN0aWNzOworICAgIHJldHVybiBvYmplY3RDb3VudCgpICogSGVhcENvbnN0YW50czo6Y2VsbFNp
emU7CiB9CiAKLXNpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CitzaXplX3QgTWFya2Vk
U3BhY2U6OmNhcGFjaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9oZWFwLnVzZWRCbG9ja3Mg
KiBCTE9DS19TSVpFOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFy
a2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXJrZWRTcGFjZS5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCw2IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIGNsYXNzIE1hcmtlZFNwYWNlIHsKICAgICAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTWFya2VkU3BhY2UpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RydWN0IFN0
YXRpc3RpY3MgewotICAgICAgICAgICAgc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICBzaXplX3Qg
ZnJlZTsKLSAgICAgICAgfTsKLQogICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsK
IAogICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7CkBAIC04
OCw4ICs4Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHN3ZWVwKCk7CiAKICAg
ICAgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IGNhcGFjaXR5KCkgY29u
c3Q7CiAgICAgICAgIHNpemVfdCBvYmplY3RDb3VudCgpIGNvbnN0OwotICAgICAgICBTdGF0aXN0
aWNzIHN0YXRpc3RpY3MoKSBjb25zdDsKIAogICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsK
IApAQCAtMTEzLDggKzEwOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNsZWFy
TWFya0JpdHMoQ29sbGVjdG9yQmxvY2sqKTsKICAgICAgICAgc2l6ZV90IG1hcmtlZENlbGxzKHNp
emVfdCBzdGFydEJsb2NrID0gMCwgc2l6ZV90IHN0YXJ0Q2VsbCA9IDApIGNvbnN0OwogCi0gICAg
ICAgIHZvaWQgYWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmKSBjb25zdDsKLQogICAgICAgICBD
b2xsZWN0b3JIZWFwIG1faGVhcDsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7
CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRp
c3RpY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
MSArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3Mg
aGVhcFN0YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21tb25HbG9iYWxEYXRhKQotewotICAgIHJl
dHVybiBjb21tb25HbG9iYWxEYXRhLT5oZWFwLnN0YXRpc3RpY3MoKTsKLX0gICAgICAgIAotCiBH
bG9iYWxNZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKSAKIHsKICAgICBH
bG9iYWxNZW1vcnlTdGF0aXN0aWNzIHN0YXRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkocmV2aXNpb24gNzY0NTMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3Mgewog
ICAgIHNpemVfdCBKSVRCeXRlczsKIH07CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBT
dGF0aXN0aWNzKEpTR2xvYmFsRGF0YSogY29tbW9uR2xvYmFsRGF0YSk7CiBHbG9iYWxNZW1vcnlT
dGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKTsKIAogfQpJbmRleDogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gNzcwMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNvbWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MzM1NworICAgICAgICAKKyAgICAgICAgVXBkYXRlZCBmb3Ig
SmF2YVNjcmlwdENvcmUgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdD
RXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUp
OgorCiAyMDExLTAxLTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0R0NFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDkgKzQ1LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIFNjcmlwdEdDRXZlbnQ6Omdl
dEhlYXBTaXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBzaXplX3QmIHRvdGFsSGVhcFNpemUpCiB7
CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xv
YmFsRGF0YSgpOwotICAgIHRvdGFsSGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLnNpemUoKTsK
KyAgICB0b3RhbEhlYXBTaXplID0gZ2xvYmFsRGF0YS0+aGVhcC5jYXBhY2l0eSgpOwogICAgIHVz
ZWRIZWFwU2l6ZSA9IHRvdGFsSGVhcFNpemU7CiB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
TWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTE5
NywxNSArMTk3LDE2IEBAICsgKE5TRGljdGlvbmFyeSAqKW1lbW9yeVN0YXRpc3RpY3MKICAgICBX
VEY6OkZhc3RNYWxsb2NTdGF0aXN0aWNzIGZhc3RNYWxsb2NTdGF0aXN0aWNzID0gV1RGOjpmYXN0
TWFsbG9jU3RhdGlzdGljcygpOwogICAgIAogICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7Ci0gICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVhcE1lbW9yeVN0YXRzID0g
aGVhcFN0YXRpc3RpY3MoSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpKTsKKyAgICBz
aXplX3QgaGVhcFNpemUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAu
c2l6ZSgpOworICAgIHNpemVfdCBoZWFwRnJlZSA9IEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2Jh
bERhdGEoKS0+aGVhcC5jYXBhY2l0eSgpIC0gaGVhcFNpemU7CiAgICAgR2xvYmFsTWVtb3J5U3Rh
dGlzdGljcyBnbG9iYWxNZW1vcnlTdGF0cyA9IGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKTsKICAg
ICAKICAgICByZXR1cm4gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVjdHNBbmRLZXlz
OgogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0
aXN0aWNzLnJlc2VydmVkVk1CeXRlc10sIEAiRmFzdE1hbGxvY1Jlc2VydmVkVk1CeXRlcyIsCiAg
ICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6ZmFzdE1hbGxvY1N0YXRpc3Rp
Y3MuY29tbWl0dGVkVk1CeXRlc10sIEAiRmFzdE1hbGxvY0NvbW1pdHRlZFZNQnl0ZXMiLAogICAg
ICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0aXN0aWNz
LmZyZWVMaXN0Qnl0ZXNdLCBAIkZhc3RNYWxsb2NGcmVlTGlzdEJ5dGVzIiwKLSAgICAgICAgICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpoZWFwTWVtb3J5U3RhdHMuc2l6ZV0sIEAiSmF2
YVNjcmlwdEhlYXBTaXplIiwKLSAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDpoZWFwTWVtb3J5U3RhdHMuZnJlZV0sIEAiSmF2YVNjcmlwdEZyZWVTaXplIiwKKyAgICAgICAg
ICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpoZWFwU2l6ZV0sIEAiSmF2YVNjcmlwdEhl
YXBTaXplIiwKKyAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpoZWFwRnJl
ZV0sIEAiSmF2YVNjcmlwdEZyZWVTaXplIiwKICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aFVuc2lnbmVkSW50Oih1bnNpZ25lZCBpbnQpZ2xvYmFsTWVtb3J5U3RhdHMuc3RhY2tC
eXRlc10sIEAiSmF2YVNjcmlwdFN0YWNrU2l6ZSIsCiAgICAgICAgICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhVbnNpZ25lZEludDoodW5zaWduZWQgaW50KWdsb2JhbE1lbW9yeVN0YXRzLkpJ
VEJ5dGVzXSwgQCJKYXZhU2NyaXB0SklUU2l6ZSIsCiAgICAgICAgICAgICBuaWxdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80540</attachid>
            <date>2011-01-28 20:36:13 -0800</date>
            <delta_ts>2011-01-28 21:56:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110128203612.patch</filename>
            <type>text/plain</type>
            <size>16589</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKTogUmVu
YW1lZCByZWNvcmRFeHRyYUNvc3QgdG8gCisgICAgICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNs
b3dDYXNlIHRvIG1hdGNoIG91ciBuYW1pbmcgY29udmVudGlvbnMuCisKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uCisgICAgICAgIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNsdWRp
bmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6CisgICAgICAg
IChKU0M6OkhlYXA6Omdsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrZWRTcGFj
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVTdGFja01hcmtlcik6CisgICAgICAgIChK
U0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IE1vdmVkIHN0YXRpY3MgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZS4KKyAgICAgICAgTW92ZWQgY3RvciBhbmQgZHRvciB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBHcm91cGVkCisgICAgICAgIGZ1bmN0aW9ucyBi
eSBwdXJwb3NlLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZFNwYWNlOjpjYXBhY2l0eSk6IFJlbmFtZWQgc2l6ZSB0byBjYXBhY2l0eSBi
ZWNhdXNlIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FwYWNpdHkgb2YgdGhl
IGhlYXAsIGluY2x1ZGluZyB1bnVzZWQgcG9ydGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL01h
cmtlZFNwYWNlLmg6IFJlbW92ZWQgc3RhdGlzdGljcyBhbmQgdGhlIFN0YXRpc3RpY3MgY2xhc3Mg
YmVjYXVzZQorICAgICAgICB0aGUgc2FtZSBpbmZvcm1hdGlvbiBjYW4gYmUgZ290dGVuIGp1c3Qg
YnkgY2FsbGluZyBzaXplKCkgYW5kIGNhcGFjaXR5KCkuCisKKyAgICAgICAgKiBydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5o
OiBEaXR0by4KKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3Njk2MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3
ICsxNjYsNiBAQCBfX1pOM0pTQzE0U2FtcGxpbmdUaHJlYWQ0c3RvcEV2CiBfX1pOM0pTQzE0U2Ft
cGxpbmdUaHJlYWQ1c3RhcnRFagogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0
RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0RXYKLV9fWk4z
SlNDMTRoZWFwU3RhdGlzdGljc0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0dGhyb3dU
eXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJr
Q2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185
RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xOTcsNyArMTk2LDYgQEAgX19aTjNKU0MxOVNv
dXJjZVByb3ZpZGVyQ2FjaGVEMUV2CiBfX1pOM0pTQzE5aW5pdGlhbGl6ZVRocmVhZGluZ0V2CiBf
X1pOM0pTQzIwTWFya2VkQXJndW1lbnRCdWZmZXIxMHNsb3dBcHBlbmRFTlNfN0pTVmFsdWVFCiBf
X1pOM0pTQzIwY3JlYXRlUmVmZXJlbmNlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKLV9fWk4zSlNDMjJnbG9iYWxNZW1vcnlTdGF0aXN0aWNzRXYKIF9fWk4zSlNDMjNBYnN0cmFj
dFNhbXBsaW5nQ291bnRlcjRkdW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmlu
Z0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNf
OUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMTJQcm9wZXJ0eVNsb3RFCkBAIC0yMTAsNyArMjA4LDYgQEAgX19aTjNKU0MzNWNyZWF0
ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZQogX19aTjNKU0MzTmFORQogX19aTjNKU0M0SGVhcDE0
cHJpbWFyeUhlYXBFbmRFdgogX19aTjNKU0M0SGVhcDE1YWRkV2Vha0dDSGFuZGxlRVBOU182SlND
ZWxsRQotX19aTjNKU0M0SGVhcDE1cmVjb3JkRXh0cmFDb3N0RW0KIF9fWk4zSlNDNEhlYXAxNm9i
amVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE2cHJpbWFyeUhlYXBCZWdpbkV2CiBfX1pO
M0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CkBAIC0yMTksNiArMjE2LDcgQEAgX19aTjNK
U0M0SGVhcDE5c2V0QWN0aXZpdHlDYWxsYmFja0VOM1dURgogX19aTjNKU0M0SGVhcDIwcHJvdGVj
dGVkT2JqZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDI1cHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50
c0V2CiBfX1pOM0pTQzRIZWFwMjZwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEV2CitfX1pOM0pT
QzRIZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFwNmlz
QnVzeUV2CiBfX1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0RU5T
XzdKU1ZhbHVlRQpAQCAtNTE5LDkgKzUxNyw3IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlw
dG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2CiBf
X1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDMjRKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QxMmdsb2JhbE9iamVjdEV2Ci1fX1pOSzNKU0M0SGVhcDEwc3Rh
dGlzdGljc0V2CiBfX1pOSzNKU0M0SGVhcDExb2JqZWN0Q291bnRFdgotX19aTkszSlNDNEhlYXA0
c2l6ZUV2CiBfX1pOSzNKU0M2SlNDZWxsMTF0b1ByaW1pdGl2ZUVQTlNfOUV4ZWNTdGF0ZUVOU18y
MlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBfX1pOSzNKU0M2SlNDZWxsMTJ0b1RoaXNPYmplY3RF
UE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxsMTRpc0dldHRlclNldHRlckV2CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgkocmV2aXNpb24gNzY5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5
KQpAQCAtMjY2LDcgKzI2Niw2IEBAIEVYUE9SVFMKICAgICA/cHV0V2l0aEF0dHJpYnV0ZXNASlNP
YmplY3RASlNDQEBVQUVYUEFWSlNHbG9iYWxEYXRhQDJASVZKU1ZhbHVlQDJASUBaCiAgICAgP3Jh
bmRvbU51bWJlckBXVEZAQFlBTlhaCiAgICAgP3JlY29tcGlsZUFsbEpTRnVuY3Rpb25zQERlYnVn
Z2VyQEpTQ0BAUUFFWFBBVkpTR2xvYmFsRGF0YUAyQEBaCi0gICAgP3JlY29yZEV4dHJhQ29zdEBI
ZWFwQEpTQ0BAQUFFWElAWgogICAgID9yZWlmeVN0cmluZ0BTdHJpbmdCdWlsZGVyQFdURkBAQUFF
WFhaCiAgICAgP3JlbGVhc2VEZWNvbW1pdHRlZEBPU0FsbG9jYXRvckBXVEZAQFNBWFBBWElAWgog
ICAgID9yZWxlYXNlU3RhY2tATWFya1N0YWNrQEpTQ0BAQ0FYUEFYSUBaCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkocmV2aXNpb24gNzY0NTQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyAr
NzksNyBAQCB2b2lkIEhlYXA6OmRlc3Ryb3koKQogICAgIG1fZ2xvYmFsRGF0YSA9IDA7CiB9CiAK
LXZvaWQgSGVhcDo6cmVjb3JkRXh0cmFDb3N0KHNpemVfdCBjb3N0KQordm9pZCBIZWFwOjpyZXBv
cnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZShzaXplX3QgY29zdCkKIHsKICAgICAvLyBPdXIgZnJl
cXVlbmN5IG9mIGdhcmJhZ2UgY29sbGVjdGlvbiB0cmllcyB0byBiYWxhbmNlIG1lbW9yeSB1c2Ug
YWdhaW5zdCBzcGVlZAogICAgIC8vIGJ5IGNvbGxlY3RpbmcgYmFzZWQgb24gdGhlIG51bWJlciBv
ZiBuZXdseSBjcmVhdGVkIHZhbHVlcy4gSG93ZXZlciwgZm9yIHZhbHVlcwpAQCAtOTIsNyArOTIs
NyBAQCB2b2lkIEhlYXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3QgY29zdCkKICAgICAvLyBpZiBh
IGxhcmdlIHZhbHVlIHN1cnZpdmVzIG9uZSBnYXJiYWdlIGNvbGxlY3Rpb24sIHRoZXJlIGlzIG5v
dCBtdWNoIHBvaW50IHRvCiAgICAgLy8gY29sbGVjdGluZyBtb3JlIGZyZXF1ZW50bHkgYXMgbG9u
ZyBhcyBpdCBzdGF5cyBhbGl2ZS4KIAotICAgIGlmIChtX2V4dHJhQ29zdCA+IG1heEV4dHJhQ29z
dCAmJiBtX2V4dHJhQ29zdCA+IG1fbWFya2VkU3BhY2Uuc2l6ZSgpIC8gMikgeworICAgIGlmICht
X2V4dHJhQ29zdCA+IG1heEV4dHJhQ29zdCAmJiBtX2V4dHJhQ29zdCA+IG1fbWFya2VkU3BhY2Uu
Y2FwYWNpdHkoKSAvIDIpIHsKICAgICAgICAgSkFWQVNDUklQVENPUkVfR0NfQkVHSU4oKTsKIAog
ICAgICAgICBtYXJrUm9vdHMoKTsKQEAgLTMwMiwxNCArMzAyLDE0IEBAIHNpemVfdCBIZWFwOjpv
YmplY3RDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWFya2VkU3BhY2Uub2JqZWN0Q291bnQo
KTsKIH0KIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgSGVhcDo6c3RhdGlzdGljcygpIGNvbnN0
CitzaXplX3QgSGVhcDo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWFya2VkU3BhY2Uu
c3RhdGlzdGljcygpOworICAgIHJldHVybiBtX21hcmtlZFNwYWNlLnNpemUoKTsKIH0KIAotc2l6
ZV90IEhlYXA6OnNpemUoKSBjb25zdAorc2l6ZV90IEhlYXA6OmNhcGFjaXR5KCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplKCk7CisgICAgcmV0dXJuIG1fbWFya2VkU3Bh
Y2UuY2FwYWNpdHkoKTsKIH0KIAogc2l6ZV90IEhlYXA6Omdsb2JhbE9iamVjdENvdW50KCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgJKHJldmlzaW9uIDc2NDUzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw0NSArNTAsNDQgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSGVhcCB7CiAgICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEhlYXApOwogICAgIHB1YmxpYzoKLSAgICAgICAgdm9pZCBk
ZXN0cm95KCk7CisgICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFsdWUpOyAvLyAwIGZvciBp
bW1lZGlhdGUgdmFsdWVzCisgICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCopOwogCi0g
ICAgICAgIHZvaWQqIGFsbG9jYXRlKHNpemVfdCk7CisgICAgICAgIHN0YXRpYyBib29sIGlzQ2Vs
bE1hcmtlZChjb25zdCBKU0NlbGwqKTsKKyAgICAgICAgc3RhdGljIGJvb2wgY2hlY2tNYXJrQ2Vs
bChjb25zdCBKU0NlbGwqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgbWFya0NlbGwoSlNDZWxsKik7
CisgICAgICAgIAorICAgICAgICBIZWFwKEpTR2xvYmFsRGF0YSopOworICAgICAgICB+SGVhcCgp
OworICAgICAgICB2b2lkIGRlc3Ryb3koKTsgLy8gSlNHbG9iYWxEYXRhIG11c3QgY2FsbCBkZXN0
cm95KCkgYmVmb3JlIH5IZWFwKCkuCiAKLSAgICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1ZSBp
ZiBhbiBhbGxvY2F0aW9uIG9yIGNvbGxlY3Rpb24gaXMgaW4gcHJvZ3Jlc3MKLSAgICAgICAgdm9p
ZCBjb2xsZWN0QWxsR2FyYmFnZSgpOworICAgICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEo
KSBjb25zdCB7IHJldHVybiBtX2dsb2JhbERhdGE7IH0KKyAgICAgICAgTWFya2VkU3BhY2UmIG1h
cmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQorICAgICAgICBNYWNoaW5lU3Rh
Y2tNYXJrZXImIG1hY2hpbmVTdGFja01hcmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFy
a2VyOyB9CiAKICAgICAgICAgR0NBY3Rpdml0eUNhbGxiYWNrKiBhY3Rpdml0eUNhbGxiYWNrKCk7
CiAgICAgICAgIHZvaWQgc2V0QWN0aXZpdHlDYWxsYmFjayhQYXNzT3duUHRyPEdDQWN0aXZpdHlD
YWxsYmFjaz4pOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWluRXh0cmFDb3N0ID0g
MjU2OwotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEV4dHJhQ29zdCA9IDEwMjQgKiAx
MDI0OworICAgICAgICBib29sIGlzQnVzeSgpOyAvLyB0cnVlIGlmIGFuIGFsbG9jYXRpb24gb3Ig
Y29sbGVjdGlvbiBpcyBpbiBwcm9ncmVzcworICAgICAgICB2b2lkKiBhbGxvY2F0ZShzaXplX3Qp
OworICAgICAgICB2b2lkIGNvbGxlY3RBbGxHYXJiYWdlKCk7CiAKICAgICAgICAgdm9pZCByZXBv
cnRFeHRyYU1lbW9yeUNvc3Qoc2l6ZV90IGNvc3QpOwogCi0gICAgICAgIHNpemVfdCBvYmplY3RD
b3VudCgpIGNvbnN0OwotICAgICAgICBNYXJrZWRTcGFjZTo6U3RhdGlzdGljcyBzdGF0aXN0aWNz
KCkgY29uc3Q7Ci0gICAgICAgIHNpemVfdCBzaXplKCkgY29uc3Q7Ci0KICAgICAgICAgdm9pZCBw
cm90ZWN0KEpTVmFsdWUpOwotICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIGlz
IG5vIGxvbmdlciBwcm90ZWN0ZWQgYnkgYW55IHByb3RlY3QgcG9pbnRlcnMKLSAgICAgICAgLy8g
KHRob3VnaCBpdCBtYXkgc3RpbGwgYmUgYWxpdmUgZHVlIHRvIGhlYXAvc3RhY2sgcmVmZXJlbmNl
cykuCi0gICAgICAgIGJvb2wgdW5wcm90ZWN0KEpTVmFsdWUpOworICAgICAgICBib29sIHVucHJv
dGVjdChKU1ZhbHVlKTsgLy8gVHJ1ZSB3aGVuIHRoZSBwcm90ZWN0IGNvdW50IGRyb3BzIHRvIDAu
CiAKLSAgICAgICAgc3RhdGljIEhlYXAqIGhlYXAoSlNWYWx1ZSk7IC8vIDAgZm9yIGltbWVkaWF0
ZSB2YWx1ZXMKLSAgICAgICAgc3RhdGljIEhlYXAqIGhlYXAoSlNDZWxsKik7CisgICAgICAgIGJv
b2wgY29udGFpbnModm9pZCopOwogCisgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3Q7CisgICAg
ICAgIHNpemVfdCBjYXBhY2l0eSgpIGNvbnN0OworICAgICAgICBzaXplX3Qgb2JqZWN0Q291bnQo
KSBjb25zdDsKICAgICAgICAgc2l6ZV90IGdsb2JhbE9iamVjdENvdW50KCk7CiAgICAgICAgIHNp
emVfdCBwcm90ZWN0ZWRPYmplY3RDb3VudCgpOwogICAgICAgICBzaXplX3QgcHJvdGVjdGVkR2xv
YmFsT2JqZWN0Q291bnQoKTsKICAgICAgICAgSGFzaENvdW50ZWRTZXQ8Y29uc3QgY2hhcio+KiBw
cm90ZWN0ZWRPYmplY3RUeXBlQ291bnRzKCk7CiAgICAgICAgIEhhc2hDb3VudGVkU2V0PGNvbnN0
IGNoYXIqPiogb2JqZWN0VHlwZUNvdW50cygpOwogCi0gICAgICAgIHN0YXRpYyBib29sIGlzQ2Vs
bE1hcmtlZChjb25zdCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIGJvb2wgY2hlY2tNYXJrQ2Vs
bChjb25zdCBKU0NlbGwqKTsKLSAgICAgICAgc3RhdGljIHZvaWQgbWFya0NlbGwoSlNDZWxsKik7
Ci0gICAgICAgIAotICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKLQogICAgICAgICBXZWFr
R0NIYW5kbGUqIGFkZFdlYWtHQ0hhbmRsZShKU0NlbGwqKTsKIAogICAgICAgICB2b2lkIHB1c2hU
ZW1wU29ydFZlY3RvcihXVEY6OlZlY3RvcjxWYWx1ZVN0cmluZ1BhaXI+Kik7CkBAIC05NiwyMSAr
OTUsMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSGFzaFNldDxNYXJrZWRBcmd1bWVu
dEJ1ZmZlcio+JiBtYXJrTGlzdFNldCgpIHsgaWYgKCFtX21hcmtMaXN0U2V0KSBtX21hcmtMaXN0
U2V0ID0gbmV3IEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPjsgcmV0dXJuICptX21hcmtM
aXN0U2V0OyB9CiAKLSAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9nbG9iYWxEYXRhOyB9Ci0gICAgICAgIAogICAgICAgICBMaXZlT2JqZWN0SXRlcmF0
b3IgcHJpbWFyeUhlYXBCZWdpbigpOwogICAgICAgICBMaXZlT2JqZWN0SXRlcmF0b3IgcHJpbWFy
eUhlYXBFbmQoKTsKICAgICAgICAgCi0gICAgICAgIE1hY2hpbmVTdGFja01hcmtlciYgbWFjaGlu
ZVN0YWNrTWFya2VyKCkgeyByZXR1cm4gbV9tYWNoaW5lU3RhY2tNYXJrZXI7IH0KLQotICAgICAg
ICBNYXJrZWRTcGFjZSYgbWFya2VkU3BhY2UoKSB7IHJldHVybiBtX21hcmtlZFNwYWNlOyB9Ci0K
ICAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xhc3MgSlNHbG9iYWxEYXRhOwotICAgICAg
ICBIZWFwKEpTR2xvYmFsRGF0YSopOwotICAgICAgICB+SGVhcCgpOwogCi0gICAgICAgIHZvaWQg
cmVjb3JkRXh0cmFDb3N0KHNpemVfdCk7CisgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWlu
RXh0cmFDb3N0ID0gMjU2OworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heEV4dHJhQ29z
dCA9IDEwMjQgKiAxMDI0OworCisgICAgICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1vcnlDb3N0U2xv
d0Nhc2Uoc2l6ZV90KTsKIAogICAgICAgICB2b2lkIG1hcmtSb290cygpOwogICAgICAgICB2b2lk
IG1hcmtQcm90ZWN0ZWRPYmplY3RzKE1hcmtTdGFjayYpOwpAQCAtMTYzLDcgKzE1Nyw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIGlubGluZSB2b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29z
dChzaXplX3QgY29zdCkKICAgICB7CiAgICAgICAgIGlmIChjb3N0ID4gbWluRXh0cmFDb3N0KSAK
LSAgICAgICAgICAgIHJlY29yZEV4dHJhQ29zdChjb3N0KTsKKyAgICAgICAgICAgIHJlcG9ydEV4
dHJhTWVtb3J5Q29zdFNsb3dDYXNlKGNvc3QpOwogICAgIH0KICAgICAKICAgICBpbmxpbmUgV2Vh
a0dDSGFuZGxlUG9vbCogSGVhcDo6d2Vha0dDSGFuZGxlUG9vbChzaXplX3QgaW5kZXgpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCShyZXZp
c2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDIwICsyOTUsMTIgQEAgc2l6ZV90IE1hcmtlZFNw
YWNlOjpvYmplY3RDb3VudCgpIGNvbnN0CiAgICAgICAgICAgIC0gbV9oZWFwLnVzZWRCbG9ja3M7
IC8vIDEgY2VsbCBwZXIgYmxvY2sgaXMgYSBkdW1teSBzZW50aW5lbAogfQogCi12b2lkIE1hcmtl
ZFNwYWNlOjphZGRUb1N0YXRpc3RpY3MoU3RhdGlzdGljcyYgc3RhdGlzdGljcykgY29uc3QKLXsK
LSAgICBzdGF0aXN0aWNzLnNpemUgKz0gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFOwot
ICAgIHN0YXRpc3RpY3MuZnJlZSArPSBtX2hlYXAudXNlZEJsb2NrcyAqIEJMT0NLX1NJWkUgLSAo
b2JqZWN0Q291bnQoKSAqIEhlYXBDb25zdGFudHM6OmNlbGxTaXplKTsKLX0KLQotTWFya2VkU3Bh
Y2U6OlN0YXRpc3RpY3MgTWFya2VkU3BhY2U6OnN0YXRpc3RpY3MoKSBjb25zdAorc2l6ZV90IE1h
cmtlZFNwYWNlOjpzaXplKCkgY29uc3QKIHsKLSAgICBTdGF0aXN0aWNzIHN0YXRpc3RpY3MgPSB7
IDAsIDAgfTsKLSAgICBhZGRUb1N0YXRpc3RpY3Moc3RhdGlzdGljcyk7Ci0gICAgcmV0dXJuIHN0
YXRpc3RpY3M7CisgICAgcmV0dXJuIG9iamVjdENvdW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxs
U2l6ZTsKIH0KIAotc2l6ZV90IE1hcmtlZFNwYWNlOjpzaXplKCkgY29uc3QKK3NpemVfdCBNYXJr
ZWRTcGFjZTo6Y2FwYWNpdHkoKSBjb25zdAogewogICAgIHJldHVybiBtX2hlYXAudXNlZEJsb2Nr
cyAqIEJMT0NLX1NJWkU7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXJrZWRTcGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcmtlZFNwYWNlLmgJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTWFya2VkU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTEgKzY0LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgTWFya2VkU3BhY2UgewogICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShNYXJrZWRTcGFjZSk7CiAgICAgcHVibGljOgotICAgICAgICBzdHJ1Y3Qg
U3RhdGlzdGljcyB7Ci0gICAgICAgICAgICBzaXplX3Qgc2l6ZTsKLSAgICAgICAgICAgIHNpemVf
dCBmcmVlOwotICAgICAgICB9OwotCiAgICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCop
OwogCiAgICAgICAgIHN0YXRpYyBib29sIGlzQ2VsbE1hcmtlZChjb25zdCBKU0NlbGwqKTsKQEAg
LTg4LDggKzgzLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgc3dlZXAoKTsKIAog
ICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OworICAgICAgICBzaXplX3QgY2FwYWNpdHkoKSBj
b25zdDsKICAgICAgICAgc2l6ZV90IG9iamVjdENvdW50KCkgY29uc3Q7Ci0gICAgICAgIFN0YXRp
c3RpY3Mgc3RhdGlzdGljcygpIGNvbnN0OwogCiAgICAgICAgIGJvb2wgY29udGFpbnModm9pZCop
OwogCkBAIC0xMTMsOCArMTA4LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY2xl
YXJNYXJrQml0cyhDb2xsZWN0b3JCbG9jayopOwogICAgICAgICBzaXplX3QgbWFya2VkQ2VsbHMo
c2l6ZV90IHN0YXJ0QmxvY2sgPSAwLCBzaXplX3Qgc3RhcnRDZWxsID0gMCkgY29uc3Q7CiAKLSAg
ICAgICAgdm9pZCBhZGRUb1N0YXRpc3RpY3MoU3RhdGlzdGljcyYpIGNvbnN0OwotCiAgICAgICAg
IENvbGxlY3RvckhlYXAgbV9oZWFwOwogICAgICAgICBKU0dsb2JhbERhdGEqIG1fZ2xvYmFsRGF0
YTsKICAgICB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWVtb3J5U3Rh
dGlzdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
TWVtb3J5U3RhdGlzdGljcy5jcHAJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDExICszMiw2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1NYXJrZWRTcGFjZTo6U3RhdGlzdGlj
cyBoZWFwU3RhdGlzdGljcyhKU0dsb2JhbERhdGEqIGNvbW1vbkdsb2JhbERhdGEpCi17Ci0gICAg
cmV0dXJuIGNvbW1vbkdsb2JhbERhdGEtPmhlYXAuc3RhdGlzdGljcygpOwotfSAgICAgICAgCi0K
IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgZ2xvYmFsTWVtb3J5U3RhdGlzdGljcygpIAogewogICAg
IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3Mgc3RhdHM7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCShyZXZpc2lvbiA3NjQ1MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQCBzdHJ1Y3QgR2xvYmFsTWVtb3J5U3RhdGlzdGljcyB7
CiAgICAgc2l6ZV90IEpJVEJ5dGVzOwogfTsKIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVh
cFN0YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21tb25HbG9iYWxEYXRhKTsKIEdsb2JhbE1lbW9y
eVN0YXRpc3RpY3MgZ2xvYmFsTWVtb3J5U3RhdGlzdGljcygpOwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3NzAzOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAxLTI4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU29tZSBtb3JlIEhlYXAgY2xlYW51cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMzU3CisgICAgICAgIAorICAgICAgICBVcGRhdGVkIGZv
ciBKYXZhU2NyaXB0Q29yZSBjaGFuZ2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0
R0NFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRHQ0V2ZW50OjpnZXRIZWFwU2l6
ZSk6CisKIDIwMTEtMDEtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDUsOSArNDUsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHZvaWQgU2NyaXB0R0NFdmVudDo6
Z2V0SGVhcFNpemUoc2l6ZV90JiB1c2VkSGVhcFNpemUsIHNpemVfdCYgdG90YWxIZWFwU2l6ZSkK
IHsKICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNH
bG9iYWxEYXRhKCk7Ci0gICAgdG90YWxIZWFwU2l6ZSA9IGdsb2JhbERhdGEtPmhlYXAuc2l6ZSgp
OworICAgIHRvdGFsSGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLmNhcGFjaXR5KCk7CiAgICAg
dXNlZEhlYXBTaXplID0gdG90YWxIZWFwU2l6ZTsKIH0KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gIUVOQUJMRShJTlNQRUNUT1IpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3NzA0MikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTAxLTI4ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJl
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU29tZSBtb3JlIEhlYXAgY2xlYW51cC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMzU3CisKKyAgICAgICAg
VXBkYXRlZCBmb3IgSmF2YVNjcmlwdENvcmUgY2hhbmdlcy4KKworICAgICAgICAqIE1pc2MvV2Vi
Q29yZVN0YXRpc3RpY3MubW06CisgICAgICAgICgrW1dlYkNvcmVTdGF0aXN0aWNzIG1lbW9yeVN0
YXRpc3RpY3NdKToKKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCShyZXZpc2lvbiA3NjQ1MykKKysr
IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE5NywxNSArMTk3LDE2IEBAICsgKE5TRGljdGlvbmFyeSAqKW1lbW9yeVN0YXRpc3Rp
Y3MKICAgICBXVEY6OkZhc3RNYWxsb2NTdGF0aXN0aWNzIGZhc3RNYWxsb2NTdGF0aXN0aWNzID0g
V1RGOjpmYXN0TWFsbG9jU3RhdGlzdGljcygpOwogICAgIAogICAgIEpTTG9jayBsb2NrKFNpbGVu
Y2VBc3NlcnRpb25zT25seSk7Ci0gICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVhcE1lbW9y
eVN0YXRzID0gaGVhcFN0YXRpc3RpY3MoSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgp
KTsKKyAgICBzaXplX3QgaGVhcFNpemUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRh
KCktPmhlYXAuc2l6ZSgpOworICAgIHNpemVfdCBoZWFwRnJlZSA9IEpTRE9NV2luZG93Ojpjb21t
b25KU0dsb2JhbERhdGEoKS0+aGVhcC5jYXBhY2l0eSgpIC0gaGVhcFNpemU7CiAgICAgR2xvYmFs
TWVtb3J5U3RhdGlzdGljcyBnbG9iYWxNZW1vcnlTdGF0cyA9IGdsb2JhbE1lbW9yeVN0YXRpc3Rp
Y3MoKTsKICAgICAKICAgICByZXR1cm4gW05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dHNBbmRLZXlzOgogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RN
YWxsb2NTdGF0aXN0aWNzLnJlc2VydmVkVk1CeXRlc10sIEAiRmFzdE1hbGxvY1Jlc2VydmVkVk1C
eXRlcyIsCiAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6ZmFzdE1hbGxv
Y1N0YXRpc3RpY3MuY29tbWl0dGVkVk1CeXRlc10sIEAiRmFzdE1hbGxvY0NvbW1pdHRlZFZNQnl0
ZXMiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NT
dGF0aXN0aWNzLmZyZWVMaXN0Qnl0ZXNdLCBAIkZhc3RNYWxsb2NGcmVlTGlzdEJ5dGVzIiwKLSAg
ICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpoZWFwTWVtb3J5U3RhdHMuc2l6
ZV0sIEAiSmF2YVNjcmlwdEhlYXBTaXplIiwKLSAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEludDpoZWFwTWVtb3J5U3RhdHMuZnJlZV0sIEAiSmF2YVNjcmlwdEZyZWVTaXplIiwK
KyAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpoZWFwU2l6ZV0sIEAiSmF2
YVNjcmlwdEhlYXBTaXplIiwKKyAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDpoZWFwRnJlZV0sIEAiSmF2YVNjcmlwdEZyZWVTaXplIiwKICAgICAgICAgICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50Oih1bnNpZ25lZCBpbnQpZ2xvYmFsTWVtb3J5U3Rh
dHMuc3RhY2tCeXRlc10sIEAiSmF2YVNjcmlwdFN0YWNrU2l6ZSIsCiAgICAgICAgICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDoodW5zaWduZWQgaW50KWdsb2JhbE1lbW9y
eVN0YXRzLkpJVEJ5dGVzXSwgQCJKYXZhU2NyaXB0SklUU2l6ZSIsCiAgICAgICAgICAgICBuaWxd
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80545</attachid>
            <date>2011-01-28 21:56:30 -0800</date>
            <delta_ts>2011-01-29 08:06:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110128215628.patch</filename>
            <type>text/plain</type>
            <size>17238</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKTogUmVu
YW1lZCByZWNvcmRFeHRyYUNvc3QgdG8gCisgICAgICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNs
b3dDYXNlIHRvIG1hdGNoIG91ciBuYW1pbmcgY29udmVudGlvbnMuCisKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uCisgICAgICAgIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNsdWRp
bmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6CisgICAgICAg
IChKU0M6OkhlYXA6Omdsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrZWRTcGFj
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVTdGFja01hcmtlcik6CisgICAgICAgIChK
U0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IE1vdmVkIHN0YXRpY3MgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZS4KKyAgICAgICAgTW92ZWQgY3RvciBhbmQgZHRvciB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBHcm91cGVkCisgICAgICAgIGZ1bmN0aW9ucyBi
eSBwdXJwb3NlLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZFNwYWNlOjpjYXBhY2l0eSk6IFJlbmFtZWQgc2l6ZSB0byBjYXBhY2l0eSBi
ZWNhdXNlIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FwYWNpdHkgb2YgdGhl
IGhlYXAsIGluY2x1ZGluZyB1bnVzZWQgcG9ydGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL01h
cmtlZFNwYWNlLmg6IFJlbW92ZWQgc3RhdGlzdGljcyBhbmQgdGhlIFN0YXRpc3RpY3MgY2xhc3Mg
YmVjYXVzZQorICAgICAgICB0aGUgc2FtZSBpbmZvcm1hdGlvbiBjYW4gYmUgZ290dGVuIGp1c3Qg
YnkgY2FsbGluZyBzaXplKCkgYW5kIGNhcGFjaXR5KCkuCisKKyAgICAgICAgKiBydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5o
OiBEaXR0by4KKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3Njk2MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3
ICsxNjYsNiBAQCBfX1pOM0pTQzE0U2FtcGxpbmdUaHJlYWQ0c3RvcEV2CiBfX1pOM0pTQzE0U2Ft
cGxpbmdUaHJlYWQ1c3RhcnRFagogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0
RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0RXYKLV9fWk4z
SlNDMTRoZWFwU3RhdGlzdGljc0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0dGhyb3dU
eXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJr
Q2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185
RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xOTcsNyArMTk2LDYgQEAgX19aTjNKU0MxOVNv
dXJjZVByb3ZpZGVyQ2FjaGVEMUV2CiBfX1pOM0pTQzE5aW5pdGlhbGl6ZVRocmVhZGluZ0V2CiBf
X1pOM0pTQzIwTWFya2VkQXJndW1lbnRCdWZmZXIxMHNsb3dBcHBlbmRFTlNfN0pTVmFsdWVFCiBf
X1pOM0pTQzIwY3JlYXRlUmVmZXJlbmNlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKLV9fWk4zSlNDMjJnbG9iYWxNZW1vcnlTdGF0aXN0aWNzRXYKIF9fWk4zSlNDMjNBYnN0cmFj
dFNhbXBsaW5nQ291bnRlcjRkdW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmlu
Z0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNf
OUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMTJQcm9wZXJ0eVNsb3RFCkBAIC0yMTAsNyArMjA4LDYgQEAgX19aTjNKU0MzNWNyZWF0
ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZQogX19aTjNKU0MzTmFORQogX19aTjNKU0M0SGVhcDE0
cHJpbWFyeUhlYXBFbmRFdgogX19aTjNKU0M0SGVhcDE1YWRkV2Vha0dDSGFuZGxlRVBOU182SlND
ZWxsRQotX19aTjNKU0M0SGVhcDE1cmVjb3JkRXh0cmFDb3N0RW0KIF9fWk4zSlNDNEhlYXAxNm9i
amVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE2cHJpbWFyeUhlYXBCZWdpbkV2CiBfX1pO
M0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CkBAIC0yMTksNiArMjE2LDcgQEAgX19aTjNK
U0M0SGVhcDE5c2V0QWN0aXZpdHlDYWxsYmFja0VOM1dURgogX19aTjNKU0M0SGVhcDIwcHJvdGVj
dGVkT2JqZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDI1cHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50
c0V2CiBfX1pOM0pTQzRIZWFwMjZwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEV2CitfX1pOM0pT
QzRIZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFwNmlz
QnVzeUV2CiBfX1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0RU5T
XzdKU1ZhbHVlRQpAQCAtNTE5LDkgKzUxNyw3IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlw
dG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2CiBf
X1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDMjRKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QxMmdsb2JhbE9iamVjdEV2Ci1fX1pOSzNKU0M0SGVhcDEwc3Rh
dGlzdGljc0V2CiBfX1pOSzNKU0M0SGVhcDExb2JqZWN0Q291bnRFdgotX19aTkszSlNDNEhlYXA0
c2l6ZUV2CiBfX1pOSzNKU0M2SlNDZWxsMTF0b1ByaW1pdGl2ZUVQTlNfOUV4ZWNTdGF0ZUVOU18y
MlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBfX1pOSzNKU0M2SlNDZWxsMTJ0b1RoaXNPYmplY3RF
UE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlNDZWxsMTRpc0dldHRlclNldHRlckV2CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
ZgkocmV2aXNpb24gNzY5NjIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5
KQpAQCAtNjksNiArNjksNyBAQCBFWFBPUlRTCiAgICAgP2NhbGxPbk1haW5UaHJlYWRAV1RGQEBZ
QVhQNkFYUEFYQFowQFoKICAgICA/Y2FsbE9uTWFpblRocmVhZEFuZFdhaXRAV1RGQEBZQVhQNkFY
UEFYQFowQFoKICAgICA/Y2FuY2VsQ2FsbE9uTWFpblRocmVhZEBXVEZAQFlBWFA2QVhQQVhAWjBA
WgorICAgID9jYXBhY2l0eUBIZWFwQEpTQ0BAUUJFSVhaCiAgICAgP2NoYW5nZVByb3RvdHlwZVRy
YW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0E/QVY/JFBhc3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NA
QEBXVEZAQFBBVjEyQFZKU1ZhbHVlQDJAQFoKICAgICA/Y2hlY2tDdXJyZW50SWRlbnRpZmllclRh
YmxlQElkZW50aWZpZXJASlNDQEBDQVhQQVZFeGVjU3RhdGVAMkBAWgogICAgID9jaGVja0N1cnJl
bnRJZGVudGlmaWVyVGFibGVASWRlbnRpZmllckBKU0NAQENBWFBBVkpTR2xvYmFsRGF0YUAyQEBa
CkBAIC0yNjYsMTAgKzI2NywxMCBAQCBFWFBPUlRTCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpT
T2JqZWN0QEpTQ0BAVUFFWFBBVkpTR2xvYmFsRGF0YUAyQElWSlNWYWx1ZUAyQElAWgogICAgID9y
YW5kb21OdW1iZXJAV1RGQEBZQU5YWgogICAgID9yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc0BEZWJ1
Z2dlckBKU0NAQFFBRVhQQVZKU0dsb2JhbERhdGFAMkBAWgotICAgID9yZWNvcmRFeHRyYUNvc3RA
SGVhcEBKU0NAQEFBRVhJQFoKICAgICA/cmVpZnlTdHJpbmdAU3RyaW5nQnVpbGRlckBXVEZAQEFB
RVhYWgogICAgID9yZWxlYXNlRGVjb21taXR0ZWRAT1NBbGxvY2F0b3JAV1RGQEBTQVhQQVhJQFoK
ICAgICA/cmVsZWFzZVN0YWNrQE1hcmtTdGFja0BKU0NAQENBWFBBWElAWgorICAgID9yZXBvcnRF
eHRyYU1lbW9yeUNvc3RTbG93Q2FzZUBIZWFwQEpTQ0BAQUFFWElAWgogICAgID9yZXNlcnZlQW5k
Q29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQQVhJVzRVc2FnZUAxMkBfTjFAWgogICAgID9yZXNl
dEBQYXJzZXJBcmVuYUBKU0NAQFFBRVhYWgogICAgID9yZXNldEBUaW1lb3V0Q2hlY2tlckBKU0NA
QFFBRVhYWgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlz
aW9uIDc2NDU0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBIZWFwOjpkZXN0cm95KCkKICAgICBt
X2dsb2JhbERhdGEgPSAwOwogfQogCi12b2lkIEhlYXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3Qg
Y29zdCkKK3ZvaWQgSGVhcDo6cmVwb3J0RXh0cmFNZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90IGNv
c3QpCiB7CiAgICAgLy8gT3VyIGZyZXF1ZW5jeSBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gdHJpZXMg
dG8gYmFsYW5jZSBtZW1vcnkgdXNlIGFnYWluc3Qgc3BlZWQKICAgICAvLyBieSBjb2xsZWN0aW5n
IGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgbmV3bHkgY3JlYXRlZCB2YWx1ZXMuIEhvd2V2ZXIsIGZv
ciB2YWx1ZXMKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBIZWFwOjpyZWNvcmRFeHRyYUNvc3Qoc2l6
ZV90IGNvc3QpCiAgICAgLy8gaWYgYSBsYXJnZSB2YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBj
b2xsZWN0aW9uLCB0aGVyZSBpcyBub3QgbXVjaCBwb2ludCB0bwogICAgIC8vIGNvbGxlY3Rpbmcg
bW9yZSBmcmVxdWVudGx5IGFzIGxvbmcgYXMgaXQgc3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9l
eHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLnNp
emUoKSAvIDIpIHsKKyAgICBpZiAobV9leHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRy
YUNvc3QgPiBtX21hcmtlZFNwYWNlLmNhcGFjaXR5KCkgLyAyKSB7CiAgICAgICAgIEpBVkFTQ1JJ
UFRDT1JFX0dDX0JFR0lOKCk7CiAKICAgICAgICAgbWFya1Jvb3RzKCk7CkBAIC0zMDIsMTQgKzMw
MiwxNCBAQCBzaXplX3QgSGVhcDo6b2JqZWN0Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX21h
cmtlZFNwYWNlLm9iamVjdENvdW50KCk7CiB9CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIEhl
YXA6OnN0YXRpc3RpY3MoKSBjb25zdAorc2l6ZV90IEhlYXA6OnNpemUoKSBjb25zdAogewotICAg
IHJldHVybiBtX21hcmtlZFNwYWNlLnN0YXRpc3RpY3MoKTsKKyAgICByZXR1cm4gbV9tYXJrZWRT
cGFjZS5zaXplKCk7CiB9CiAKLXNpemVfdCBIZWFwOjpzaXplKCkgY29uc3QKK3NpemVfdCBIZWFw
OjpjYXBhY2l0eSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbWFya2VkU3BhY2Uuc2l6ZSgpOwor
ICAgIHJldHVybiBtX21hcmtlZFNwYWNlLmNhcGFjaXR5KCk7CiB9CiAKIHNpemVfdCBIZWFwOjpn
bG9iYWxPYmplY3RDb3VudCgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9I
ZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5o
CShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAu
aAkod29ya2luZyBjb3B5KQpAQCAtNTAsNDUgKzUwLDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
IGNsYXNzIEhlYXAgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShIZWFwKTsKICAgICBw
dWJsaWM6Ci0gICAgICAgIHZvaWQgZGVzdHJveSgpOworICAgICAgICBzdGF0aWMgSGVhcCogaGVh
cChKU1ZhbHVlKTsgLy8gMCBmb3IgaW1tZWRpYXRlIHZhbHVlcworICAgICAgICBzdGF0aWMgSGVh
cCogaGVhcChKU0NlbGwqKTsKIAotICAgICAgICB2b2lkKiBhbGxvY2F0ZShzaXplX3QpOworICAg
ICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0
YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyB2
b2lkIG1hcmtDZWxsKEpTQ2VsbCopOworICAgICAgICAKKyAgICAgICAgSGVhcChKU0dsb2JhbERh
dGEqKTsKKyAgICAgICAgfkhlYXAoKTsKKyAgICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIEpTR2xv
YmFsRGF0YSBtdXN0IGNhbGwgZGVzdHJveSgpIGJlZm9yZSB+SGVhcCgpLgogCi0gICAgICAgIGJv
b2wgaXNCdXN5KCk7IC8vIHRydWUgaWYgYW4gYWxsb2NhdGlvbiBvciBjb2xsZWN0aW9uIGlzIGlu
IHByb2dyZXNzCi0gICAgICAgIHZvaWQgY29sbGVjdEFsbEdhcmJhZ2UoKTsKKyAgICAgICAgSlNH
bG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9nbG9iYWxEYXRhOyB9Cisg
ICAgICAgIE1hcmtlZFNwYWNlJiBtYXJrZWRTcGFjZSgpIHsgcmV0dXJuIG1fbWFya2VkU3BhY2U7
IH0KKyAgICAgICAgTWFjaGluZVN0YWNrTWFya2VyJiBtYWNoaW5lU3RhY2tNYXJrZXIoKSB7IHJl
dHVybiBtX21hY2hpbmVTdGFja01hcmtlcjsgfQogCiAgICAgICAgIEdDQWN0aXZpdHlDYWxsYmFj
ayogYWN0aXZpdHlDYWxsYmFjaygpOwogICAgICAgICB2b2lkIHNldEFjdGl2aXR5Q2FsbGJhY2so
UGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+KTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qg
c2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1NjsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBt
YXhFeHRyYUNvc3QgPSAxMDI0ICogMTAyNDsKKyAgICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1
ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNvbGxlY3Rpb24gaXMgaW4gcHJvZ3Jlc3MKKyAgICAgICAg
dm9pZCogYWxsb2NhdGUoc2l6ZV90KTsKKyAgICAgICAgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgp
OwogCiAgICAgICAgIHZvaWQgcmVwb3J0RXh0cmFNZW1vcnlDb3N0KHNpemVfdCBjb3N0KTsKIAot
ICAgICAgICBzaXplX3Qgb2JqZWN0Q291bnQoKSBjb25zdDsKLSAgICAgICAgTWFya2VkU3BhY2U6
OlN0YXRpc3RpY3Mgc3RhdGlzdGljcygpIGNvbnN0OwotICAgICAgICBzaXplX3Qgc2l6ZSgpIGNv
bnN0OwotCiAgICAgICAgIHZvaWQgcHJvdGVjdChKU1ZhbHVlKTsKLSAgICAgICAgLy8gUmV0dXJu
cyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBubyBsb25nZXIgcHJvdGVjdGVkIGJ5IGFueSBwcm90ZWN0
IHBvaW50ZXJzCi0gICAgICAgIC8vICh0aG91Z2ggaXQgbWF5IHN0aWxsIGJlIGFsaXZlIGR1ZSB0
byBoZWFwL3N0YWNrIHJlZmVyZW5jZXMpLgotICAgICAgICBib29sIHVucHJvdGVjdChKU1ZhbHVl
KTsKKyAgICAgICAgYm9vbCB1bnByb3RlY3QoSlNWYWx1ZSk7IC8vIFRydWUgd2hlbiB0aGUgcHJv
dGVjdCBjb3VudCBkcm9wcyB0byAwLgogCi0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFs
dWUpOyAvLyAwIGZvciBpbW1lZGlhdGUgdmFsdWVzCi0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFw
KEpTQ2VsbCopOworICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIAorICAgICAgICBzaXpl
X3Qgc2l6ZSgpIGNvbnN0OworICAgICAgICBzaXplX3QgY2FwYWNpdHkoKSBjb25zdDsKKyAgICAg
ICAgc2l6ZV90IG9iamVjdENvdW50KCkgY29uc3Q7CiAgICAgICAgIHNpemVfdCBnbG9iYWxPYmpl
Y3RDb3VudCgpOwogICAgICAgICBzaXplX3QgcHJvdGVjdGVkT2JqZWN0Q291bnQoKTsKICAgICAg
ICAgc2l6ZV90IHByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCk7CiAgICAgICAgIEhhc2hDb3Vu
dGVkU2V0PGNvbnN0IGNoYXIqPiogcHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgICAg
ICBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKj4qIG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAg
ICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0
YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2
b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwotICAgICAgICAKLSAgICAgICAgYm9vbCBjb250YWlucyh2
b2lkKik7Ci0KICAgICAgICAgV2Vha0dDSGFuZGxlKiBhZGRXZWFrR0NIYW5kbGUoSlNDZWxsKik7
CiAKICAgICAgICAgdm9pZCBwdXNoVGVtcFNvcnRWZWN0b3IoV1RGOjpWZWN0b3I8VmFsdWVTdHJp
bmdQYWlyPiopOwpAQCAtOTYsMjEgKzk1LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAg
IEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIqPiYgbWFya0xpc3RTZXQoKSB7IGlmICghbV9t
YXJrTGlzdFNldCkgbV9tYXJrTGlzdFNldCA9IG5ldyBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVm
ZmVyKj47IHJldHVybiAqbV9tYXJrTGlzdFNldDsgfQogCi0gICAgICAgIEpTR2xvYmFsRGF0YSog
Z2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsRGF0YTsgfQotICAgICAgICAKICAg
ICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlIZWFwQmVnaW4oKTsKICAgICAgICAgTGl2
ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlIZWFwRW5kKCk7CiAgICAgICAgIAotICAgICAgICBNYWNo
aW5lU3RhY2tNYXJrZXImIG1hY2hpbmVTdGFja01hcmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0
YWNrTWFya2VyOyB9Ci0KLSAgICAgICAgTWFya2VkU3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1
cm4gbV9tYXJrZWRTcGFjZTsgfQotCiAgICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNz
IEpTR2xvYmFsRGF0YTsKLSAgICAgICAgSGVhcChKU0dsb2JhbERhdGEqKTsKLSAgICAgICAgfkhl
YXAoKTsKIAotICAgICAgICB2b2lkIHJlY29yZEV4dHJhQ29zdChzaXplX3QpOworICAgICAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNv
bnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0ICogMTAyNDsKKworICAgICAgICB2b2lkIHJl
cG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKHNpemVfdCk7CiAKICAgICAgICAgdm9pZCBtYXJr
Um9vdHMoKTsKICAgICAgICAgdm9pZCBtYXJrUHJvdGVjdGVkT2JqZWN0cyhNYXJrU3RhY2smKTsK
QEAgLTE2Myw3ICsxNTcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBpbmxpbmUgdm9pZCBIZWFw
OjpyZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6ZV90IGNvc3QpCiAgICAgewogICAgICAgICBpZiAo
Y29zdCA+IG1pbkV4dHJhQ29zdCkgCi0gICAgICAgICAgICByZWNvcmRFeHRyYUNvc3QoY29zdCk7
CisgICAgICAgICAgICByZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZShjb3N0KTsKICAgICB9
CiAgICAgCiAgICAgaW5saW5lIFdlYWtHQ0hhbmRsZVBvb2wqIEhlYXA6OndlYWtHQ0hhbmRsZVBv
b2woc2l6ZV90IGluZGV4KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFy
a2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NSwyMCArMjk1
LDEyIEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6b2JqZWN0Q291bnQoKSBjb25zdAogICAgICAgICAg
ICAtIG1faGVhcC51c2VkQmxvY2tzOyAvLyAxIGNlbGwgcGVyIGJsb2NrIGlzIGEgZHVtbXkgc2Vu
dGluZWwKIH0KIAotdm9pZCBNYXJrZWRTcGFjZTo6YWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3Mm
IHN0YXRpc3RpY3MpIGNvbnN0Ci17Ci0gICAgc3RhdGlzdGljcy5zaXplICs9IG1faGVhcC51c2Vk
QmxvY2tzICogQkxPQ0tfU0laRTsKLSAgICBzdGF0aXN0aWNzLmZyZWUgKz0gbV9oZWFwLnVzZWRC
bG9ja3MgKiBCTE9DS19TSVpFIC0gKG9iamVjdENvdW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxs
U2l6ZSk7Ci19Ci0KLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIE1hcmtlZFNwYWNlOjpzdGF0aXN0
aWNzKCkgY29uc3QKK3NpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgU3Rh
dGlzdGljcyBzdGF0aXN0aWNzID0geyAwLCAwIH07Ci0gICAgYWRkVG9TdGF0aXN0aWNzKHN0YXRp
c3RpY3MpOwotICAgIHJldHVybiBzdGF0aXN0aWNzOworICAgIHJldHVybiBvYmplY3RDb3VudCgp
ICogSGVhcENvbnN0YW50czo6Y2VsbFNpemU7CiB9CiAKLXNpemVfdCBNYXJrZWRTcGFjZTo6c2l6
ZSgpIGNvbnN0CitzaXplX3QgTWFya2VkU3BhY2U6OmNhcGFjaXR5KCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFOwogfQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5oCShyZXZpc2lvbiA3NjQ1MykKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY0LDExICs2NCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIE1hcmtlZFNw
YWNlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2VkU3BhY2UpOwogICAgIHB1
YmxpYzoKLSAgICAgICAgc3RydWN0IFN0YXRpc3RpY3MgewotICAgICAgICAgICAgc2l6ZV90IHNp
emU7Ci0gICAgICAgICAgICBzaXplX3QgZnJlZTsKLSAgICAgICAgfTsKLQogICAgICAgICBzdGF0
aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAogICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJr
ZWQoY29uc3QgSlNDZWxsKik7CkBAIC04OCw4ICs4Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICB2b2lkIHN3ZWVwKCk7CiAKICAgICAgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAgICAg
ICAgc2l6ZV90IGNhcGFjaXR5KCkgY29uc3Q7CiAgICAgICAgIHNpemVfdCBvYmplY3RDb3VudCgp
IGNvbnN0OwotICAgICAgICBTdGF0aXN0aWNzIHN0YXRpc3RpY3MoKSBjb25zdDsKIAogICAgICAg
ICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIApAQCAtMTEzLDggKzEwOCw2IEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICB2b2lkIGNsZWFyTWFya0JpdHMoQ29sbGVjdG9yQmxvY2sqKTsKICAgICAg
ICAgc2l6ZV90IG1hcmtlZENlbGxzKHNpemVfdCBzdGFydEJsb2NrID0gMCwgc2l6ZV90IHN0YXJ0
Q2VsbCA9IDApIGNvbnN0OwogCi0gICAgICAgIHZvaWQgYWRkVG9TdGF0aXN0aWNzKFN0YXRpc3Rp
Y3MmKSBjb25zdDsKLQogICAgICAgICBDb2xsZWN0b3JIZWFwIG1faGVhcDsKICAgICAgICAgSlNH
bG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAgICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiA3NjQ1
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
TWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVhcFN0YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21t
b25HbG9iYWxEYXRhKQotewotICAgIHJldHVybiBjb21tb25HbG9iYWxEYXRhLT5oZWFwLnN0YXRp
c3RpY3MoKTsKLX0gICAgICAgIAotCiBHbG9iYWxNZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9y
eVN0YXRpc3RpY3MoKSAKIHsKICAgICBHbG9iYWxNZW1vcnlTdGF0aXN0aWNzIHN0YXRzOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3Mu
aAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NZW1v
cnlTdGF0aXN0aWNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IEds
b2JhbE1lbW9yeVN0YXRpc3RpY3MgewogICAgIHNpemVfdCBKSVRCeXRlczsKIH07CiAKLU1hcmtl
ZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBTdGF0aXN0aWNzKEpTR2xvYmFsRGF0YSogY29tbW9uR2xv
YmFsRGF0YSk7CiBHbG9iYWxNZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3Mo
KTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzM1NworICAgICAg
ICAKKyAgICAgICAgVXBkYXRlZCBmb3IgSmF2YVNjcmlwdENvcmUgY2hhbmdlcy4KKworICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0R0NFdmVudDo6Z2V0SGVhcFNpemUpOgorCiAyMDExLTAxLTI4ICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHJldmlz
aW9uIDc2NDUzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiB2b2lkIFNjcmlwdEdDRXZlbnQ6OmdldEhlYXBTaXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBz
aXplX3QmIHRvdGFsSGVhcFNpemUpCiB7CiAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0g
SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpOwotICAgIHRvdGFsSGVhcFNpemUgPSBn
bG9iYWxEYXRhLT5oZWFwLnNpemUoKTsKKyAgICB0b3RhbEhlYXBTaXplID0gZ2xvYmFsRGF0YS0+
aGVhcC5jYXBhY2l0eSgpOwogICAgIHVzZWRIZWFwU2l6ZSA9IHRvdGFsSGVhcFNpemU7CiB9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpJ
bmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwNDIpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMS0yOCAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIFNvbWUgbW9yZSBI
ZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MzM1NworCisgICAgICAgIFVwZGF0ZWQgZm9yIEphdmFTY3JpcHRDb3JlIGNoYW5nZXMu
CisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAgICAoK1tXZWJD
b3JlU3RhdGlzdGljcyBtZW1vcnlTdGF0aXN0aWNzXSk6CisKIDIwMTEtMDEtMjcgIE9saXZlciBI
dW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBH
YXJlbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5t
bQkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYkNvcmVTdGF0
aXN0aWNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsMTUgKzE5NywxNiBAQCArIChOU0RpY3Rp
b25hcnkgKiltZW1vcnlTdGF0aXN0aWNzCiAgICAgV1RGOjpGYXN0TWFsbG9jU3RhdGlzdGljcyBm
YXN0TWFsbG9jU3RhdGlzdGljcyA9IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3RpY3MoKTsKICAgICAK
ICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIE1hcmtlZFNwYWNl
OjpTdGF0aXN0aWNzIGhlYXBNZW1vcnlTdGF0cyA9IGhlYXBTdGF0aXN0aWNzKEpTRE9NV2luZG93
Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7CisgICAgc2l6ZV90IGhlYXBTaXplID0gSlNET01XaW5k
b3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnNpemUoKTsKKyAgICBzaXplX3QgaGVhcEZy
ZWUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAuY2FwYWNpdHkoKSAt
IGhlYXBTaXplOwogICAgIEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgZ2xvYmFsTWVtb3J5U3RhdHMg
PSBnbG9iYWxNZW1vcnlTdGF0aXN0aWNzKCk7CiAgICAgCiAgICAgcmV0dXJuIFtOU0RpY3Rpb25h
cnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5yZXNlcnZlZFZNQnl0ZXNdLCBA
IkZhc3RNYWxsb2NSZXNlcnZlZFZNQnl0ZXMiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0aXN0aWNzLmNvbW1pdHRlZFZNQnl0ZXNdLCBAIkZh
c3RNYWxsb2NDb21taXR0ZWRWTUJ5dGVzIiwKICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVt
YmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5mcmVlTGlzdEJ5dGVzXSwgQCJGYXN0TWFs
bG9jRnJlZUxpc3RCeXRlcyIsCi0gICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJ
bnQ6aGVhcE1lbW9yeVN0YXRzLnNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6ZSIsCi0gICAgICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcE1lbW9yeVN0YXRzLmZyZWVdLCBA
IkphdmFTY3JpcHRGcmVlU2l6ZSIsCisgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldp
dGhJbnQ6aGVhcFNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6ZSIsCisgICAgICAgICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcEZyZWVdLCBAIkphdmFTY3JpcHRGcmVlU2l6ZSIs
CiAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDoodW5zaWdu
ZWQgaW50KWdsb2JhbE1lbW9yeVN0YXRzLnN0YWNrQnl0ZXNdLCBAIkphdmFTY3JpcHRTdGFja1Np
emUiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWduZWRJbnQ6KHVu
c2lnbmVkIGludClnbG9iYWxNZW1vcnlTdGF0cy5KSVRCeXRlc10sIEAiSmF2YVNjcmlwdEpJVFNp
emUiLAogICAgICAgICAgICAgbmlsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80562</attachid>
            <date>2011-01-29 08:06:50 -0800</date>
            <delta_ts>2011-01-29 11:01:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110129080648.patch</filename>
            <type>text/plain</type>
            <size>17304</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKTogUmVu
YW1lZCByZWNvcmRFeHRyYUNvc3QgdG8gCisgICAgICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNs
b3dDYXNlIHRvIG1hdGNoIG91ciBuYW1pbmcgY29udmVudGlvbnMuCisKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uCisgICAgICAgIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNsdWRp
bmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6CisgICAgICAg
IChKU0M6OkhlYXA6Omdsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrZWRTcGFj
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVTdGFja01hcmtlcik6CisgICAgICAgIChK
U0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IE1vdmVkIHN0YXRpY3MgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZS4KKyAgICAgICAgTW92ZWQgY3RvciBhbmQgZHRvciB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBHcm91cGVkCisgICAgICAgIGZ1bmN0aW9ucyBi
eSBwdXJwb3NlLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZFNwYWNlOjpjYXBhY2l0eSk6IFJlbmFtZWQgc2l6ZSB0byBjYXBhY2l0eSBi
ZWNhdXNlIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FwYWNpdHkgb2YgdGhl
IGhlYXAsIGluY2x1ZGluZyB1bnVzZWQgcG9ydGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL01h
cmtlZFNwYWNlLmg6IFJlbW92ZWQgc3RhdGlzdGljcyBhbmQgdGhlIFN0YXRpc3RpY3MgY2xhc3Mg
YmVjYXVzZQorICAgICAgICB0aGUgc2FtZSBpbmZvcm1hdGlvbiBjYW4gYmUgZ290dGVuIGp1c3Qg
YnkgY2FsbGluZyBzaXplKCkgYW5kIGNhcGFjaXR5KCkuCisKKyAgICAgICAgKiBydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5o
OiBEaXR0by4KKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3Njk2MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3
ICsxNjYsNiBAQCBfX1pOM0pTQzE0U2FtcGxpbmdUaHJlYWQ0c3RvcEV2CiBfX1pOM0pTQzE0U2Ft
cGxpbmdUaHJlYWQ1c3RhcnRFagogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0
RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0RXYKLV9fWk4z
SlNDMTRoZWFwU3RhdGlzdGljc0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0dGhyb3dU
eXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJr
Q2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185
RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0xOTcsNyArMTk2LDYgQEAgX19aTjNKU0MxOVNv
dXJjZVByb3ZpZGVyQ2FjaGVEMUV2CiBfX1pOM0pTQzE5aW5pdGlhbGl6ZVRocmVhZGluZ0V2CiBf
X1pOM0pTQzIwTWFya2VkQXJndW1lbnRCdWZmZXIxMHNsb3dBcHBlbmRFTlNfN0pTVmFsdWVFCiBf
X1pOM0pTQzIwY3JlYXRlUmVmZXJlbmNlRXJyb3JFUE5TXzlFeGVjU3RhdGVFUktOU183VVN0cmlu
Z0UKLV9fWk4zSlNDMjJnbG9iYWxNZW1vcnlTdGF0aXN0aWNzRXYKIF9fWk4zSlNDMjNBYnN0cmFj
dFNhbXBsaW5nQ291bnRlcjRkdW1wRXYKIF9fWk4zSlNDMjNvYmplY3RQcm90b0Z1bmNUb1N0cmlu
Z0VQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMjNzZXRVcFN0YXRpY0Z1bmN0aW9uU2xvdEVQTlNf
OUV4ZWNTdGF0ZUVQS05TXzlIYXNoRW50cnlFUE5TXzhKU09iamVjdEVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMTJQcm9wZXJ0eVNsb3RFCkBAIC0yMTAsNyArMjA4LDYgQEAgX19aTjNKU0MzNWNyZWF0
ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZQogX19aTjNKU0MzTmFORQogX19aTjNKU0M0SGVhcDE0
cHJpbWFyeUhlYXBFbmRFdgogX19aTjNKU0M0SGVhcDE1YWRkV2Vha0dDSGFuZGxlRVBOU182SlND
ZWxsRQotX19aTjNKU0M0SGVhcDE1cmVjb3JkRXh0cmFDb3N0RW0KIF9fWk4zSlNDNEhlYXAxNm9i
amVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE2cHJpbWFyeUhlYXBCZWdpbkV2CiBfX1pO
M0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CkBAIC0yMTksNiArMjE2LDcgQEAgX19aTjNK
U0M0SGVhcDE5c2V0QWN0aXZpdHlDYWxsYmFja0VOM1dURgogX19aTjNKU0M0SGVhcDIwcHJvdGVj
dGVkT2JqZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDI1cHJvdGVjdGVkT2JqZWN0VHlwZUNvdW50
c0V2CiBfX1pOM0pTQzRIZWFwMjZwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEV2CitfX1pOM0pT
QzRIZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFwNmlz
QnVzeUV2CiBfX1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0RU5T
XzdKU1ZhbHVlRQpAQCAtNTE5LDkgKzUxNyw4IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNjcmlw
dG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2CiBf
X1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDMjRKU09i
amVjdFdpdGhHbG9iYWxPYmplY3QxMmdsb2JhbE9iamVjdEV2Ci1fX1pOSzNKU0M0SGVhcDEwc3Rh
dGlzdGljc0V2CiBfX1pOSzNKU0M0SGVhcDExb2JqZWN0Q291bnRFdgotX19aTkszSlNDNEhlYXA0
c2l6ZUV2CitfX1pOSzNKU0M0SGVhcDhjYXBhY2l0eUV2CiBfX1pOSzNKU0M2SlNDZWxsMTF0b1By
aW1pdGl2ZUVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBfX1pO
SzNKU0M2SlNDZWxsMTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2SlND
ZWxsMTRpc0dldHRlclNldHRlckV2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gNzY5NjIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBFWFBPUlRTCiAg
ICAgP2NhbGxPbk1haW5UaHJlYWRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FsbE9uTWFp
blRocmVhZEFuZFdhaXRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FuY2VsQ2FsbE9uTWFp
blRocmVhZEBXVEZAQFlBWFA2QVhQQVhAWjBAWgorICAgID9jYXBhY2l0eUBIZWFwQEpTQ0BAUUJF
SVhaCiAgICAgP2NoYW5nZVByb3RvdHlwZVRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0E/QVY/
JFBhc3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQFBBVjEyQFZKU1ZhbHVlQDJAQFoKICAg
ICA/Y2hlY2tDdXJyZW50SWRlbnRpZmllclRhYmxlQElkZW50aWZpZXJASlNDQEBDQVhQQVZFeGVj
U3RhdGVAMkBAWgogICAgID9jaGVja0N1cnJlbnRJZGVudGlmaWVyVGFibGVASWRlbnRpZmllckBK
U0NAQENBWFBBVkpTR2xvYmFsRGF0YUAyQEBaCkBAIC0yNjYsMTAgKzI2NywxMCBAQCBFWFBPUlRT
CiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkpTR2xvYmFsRGF0
YUAyQElWSlNWYWx1ZUAyQElAWgogICAgID9yYW5kb21OdW1iZXJAV1RGQEBZQU5YWgogICAgID9y
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc0BEZWJ1Z2dlckBKU0NAQFFBRVhQQVZKU0dsb2JhbERhdGFA
MkBAWgotICAgID9yZWNvcmRFeHRyYUNvc3RASGVhcEBKU0NAQEFBRVhJQFoKICAgICA/cmVpZnlT
dHJpbmdAU3RyaW5nQnVpbGRlckBXVEZAQEFBRVhYWgogICAgID9yZWxlYXNlRGVjb21taXR0ZWRA
T1NBbGxvY2F0b3JAV1RGQEBTQVhQQVhJQFoKICAgICA/cmVsZWFzZVN0YWNrQE1hcmtTdGFja0BK
U0NAQENBWFBBWElAWgorICAgID9yZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUBIZWFwQEpT
Q0BAQUFFWElAWgogICAgID9yZXNlcnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQQVhJ
VzRVc2FnZUAxMkBfTjFAWgogICAgID9yZXNldEBQYXJzZXJBcmVuYUBKU0NAQFFBRVhYWgogICAg
ID9yZXNldEBUaW1lb3V0Q2hlY2tlckBKU0NAQFFBRVhYWgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2NDU0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAg
dm9pZCBIZWFwOjpkZXN0cm95KCkKICAgICBtX2dsb2JhbERhdGEgPSAwOwogfQogCi12b2lkIEhl
YXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3QgY29zdCkKK3ZvaWQgSGVhcDo6cmVwb3J0RXh0cmFN
ZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90IGNvc3QpCiB7CiAgICAgLy8gT3VyIGZyZXF1ZW5jeSBv
ZiBnYXJiYWdlIGNvbGxlY3Rpb24gdHJpZXMgdG8gYmFsYW5jZSBtZW1vcnkgdXNlIGFnYWluc3Qg
c3BlZWQKICAgICAvLyBieSBjb2xsZWN0aW5nIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgbmV3bHkg
Y3JlYXRlZCB2YWx1ZXMuIEhvd2V2ZXIsIGZvciB2YWx1ZXMKQEAgLTkyLDcgKzkyLDcgQEAgdm9p
ZCBIZWFwOjpyZWNvcmRFeHRyYUNvc3Qoc2l6ZV90IGNvc3QpCiAgICAgLy8gaWYgYSBsYXJnZSB2
YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9uLCB0aGVyZSBpcyBub3QgbXVjaCBw
b2ludCB0bwogICAgIC8vIGNvbGxlY3RpbmcgbW9yZSBmcmVxdWVudGx5IGFzIGxvbmcgYXMgaXQg
c3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9leHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9l
eHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLnNpemUoKSAvIDIpIHsKKyAgICBpZiAobV9leHRyYUNv
c3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLmNhcGFjaXR5
KCkgLyAyKSB7CiAgICAgICAgIEpBVkFTQ1JJUFRDT1JFX0dDX0JFR0lOKCk7CiAKICAgICAgICAg
bWFya1Jvb3RzKCk7CkBAIC0zMDIsMTQgKzMwMiwxNCBAQCBzaXplX3QgSGVhcDo6b2JqZWN0Q291
bnQoKSBjb25zdAogICAgIHJldHVybiBtX21hcmtlZFNwYWNlLm9iamVjdENvdW50KCk7CiB9CiAK
LU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIEhlYXA6OnN0YXRpc3RpY3MoKSBjb25zdAorc2l6ZV90
IEhlYXA6OnNpemUoKSBjb25zdAogewotICAgIHJldHVybiBtX21hcmtlZFNwYWNlLnN0YXRpc3Rp
Y3MoKTsKKyAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplKCk7CiB9CiAKLXNpemVfdCBIZWFw
OjpzaXplKCkgY29uc3QKK3NpemVfdCBIZWFwOjpjYXBhY2l0eSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fbWFya2VkU3BhY2Uuc2l6ZSgpOworICAgIHJldHVybiBtX21hcmtlZFNwYWNlLmNhcGFj
aXR5KCk7CiB9CiAKIHNpemVfdCBIZWFwOjpnbG9iYWxPYmplY3RDb3VudCgpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNDUgKzUw
LDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEhlYXAgewogICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShIZWFwKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgZGVzdHJveSgp
OworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU1ZhbHVlKTsgLy8gMCBmb3IgaW1tZWRpYXRl
IHZhbHVlcworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAotICAgICAgICB2
b2lkKiBhbGxvY2F0ZShzaXplX3QpOworICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQo
Y29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29uc3Qg
SlNDZWxsKik7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOworICAgICAg
ICAKKyAgICAgICAgSGVhcChKU0dsb2JhbERhdGEqKTsKKyAgICAgICAgfkhlYXAoKTsKKyAgICAg
ICAgdm9pZCBkZXN0cm95KCk7IC8vIEpTR2xvYmFsRGF0YSBtdXN0IGNhbGwgZGVzdHJveSgpIGJl
Zm9yZSB+SGVhcCgpLgogCi0gICAgICAgIGJvb2wgaXNCdXN5KCk7IC8vIHRydWUgaWYgYW4gYWxs
b2NhdGlvbiBvciBjb2xsZWN0aW9uIGlzIGluIHByb2dyZXNzCi0gICAgICAgIHZvaWQgY29sbGVj
dEFsbEdhcmJhZ2UoKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkgY29uc3Qg
eyByZXR1cm4gbV9nbG9iYWxEYXRhOyB9CisgICAgICAgIE1hcmtlZFNwYWNlJiBtYXJrZWRTcGFj
ZSgpIHsgcmV0dXJuIG1fbWFya2VkU3BhY2U7IH0KKyAgICAgICAgTWFjaGluZVN0YWNrTWFya2Vy
JiBtYWNoaW5lU3RhY2tNYXJrZXIoKSB7IHJldHVybiBtX21hY2hpbmVTdGFja01hcmtlcjsgfQog
CiAgICAgICAgIEdDQWN0aXZpdHlDYWxsYmFjayogYWN0aXZpdHlDYWxsYmFjaygpOwogICAgICAg
ICB2b2lkIHNldEFjdGl2aXR5Q2FsbGJhY2soUGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJhY2s+
KTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1NjsKLSAg
ICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0ICogMTAyNDsKKyAg
ICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNvbGxlY3Rp
b24gaXMgaW4gcHJvZ3Jlc3MKKyAgICAgICAgdm9pZCogYWxsb2NhdGUoc2l6ZV90KTsKKyAgICAg
ICAgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgpOwogCiAgICAgICAgIHZvaWQgcmVwb3J0RXh0cmFN
ZW1vcnlDb3N0KHNpemVfdCBjb3N0KTsKIAotICAgICAgICBzaXplX3Qgb2JqZWN0Q291bnQoKSBj
b25zdDsKLSAgICAgICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcygpIGNvbnN0
OwotICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotCiAgICAgICAgIHZvaWQgcHJvdGVjdChK
U1ZhbHVlKTsKLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBubyBsb25n
ZXIgcHJvdGVjdGVkIGJ5IGFueSBwcm90ZWN0IHBvaW50ZXJzCi0gICAgICAgIC8vICh0aG91Z2gg
aXQgbWF5IHN0aWxsIGJlIGFsaXZlIGR1ZSB0byBoZWFwL3N0YWNrIHJlZmVyZW5jZXMpLgotICAg
ICAgICBib29sIHVucHJvdGVjdChKU1ZhbHVlKTsKKyAgICAgICAgYm9vbCB1bnByb3RlY3QoSlNW
YWx1ZSk7IC8vIFRydWUgd2hlbiB0aGUgcHJvdGVjdCBjb3VudCBkcm9wcyB0byAwLgogCi0gICAg
ICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFsdWUpOyAvLyAwIGZvciBpbW1lZGlhdGUgdmFsdWVz
Ci0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCopOworICAgICAgICBib29sIGNvbnRh
aW5zKHZvaWQqKTsKIAorICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OworICAgICAgICBzaXpl
X3QgY2FwYWNpdHkoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IG9iamVjdENvdW50KCkgY29uc3Q7
CiAgICAgICAgIHNpemVfdCBnbG9iYWxPYmplY3RDb3VudCgpOwogICAgICAgICBzaXplX3QgcHJv
dGVjdGVkT2JqZWN0Q291bnQoKTsKICAgICAgICAgc2l6ZV90IHByb3RlY3RlZEdsb2JhbE9iamVj
dENvdW50KCk7CiAgICAgICAgIEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqPiogcHJvdGVjdGVk
T2JqZWN0VHlwZUNvdW50cygpOwogICAgICAgICBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFyKj4q
IG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQo
Y29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29uc3Qg
SlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwotICAgICAg
ICAKLSAgICAgICAgYm9vbCBjb250YWlucyh2b2lkKik7Ci0KICAgICAgICAgV2Vha0dDSGFuZGxl
KiBhZGRXZWFrR0NIYW5kbGUoSlNDZWxsKik7CiAKICAgICAgICAgdm9pZCBwdXNoVGVtcFNvcnRW
ZWN0b3IoV1RGOjpWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpAQCAtOTYsMjEgKzk1LDE2IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZmZXIq
PiYgbWFya0xpc3RTZXQoKSB7IGlmICghbV9tYXJrTGlzdFNldCkgbV9tYXJrTGlzdFNldCA9IG5l
dyBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj47IHJldHVybiAqbV9tYXJrTGlzdFNldDsg
fQogCi0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
Z2xvYmFsRGF0YTsgfQotICAgICAgICAKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1h
cnlIZWFwQmVnaW4oKTsKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlIZWFwRW5k
KCk7CiAgICAgICAgIAotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXImIG1hY2hpbmVTdGFja01h
cmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFya2VyOyB9Ci0KLSAgICAgICAgTWFya2Vk
U3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQotCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAgICAgICAgSGVhcChK
U0dsb2JhbERhdGEqKTsKLSAgICAgICAgfkhlYXAoKTsKIAotICAgICAgICB2b2lkIHJlY29yZEV4
dHJhQ29zdChzaXplX3QpOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29z
dCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0
ICogMTAyNDsKKworICAgICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKHNp
emVfdCk7CiAKICAgICAgICAgdm9pZCBtYXJrUm9vdHMoKTsKICAgICAgICAgdm9pZCBtYXJrUHJv
dGVjdGVkT2JqZWN0cyhNYXJrU3RhY2smKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBpbmxpbmUgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6ZV90
IGNvc3QpCiAgICAgewogICAgICAgICBpZiAoY29zdCA+IG1pbkV4dHJhQ29zdCkgCi0gICAgICAg
ICAgICByZWNvcmRFeHRyYUNvc3QoY29zdCk7CisgICAgICAgICAgICByZXBvcnRFeHRyYU1lbW9y
eUNvc3RTbG93Q2FzZShjb3N0KTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIFdlYWtHQ0hhbmRs
ZVBvb2wqIEhlYXA6OndlYWtHQ0hhbmRsZVBvb2woc2l6ZV90IGluZGV4KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24gNzY0
NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5NSwyMCArMjk1LDEyIEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6b2Jq
ZWN0Q291bnQoKSBjb25zdAogICAgICAgICAgICAtIG1faGVhcC51c2VkQmxvY2tzOyAvLyAxIGNl
bGwgcGVyIGJsb2NrIGlzIGEgZHVtbXkgc2VudGluZWwKIH0KIAotdm9pZCBNYXJrZWRTcGFjZTo6
YWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpIGNvbnN0Ci17Ci0gICAgc3Rh
dGlzdGljcy5zaXplICs9IG1faGVhcC51c2VkQmxvY2tzICogQkxPQ0tfU0laRTsKLSAgICBzdGF0
aXN0aWNzLmZyZWUgKz0gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFIC0gKG9iamVjdENv
dW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7Ci19Ci0KLU1hcmtlZFNwYWNlOjpTdGF0
aXN0aWNzIE1hcmtlZFNwYWNlOjpzdGF0aXN0aWNzKCkgY29uc3QKK3NpemVfdCBNYXJrZWRTcGFj
ZTo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgU3RhdGlzdGljcyBzdGF0aXN0aWNzID0geyAwLCAwIH07
Ci0gICAgYWRkVG9TdGF0aXN0aWNzKHN0YXRpc3RpY3MpOwotICAgIHJldHVybiBzdGF0aXN0aWNz
OworICAgIHJldHVybiBvYmplY3RDb3VudCgpICogSGVhcENvbnN0YW50czo6Y2VsbFNpemU7CiB9
CiAKLXNpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CitzaXplX3QgTWFya2VkU3BhY2U6
OmNhcGFjaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9D
S19TSVpFOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3Bh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRT
cGFjZS5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCw2IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIGNsYXNzIE1hcmtlZFNwYWNlIHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoTWFya2VkU3BhY2UpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RydWN0IFN0YXRpc3Rp
Y3MgewotICAgICAgICAgICAgc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICBzaXplX3QgZnJlZTsK
LSAgICAgICAgfTsKLQogICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAogICAg
ICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7CkBAIC04OCw4ICs4
Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHN3ZWVwKCk7CiAKICAgICAgICAg
c2l6ZV90IHNpemUoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IGNhcGFjaXR5KCkgY29uc3Q7CiAg
ICAgICAgIHNpemVfdCBvYmplY3RDb3VudCgpIGNvbnN0OwotICAgICAgICBTdGF0aXN0aWNzIHN0
YXRpc3RpY3MoKSBjb25zdDsKIAogICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIApAQCAt
MTEzLDggKzEwOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNsZWFyTWFya0Jp
dHMoQ29sbGVjdG9yQmxvY2sqKTsKICAgICAgICAgc2l6ZV90IG1hcmtlZENlbGxzKHNpemVfdCBz
dGFydEJsb2NrID0gMCwgc2l6ZV90IHN0YXJ0Q2VsbCA9IDApIGNvbnN0OwogCi0gICAgICAgIHZv
aWQgYWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmKSBjb25zdDsKLQogICAgICAgICBDb2xsZWN0
b3JIZWFwIG1faGVhcDsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAgICAg
fTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3Mu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0
YXRpc3RpY3MuY3BwCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIs
NiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVhcFN0
YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21tb25HbG9iYWxEYXRhKQotewotICAgIHJldHVybiBj
b21tb25HbG9iYWxEYXRhLT5oZWFwLnN0YXRpc3RpY3MoKTsKLX0gICAgICAgIAotCiBHbG9iYWxN
ZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKSAKIHsKICAgICBHbG9iYWxN
ZW1vcnlTdGF0aXN0aWNzIHN0YXRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWVtb3J5U3RhdGlzdGljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgewogICAgIHNp
emVfdCBKSVRCeXRlczsKIH07CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBTdGF0aXN0
aWNzKEpTR2xvYmFsRGF0YSogY29tbW9uR2xvYmFsRGF0YSk7CiBHbG9iYWxNZW1vcnlTdGF0aXN0
aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gNzcwMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNv
bWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzM1NworICAgICAgICAKKyAgICAgICAgVXBkYXRlZCBmb3IgSmF2YVNj
cmlwdENvcmUgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUpOgorCiAy
MDExLTAxLTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0R0NFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R0NFdmVudC5jcHAJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIFNjcmlwdEdDRXZlbnQ6OmdldEhlYXBT
aXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBzaXplX3QmIHRvdGFsSGVhcFNpemUpCiB7CiAgICAg
SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0
YSgpOwotICAgIHRvdGFsSGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLnNpemUoKTsKKyAgICB0
b3RhbEhlYXBTaXplID0gZ2xvYmFsRGF0YS0+aGVhcC5jYXBhY2l0eSgpOwogICAgIHVzZWRIZWFw
U2l6ZSA9IHRvdGFsSGVhcFNpemU7CiB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24g
NzcwNDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNv
bWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzM1NworCisgICAgICAgIFVwZGF0ZWQgZm9yIEphdmFTY3JpcHRDb3Jl
IGNoYW5nZXMuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAgICAg
ICAoK1tXZWJDb3JlU3RhdGlzdGljcyBtZW1vcnlTdGF0aXN0aWNzXSk6CisKIDIwMTEtMDEtMjcg
IE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0YXRp
c3RpY3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbQkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dl
YkNvcmVTdGF0aXN0aWNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsMTUgKzE5NywxNiBAQCAr
IChOU0RpY3Rpb25hcnkgKiltZW1vcnlTdGF0aXN0aWNzCiAgICAgV1RGOjpGYXN0TWFsbG9jU3Rh
dGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGljcyA9IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3RpY3Mo
KTsKICAgICAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAgIE1h
cmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBNZW1vcnlTdGF0cyA9IGhlYXBTdGF0aXN0aWNzKEpT
RE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7CisgICAgc2l6ZV90IGhlYXBTaXplID0g
SlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnNpemUoKTsKKyAgICBzaXpl
X3QgaGVhcEZyZWUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAuY2Fw
YWNpdHkoKSAtIGhlYXBTaXplOwogICAgIEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgZ2xvYmFsTWVt
b3J5U3RhdHMgPSBnbG9iYWxNZW1vcnlTdGF0aXN0aWNzKCk7CiAgICAgCiAgICAgcmV0dXJuIFtO
U0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5yZXNlcnZlZFZN
Qnl0ZXNdLCBAIkZhc3RNYWxsb2NSZXNlcnZlZFZNQnl0ZXMiLAogICAgICAgICAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0aXN0aWNzLmNvbW1pdHRlZFZNQnl0
ZXNdLCBAIkZhc3RNYWxsb2NDb21taXR0ZWRWTUJ5dGVzIiwKICAgICAgICAgICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5mcmVlTGlzdEJ5dGVzXSwg
QCJGYXN0TWFsbG9jRnJlZUxpc3RCeXRlcyIsCi0gICAgICAgICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhJbnQ6aGVhcE1lbW9yeVN0YXRzLnNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6ZSIs
Ci0gICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcE1lbW9yeVN0YXRz
LmZyZWVdLCBAIkphdmFTY3JpcHRGcmVlU2l6ZSIsCisgICAgICAgICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhJbnQ6aGVhcFNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6ZSIsCisgICAgICAg
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcEZyZWVdLCBAIkphdmFTY3JpcHRG
cmVlU2l6ZSIsCiAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZElu
dDoodW5zaWduZWQgaW50KWdsb2JhbE1lbW9yeVN0YXRzLnN0YWNrQnl0ZXNdLCBAIkphdmFTY3Jp
cHRTdGFja1NpemUiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5zaWdu
ZWRJbnQ6KHVuc2lnbmVkIGludClnbG9iYWxNZW1vcnlTdGF0cy5KSVRCeXRlc10sIEAiSmF2YVNj
cmlwdEpJVFNpemUiLAogICAgICAgICAgICAgbmlsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80567</attachid>
            <date>2011-01-29 11:01:07 -0800</date>
            <delta_ts>2011-01-29 14:44:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110129110106.patch</filename>
            <type>text/plain</type>
            <size>16851</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKTogUmVu
YW1lZCByZWNvcmRFeHRyYUNvc3QgdG8gCisgICAgICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNs
b3dDYXNlIHRvIG1hdGNoIG91ciBuYW1pbmcgY29udmVudGlvbnMuCisKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uCisgICAgICAgIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNsdWRp
bmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6CisgICAgICAg
IChKU0M6OkhlYXA6Omdsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrZWRTcGFj
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVTdGFja01hcmtlcik6CisgICAgICAgIChK
U0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IE1vdmVkIHN0YXRpY3MgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZS4KKyAgICAgICAgTW92ZWQgY3RvciBhbmQgZHRvciB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBHcm91cGVkCisgICAgICAgIGZ1bmN0aW9ucyBi
eSBwdXJwb3NlLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZFNwYWNlOjpjYXBhY2l0eSk6IFJlbmFtZWQgc2l6ZSB0byBjYXBhY2l0eSBi
ZWNhdXNlIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FwYWNpdHkgb2YgdGhl
IGhlYXAsIGluY2x1ZGluZyB1bnVzZWQgcG9ydGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL01h
cmtlZFNwYWNlLmg6IFJlbW92ZWQgc3RhdGlzdGljcyBhbmQgdGhlIFN0YXRpc3RpY3MgY2xhc3Mg
YmVjYXVzZQorICAgICAgICB0aGUgc2FtZSBpbmZvcm1hdGlvbiBjYW4gYmUgZ290dGVuIGp1c3Qg
YnkgY2FsbGluZyBzaXplKCkgYW5kIGNhcGFjaXR5KCkuCisKKyAgICAgICAgKiBydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5o
OiBEaXR0by4KKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3Njk2MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3
ICsxNjYsNiBAQCBfX1pOM0pTQzE0U2FtcGxpbmdUaHJlYWQ0c3RvcEV2CiBfX1pOM0pTQzE0U2Ft
cGxpbmdUaHJlYWQ1c3RhcnRFagogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0
RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0RXYKLV9fWk4z
SlNDMTRoZWFwU3RhdGlzdGljc0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0dGhyb3dU
eXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJr
Q2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185
RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0yMTAsNyArMjA5LDYgQEAgX19aTjNKU0MzNWNy
ZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZQogX19aTjNKU0MzTmFORQogX19aTjNKU0M0SGVh
cDE0cHJpbWFyeUhlYXBFbmRFdgogX19aTjNKU0M0SGVhcDE1YWRkV2Vha0dDSGFuZGxlRVBOU182
SlNDZWxsRQotX19aTjNKU0M0SGVhcDE1cmVjb3JkRXh0cmFDb3N0RW0KIF9fWk4zSlNDNEhlYXAx
Nm9iamVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE2cHJpbWFyeUhlYXBCZWdpbkV2CiBf
X1pOM0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CkBAIC0yMTksNiArMjE3LDcgQEAgX19a
TjNKU0M0SGVhcDE5c2V0QWN0aXZpdHlDYWxsYmFja0VOM1dURgogX19aTjNKU0M0SGVhcDIwcHJv
dGVjdGVkT2JqZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDI1cHJvdGVjdGVkT2JqZWN0VHlwZUNv
dW50c0V2CiBfX1pOM0pTQzRIZWFwMjZwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEV2CitfX1pO
M0pTQzRIZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFw
NmlzQnVzeUV2CiBfX1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0
RU5TXzdKU1ZhbHVlRQpAQCAtNTE5LDkgKzUxOCw5IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNj
cmlwdG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2
CiBfX1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDMjRK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QxMmdsb2JhbE9iamVjdEV2Ci1fX1pOSzNKU0M0SGVhcDEw
c3RhdGlzdGljc0V2CiBfX1pOSzNKU0M0SGVhcDExb2JqZWN0Q291bnRFdgogX19aTkszSlNDNEhl
YXA0c2l6ZUV2CitfX1pOSzNKU0M0SGVhcDhjYXBhY2l0eUV2CiBfX1pOSzNKU0M2SlNDZWxsMTF0
b1ByaW1pdGl2ZUVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBf
X1pOSzNKU0M2SlNDZWxsMTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2
SlNDZWxsMTRpc0dldHRlclNldHRlckV2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gNzY5NjIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBFWFBPUlRT
CiAgICAgP2NhbGxPbk1haW5UaHJlYWRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FsbE9u
TWFpblRocmVhZEFuZFdhaXRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FuY2VsQ2FsbE9u
TWFpblRocmVhZEBXVEZAQFlBWFA2QVhQQVhAWjBAWgorICAgID9jYXBhY2l0eUBIZWFwQEpTQ0BA
UUJFSVhaCiAgICAgP2NoYW5nZVByb3RvdHlwZVRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0E/
QVY/JFBhc3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQFBBVjEyQFZKU1ZhbHVlQDJAQFoK
ICAgICA/Y2hlY2tDdXJyZW50SWRlbnRpZmllclRhYmxlQElkZW50aWZpZXJASlNDQEBDQVhQQVZF
eGVjU3RhdGVAMkBAWgogICAgID9jaGVja0N1cnJlbnRJZGVudGlmaWVyVGFibGVASWRlbnRpZmll
ckBKU0NAQENBWFBBVkpTR2xvYmFsRGF0YUAyQEBaCkBAIC0yNjYsMTAgKzI2NywxMCBAQCBFWFBP
UlRTCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkpTR2xvYmFs
RGF0YUAyQElWSlNWYWx1ZUAyQElAWgogICAgID9yYW5kb21OdW1iZXJAV1RGQEBZQU5YWgogICAg
ID9yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc0BEZWJ1Z2dlckBKU0NAQFFBRVhQQVZKU0dsb2JhbERh
dGFAMkBAWgotICAgID9yZWNvcmRFeHRyYUNvc3RASGVhcEBKU0NAQEFBRVhJQFoKICAgICA/cmVp
ZnlTdHJpbmdAU3RyaW5nQnVpbGRlckBXVEZAQEFBRVhYWgogICAgID9yZWxlYXNlRGVjb21taXR0
ZWRAT1NBbGxvY2F0b3JAV1RGQEBTQVhQQVhJQFoKICAgICA/cmVsZWFzZVN0YWNrQE1hcmtTdGFj
a0BKU0NAQENBWFBBWElAWgorICAgID9yZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUBIZWFw
QEpTQ0BAQUFFWElAWgogICAgID9yZXNlcnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQ
QVhJVzRVc2FnZUAxMkBfTjFAWgogICAgID9yZXNldEBQYXJzZXJBcmVuYUBKU0NAQFFBRVhYWgog
ICAgID9yZXNldEBUaW1lb3V0Q2hlY2tlckBKU0NAQFFBRVhYWgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2NDU0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcg
QEAgdm9pZCBIZWFwOjpkZXN0cm95KCkKICAgICBtX2dsb2JhbERhdGEgPSAwOwogfQogCi12b2lk
IEhlYXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3QgY29zdCkKK3ZvaWQgSGVhcDo6cmVwb3J0RXh0
cmFNZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90IGNvc3QpCiB7CiAgICAgLy8gT3VyIGZyZXF1ZW5j
eSBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gdHJpZXMgdG8gYmFsYW5jZSBtZW1vcnkgdXNlIGFnYWlu
c3Qgc3BlZWQKICAgICAvLyBieSBjb2xsZWN0aW5nIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgbmV3
bHkgY3JlYXRlZCB2YWx1ZXMuIEhvd2V2ZXIsIGZvciB2YWx1ZXMKQEAgLTkyLDcgKzkyLDcgQEAg
dm9pZCBIZWFwOjpyZWNvcmRFeHRyYUNvc3Qoc2l6ZV90IGNvc3QpCiAgICAgLy8gaWYgYSBsYXJn
ZSB2YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9uLCB0aGVyZSBpcyBub3QgbXVj
aCBwb2ludCB0bwogICAgIC8vIGNvbGxlY3RpbmcgbW9yZSBmcmVxdWVudGx5IGFzIGxvbmcgYXMg
aXQgc3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9leHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYg
bV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLnNpemUoKSAvIDIpIHsKKyAgICBpZiAobV9leHRy
YUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLmNhcGFj
aXR5KCkgLyAyKSB7CiAgICAgICAgIEpBVkFTQ1JJUFRDT1JFX0dDX0JFR0lOKCk7CiAKICAgICAg
ICAgbWFya1Jvb3RzKCk7CkBAIC0zMDIsMTQgKzMwMiwxNCBAQCBzaXplX3QgSGVhcDo6b2JqZWN0
Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX21hcmtlZFNwYWNlLm9iamVjdENvdW50KCk7CiB9
CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIEhlYXA6OnN0YXRpc3RpY3MoKSBjb25zdAorc2l6
ZV90IEhlYXA6OnNpemUoKSBjb25zdAogewotICAgIHJldHVybiBtX21hcmtlZFNwYWNlLnN0YXRp
c3RpY3MoKTsKKyAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplKCk7CiB9CiAKLXNpemVfdCBI
ZWFwOjpzaXplKCkgY29uc3QKK3NpemVfdCBIZWFwOjpjYXBhY2l0eSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fbWFya2VkU3BhY2Uuc2l6ZSgpOworICAgIHJldHVybiBtX21hcmtlZFNwYWNlLmNh
cGFjaXR5KCk7CiB9CiAKIHNpemVfdCBIZWFwOjpnbG9iYWxPYmplY3RDb3VudCgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNDUg
KzUwLDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEhlYXAgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShIZWFwKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgZGVzdHJv
eSgpOworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU1ZhbHVlKTsgLy8gMCBmb3IgaW1tZWRp
YXRlIHZhbHVlcworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAotICAgICAg
ICB2b2lkKiBhbGxvY2F0ZShzaXplX3QpOworICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJr
ZWQoY29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29u
c3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOworICAg
ICAgICAKKyAgICAgICAgSGVhcChKU0dsb2JhbERhdGEqKTsKKyAgICAgICAgfkhlYXAoKTsKKyAg
ICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIEpTR2xvYmFsRGF0YSBtdXN0IGNhbGwgZGVzdHJveSgp
IGJlZm9yZSB+SGVhcCgpLgogCi0gICAgICAgIGJvb2wgaXNCdXN5KCk7IC8vIHRydWUgaWYgYW4g
YWxsb2NhdGlvbiBvciBjb2xsZWN0aW9uIGlzIGluIHByb2dyZXNzCi0gICAgICAgIHZvaWQgY29s
bGVjdEFsbEdhcmJhZ2UoKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9nbG9iYWxEYXRhOyB9CisgICAgICAgIE1hcmtlZFNwYWNlJiBtYXJrZWRT
cGFjZSgpIHsgcmV0dXJuIG1fbWFya2VkU3BhY2U7IH0KKyAgICAgICAgTWFjaGluZVN0YWNrTWFy
a2VyJiBtYWNoaW5lU3RhY2tNYXJrZXIoKSB7IHJldHVybiBtX21hY2hpbmVTdGFja01hcmtlcjsg
fQogCiAgICAgICAgIEdDQWN0aXZpdHlDYWxsYmFjayogYWN0aXZpdHlDYWxsYmFjaygpOwogICAg
ICAgICB2b2lkIHNldEFjdGl2aXR5Q2FsbGJhY2soUGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJh
Y2s+KTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1NjsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0ICogMTAyNDsK
KyAgICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNvbGxl
Y3Rpb24gaXMgaW4gcHJvZ3Jlc3MKKyAgICAgICAgdm9pZCogYWxsb2NhdGUoc2l6ZV90KTsKKyAg
ICAgICAgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgpOwogCiAgICAgICAgIHZvaWQgcmVwb3J0RXh0
cmFNZW1vcnlDb3N0KHNpemVfdCBjb3N0KTsKIAotICAgICAgICBzaXplX3Qgb2JqZWN0Q291bnQo
KSBjb25zdDsKLSAgICAgICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcygpIGNv
bnN0OwotICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotCiAgICAgICAgIHZvaWQgcHJvdGVj
dChKU1ZhbHVlKTsKLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBubyBs
b25nZXIgcHJvdGVjdGVkIGJ5IGFueSBwcm90ZWN0IHBvaW50ZXJzCi0gICAgICAgIC8vICh0aG91
Z2ggaXQgbWF5IHN0aWxsIGJlIGFsaXZlIGR1ZSB0byBoZWFwL3N0YWNrIHJlZmVyZW5jZXMpLgot
ICAgICAgICBib29sIHVucHJvdGVjdChKU1ZhbHVlKTsKKyAgICAgICAgYm9vbCB1bnByb3RlY3Qo
SlNWYWx1ZSk7IC8vIFRydWUgd2hlbiB0aGUgcHJvdGVjdCBjb3VudCBkcm9wcyB0byAwLgogCi0g
ICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFsdWUpOyAvLyAwIGZvciBpbW1lZGlhdGUgdmFs
dWVzCi0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCopOworICAgICAgICBib29sIGNv
bnRhaW5zKHZvaWQqKTsKIAorICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OworICAgICAgICBz
aXplX3QgY2FwYWNpdHkoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IG9iamVjdENvdW50KCkgY29u
c3Q7CiAgICAgICAgIHNpemVfdCBnbG9iYWxPYmplY3RDb3VudCgpOwogICAgICAgICBzaXplX3Qg
cHJvdGVjdGVkT2JqZWN0Q291bnQoKTsKICAgICAgICAgc2l6ZV90IHByb3RlY3RlZEdsb2JhbE9i
amVjdENvdW50KCk7CiAgICAgICAgIEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqPiogcHJvdGVj
dGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgICAgICBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFy
Kj4qIG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJr
ZWQoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29u
c3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwotICAg
ICAgICAKLSAgICAgICAgYm9vbCBjb250YWlucyh2b2lkKik7Ci0KICAgICAgICAgV2Vha0dDSGFu
ZGxlKiBhZGRXZWFrR0NIYW5kbGUoSlNDZWxsKik7CiAKICAgICAgICAgdm9pZCBwdXNoVGVtcFNv
cnRWZWN0b3IoV1RGOjpWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpAQCAtOTYsMjEgKzk1LDE2
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZm
ZXIqPiYgbWFya0xpc3RTZXQoKSB7IGlmICghbV9tYXJrTGlzdFNldCkgbV9tYXJrTGlzdFNldCA9
IG5ldyBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj47IHJldHVybiAqbV9tYXJrTGlzdFNl
dDsgfQogCi0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fZ2xvYmFsRGF0YTsgfQotICAgICAgICAKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHBy
aW1hcnlIZWFwQmVnaW4oKTsKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlIZWFw
RW5kKCk7CiAgICAgICAgIAotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXImIG1hY2hpbmVTdGFj
a01hcmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFya2VyOyB9Ci0KLSAgICAgICAgTWFy
a2VkU3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQotCiAgICAg
cHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAgICAgICAgSGVh
cChKU0dsb2JhbERhdGEqKTsKLSAgICAgICAgfkhlYXAoKTsKIAotICAgICAgICB2b2lkIHJlY29y
ZEV4dHJhQ29zdChzaXplX3QpOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJh
Q29zdCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAx
MDI0ICogMTAyNDsKKworICAgICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNl
KHNpemVfdCk7CiAKICAgICAgICAgdm9pZCBtYXJrUm9vdHMoKTsKICAgICAgICAgdm9pZCBtYXJr
UHJvdGVjdGVkT2JqZWN0cyhNYXJrU3RhY2smKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBpbmxpbmUgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6
ZV90IGNvc3QpCiAgICAgewogICAgICAgICBpZiAoY29zdCA+IG1pbkV4dHJhQ29zdCkgCi0gICAg
ICAgICAgICByZWNvcmRFeHRyYUNvc3QoY29zdCk7CisgICAgICAgICAgICByZXBvcnRFeHRyYU1l
bW9yeUNvc3RTbG93Q2FzZShjb3N0KTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIFdlYWtHQ0hh
bmRsZVBvb2wqIEhlYXA6OndlYWtHQ0hhbmRsZVBvb2woc2l6ZV90IGluZGV4KQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24g
NzY0NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5NSwyMCArMjk1LDEyIEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6
b2JqZWN0Q291bnQoKSBjb25zdAogICAgICAgICAgICAtIG1faGVhcC51c2VkQmxvY2tzOyAvLyAx
IGNlbGwgcGVyIGJsb2NrIGlzIGEgZHVtbXkgc2VudGluZWwKIH0KIAotdm9pZCBNYXJrZWRTcGFj
ZTo6YWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpIGNvbnN0Ci17Ci0gICAg
c3RhdGlzdGljcy5zaXplICs9IG1faGVhcC51c2VkQmxvY2tzICogQkxPQ0tfU0laRTsKLSAgICBz
dGF0aXN0aWNzLmZyZWUgKz0gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFIC0gKG9iamVj
dENvdW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7Ci19Ci0KLU1hcmtlZFNwYWNlOjpT
dGF0aXN0aWNzIE1hcmtlZFNwYWNlOjpzdGF0aXN0aWNzKCkgY29uc3QKK3NpemVfdCBNYXJrZWRT
cGFjZTo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgU3RhdGlzdGljcyBzdGF0aXN0aWNzID0geyAwLCAw
IH07Ci0gICAgYWRkVG9TdGF0aXN0aWNzKHN0YXRpc3RpY3MpOwotICAgIHJldHVybiBzdGF0aXN0
aWNzOworICAgIHJldHVybiBvYmplY3RDb3VudCgpICogSGVhcENvbnN0YW50czo6Y2VsbFNpemU7
CiB9CiAKLXNpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CitzaXplX3QgTWFya2VkU3Bh
Y2U6OmNhcGFjaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9oZWFwLnVzZWRCbG9ja3MgKiBC
TE9DS19TSVpFOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2Vk
U3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJr
ZWRTcGFjZS5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIGNsYXNzIE1hcmtlZFNwYWNlIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTWFya2VkU3BhY2UpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RydWN0IFN0YXRp
c3RpY3MgewotICAgICAgICAgICAgc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICBzaXplX3QgZnJl
ZTsKLSAgICAgICAgfTsKLQogICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAog
ICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7CkBAIC04OCw4
ICs4Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHN3ZWVwKCk7CiAKICAgICAg
ICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IGNhcGFjaXR5KCkgY29uc3Q7
CiAgICAgICAgIHNpemVfdCBvYmplY3RDb3VudCgpIGNvbnN0OwotICAgICAgICBTdGF0aXN0aWNz
IHN0YXRpc3RpY3MoKSBjb25zdDsKIAogICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIApA
QCAtMTEzLDggKzEwOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNsZWFyTWFy
a0JpdHMoQ29sbGVjdG9yQmxvY2sqKTsKICAgICAgICAgc2l6ZV90IG1hcmtlZENlbGxzKHNpemVf
dCBzdGFydEJsb2NrID0gMCwgc2l6ZV90IHN0YXJ0Q2VsbCA9IDApIGNvbnN0OwogCi0gICAgICAg
IHZvaWQgYWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmKSBjb25zdDsKLQogICAgICAgICBDb2xs
ZWN0b3JIZWFwIG1faGVhcDsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAg
ICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3Rp
Y3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9y
eVN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSAr
MzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVh
cFN0YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21tb25HbG9iYWxEYXRhKQotewotICAgIHJldHVy
biBjb21tb25HbG9iYWxEYXRhLT5oZWFwLnN0YXRpc3RpY3MoKTsKLX0gICAgICAgIAotCiBHbG9i
YWxNZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKSAKIHsKICAgICBHbG9i
YWxNZW1vcnlTdGF0aXN0aWNzIHN0YXRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgewogICAg
IHNpemVfdCBKSVRCeXRlczsKIH07CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBTdGF0
aXN0aWNzKEpTR2xvYmFsRGF0YSogY29tbW9uR2xvYmFsRGF0YSk7CiBHbG9iYWxNZW1vcnlTdGF0
aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKTsKIAogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gNzcwMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNvbWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzM1NworICAgICAgICAKKyAgICAgICAgVXBkYXRlZCBmb3IgSmF2
YVNjcmlwdENvcmUgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUpOgor
CiAyMDExLTAxLTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R0NFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkg
KzQ1LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIFNjcmlwdEdDRXZlbnQ6OmdldEhl
YXBTaXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBzaXplX3QmIHRvdGFsSGVhcFNpemUpCiB7CiAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFs
RGF0YSgpOwotICAgIHRvdGFsSGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLnNpemUoKTsKKyAg
ICB0b3RhbEhlYXBTaXplID0gZ2xvYmFsRGF0YS0+aGVhcC5jYXBhY2l0eSgpOwogICAgIHVzZWRI
ZWFwU2l6ZSA9IHRvdGFsSGVhcFNpemU7CiB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNp
b24gNzcwNDIpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNvbWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzM1NworCisgICAgICAgIFVwZGF0ZWQgZm9yIEphdmFTY3JpcHRD
b3JlIGNoYW5nZXMuCisKKyAgICAgICAgKiBNaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tOgorICAg
ICAgICAoK1tXZWJDb3JlU3RhdGlzdGljcyBtZW1vcnlTdGF0aXN0aWNzXSk6CisKIDIwMTEtMDEt
MjcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViQ29yZVN0
YXRpc3RpY3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJDb3Jl
U3RhdGlzdGljcy5tbQkocmV2aXNpb24gNzY0NTMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9NaXNj
L1dlYkNvcmVTdGF0aXN0aWNzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsMTUgKzE5NywxNiBA
QCArIChOU0RpY3Rpb25hcnkgKiltZW1vcnlTdGF0aXN0aWNzCiAgICAgV1RGOjpGYXN0TWFsbG9j
U3RhdGlzdGljcyBmYXN0TWFsbG9jU3RhdGlzdGljcyA9IFdURjo6ZmFzdE1hbGxvY1N0YXRpc3Rp
Y3MoKTsKICAgICAKICAgICBKU0xvY2sgbG9jayhTaWxlbmNlQXNzZXJ0aW9uc09ubHkpOwotICAg
IE1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBNZW1vcnlTdGF0cyA9IGhlYXBTdGF0aXN0aWNz
KEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKSk7CisgICAgc2l6ZV90IGhlYXBTaXpl
ID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT5oZWFwLnNpemUoKTsKKyAgICBz
aXplX3QgaGVhcEZyZWUgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPmhlYXAu
Y2FwYWNpdHkoKSAtIGhlYXBTaXplOwogICAgIEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgZ2xvYmFs
TWVtb3J5U3RhdHMgPSBnbG9iYWxNZW1vcnlTdGF0aXN0aWNzKCk7CiAgICAgCiAgICAgcmV0dXJu
IFtOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3RzQW5kS2V5czoKICAgICAgICAgICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5yZXNlcnZl
ZFZNQnl0ZXNdLCBAIkZhc3RNYWxsb2NSZXNlcnZlZFZNQnl0ZXMiLAogICAgICAgICAgICAgICAg
IFtOU051bWJlciBudW1iZXJXaXRoSW50OmZhc3RNYWxsb2NTdGF0aXN0aWNzLmNvbW1pdHRlZFZN
Qnl0ZXNdLCBAIkZhc3RNYWxsb2NDb21taXR0ZWRWTUJ5dGVzIiwKICAgICAgICAgICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlzdGljcy5mcmVlTGlzdEJ5dGVz
XSwgQCJGYXN0TWFsbG9jRnJlZUxpc3RCeXRlcyIsCi0gICAgICAgICAgICAgICAgW05TTnVtYmVy
IG51bWJlcldpdGhJbnQ6aGVhcE1lbW9yeVN0YXRzLnNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6
ZSIsCi0gICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcE1lbW9yeVN0
YXRzLmZyZWVdLCBAIkphdmFTY3JpcHRGcmVlU2l6ZSIsCisgICAgICAgICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhJbnQ6aGVhcFNpemVdLCBAIkphdmFTY3JpcHRIZWFwU2l6ZSIsCisgICAg
ICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6aGVhcEZyZWVdLCBAIkphdmFTY3Jp
cHRGcmVlU2l6ZSIsCiAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25l
ZEludDoodW5zaWduZWQgaW50KWdsb2JhbE1lbW9yeVN0YXRzLnN0YWNrQnl0ZXNdLCBAIkphdmFT
Y3JpcHRTdGFja1NpemUiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoVW5z
aWduZWRJbnQ6KHVuc2lnbmVkIGludClnbG9iYWxNZW1vcnlTdGF0cy5KSVRCeXRlc10sIEAiSmF2
YVNjcmlwdEpJVFNpemUiLAogICAgICAgICAgICAgbmlsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80573</attachid>
            <date>2011-01-29 14:44:14 -0800</date>
            <delta_ts>2011-01-29 16:24:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53357-20110129144413.patch</filename>
            <type>text/plain</type>
            <size>17779</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzcwMjQpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBj
bGVhbnVwLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTMzNTcKKyAgICAgICAgCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAq
IEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6
IFVwZGF0ZWQgZXhwb3J0ZWQgc3ltYm9scy4KKworICAgICAgICAqIHJ1bnRpbWUvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNlKTogUmVu
YW1lZCByZWNvcmRFeHRyYUNvc3QgdG8gCisgICAgICAgIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNs
b3dDYXNlIHRvIG1hdGNoIG91ciBuYW1pbmcgY29udmVudGlvbnMuCisKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y2FwYWNpdHkpOiBSZW5hbWVkIHNpemUgdG8gY2FwYWNpdHkgYmVjYXVzZSB0aGlzIGZ1
bmN0aW9uCisgICAgICAgIHJldHVybnMgdGhlIGNhcGFjaXR5IG9mIHRoZSBoZWFwLCBpbmNsdWRp
bmcgdW51c2VkIHBvcnRpb25zLgorCisgICAgICAgICogcnVudGltZS9IZWFwLmg6CisgICAgICAg
IChKU0M6OkhlYXA6Omdsb2JhbERhdGEpOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrZWRTcGFj
ZSk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hY2hpbmVTdGFja01hcmtlcik6CisgICAgICAgIChK
U0M6OkhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCk6IE1vdmVkIHN0YXRpY3MgdG8gdGhlIHRv
cCBvZiB0aGUgZmlsZS4KKyAgICAgICAgTW92ZWQgY3RvciBhbmQgZHRvciB0byB0aGUgYmVnaW5u
aW5nIG9mIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBHcm91cGVkCisgICAgICAgIGZ1bmN0aW9ucyBi
eSBwdXJwb3NlLgorCisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAg
IChKU0M6Ok1hcmtlZFNwYWNlOjpjYXBhY2l0eSk6IFJlbmFtZWQgc2l6ZSB0byBjYXBhY2l0eSBi
ZWNhdXNlIHRoaXMKKyAgICAgICAgZnVuY3Rpb24gcmV0dXJucyB0aGUgY2FwYWNpdHkgb2YgdGhl
IGhlYXAsIGluY2x1ZGluZyB1bnVzZWQgcG9ydGlvbnMuCisKKyAgICAgICAgKiBydW50aW1lL01h
cmtlZFNwYWNlLmg6IFJlbW92ZWQgc3RhdGlzdGljcyBhbmQgdGhlIFN0YXRpc3RpY3MgY2xhc3Mg
YmVjYXVzZQorICAgICAgICB0aGUgc2FtZSBpbmZvcm1hdGlvbiBjYW4gYmUgZ290dGVuIGp1c3Qg
YnkgY2FsbGluZyBzaXplKCkgYW5kIGNhcGFjaXR5KCkuCisKKyAgICAgICAgKiBydW50aW1lL01l
bW9yeVN0YXRpc3RpY3MuY3BwOgorICAgICAgICAqIHJ1bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5o
OiBEaXR0by4KKwogMjAxMS0wMS0yNyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCShyZXZpc2lvbiA3Njk2MikKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3
ICsxNjYsNiBAQCBfX1pOM0pTQzE0U2FtcGxpbmdUaHJlYWQ0c3RvcEV2CiBfX1pOM0pTQzE0U2Ft
cGxpbmdUaHJlYWQ1c3RhcnRFagogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyMTBkaWRUaW1lT3V0
RVBOU185RXhlY1N0YXRlRQogX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0RXYKLV9fWk4z
SlNDMTRoZWFwU3RhdGlzdGljc0VQTlNfMTJKU0dsb2JhbERhdGFFCiBfX1pOM0pTQzE0dGhyb3dU
eXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pTQzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJr
Q2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185
RXhlY1N0YXRlRVJLTlNfN1VTdHJpbmdFCkBAIC0yMTAsNyArMjA5LDYgQEAgX19aTjNKU0MzNWNy
ZWF0ZUludGVycnVwdGVkRXhlY3V0aW9uRXhjZQogX19aTjNKU0MzTmFORQogX19aTjNKU0M0SGVh
cDE0cHJpbWFyeUhlYXBFbmRFdgogX19aTjNKU0M0SGVhcDE1YWRkV2Vha0dDSGFuZGxlRVBOU182
SlNDZWxsRQotX19aTjNKU0M0SGVhcDE1cmVjb3JkRXh0cmFDb3N0RW0KIF9fWk4zSlNDNEhlYXAx
Nm9iamVjdFR5cGVDb3VudHNFdgogX19aTjNKU0M0SGVhcDE2cHJpbWFyeUhlYXBCZWdpbkV2CiBf
X1pOM0pTQzRIZWFwMTdjb2xsZWN0QWxsR2FyYmFnZUV2CkBAIC0yMTksNiArMjE3LDcgQEAgX19a
TjNKU0M0SGVhcDE5c2V0QWN0aXZpdHlDYWxsYmFja0VOM1dURgogX19aTjNKU0M0SGVhcDIwcHJv
dGVjdGVkT2JqZWN0Q291bnRFdgogX19aTjNKU0M0SGVhcDI1cHJvdGVjdGVkT2JqZWN0VHlwZUNv
dW50c0V2CiBfX1pOM0pTQzRIZWFwMjZwcm90ZWN0ZWRHbG9iYWxPYmplY3RDb3VudEV2CitfX1pO
M0pTQzRIZWFwMjlyZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUVtCiBfX1pOM0pTQzRIZWFw
NmlzQnVzeUV2CiBfX1pOM0pTQzRIZWFwN2Rlc3Ryb3lFdgogX19aTjNKU0M0SGVhcDdwcm90ZWN0
RU5TXzdKU1ZhbHVlRQpAQCAtNTE5LDkgKzUxOCw5IEBAIF9fWk5LM0pTQzE4UHJvcGVydHlEZXNj
cmlwdG9yNnNldHRlckV2CiBfX1pOSzNKU0MxOFByb3BlcnR5RGVzY3JpcHRvcjh3cml0YWJsZUV2
CiBfX1pOSzNKU0MxOVNvdXJjZVByb3ZpZGVyQ2FjaGU4Ynl0ZVNpemVFdgogX19aTkszSlNDMjRK
U09iamVjdFdpdGhHbG9iYWxPYmplY3QxMmdsb2JhbE9iamVjdEV2Ci1fX1pOSzNKU0M0SGVhcDEw
c3RhdGlzdGljc0V2CiBfX1pOSzNKU0M0SGVhcDExb2JqZWN0Q291bnRFdgogX19aTkszSlNDNEhl
YXA0c2l6ZUV2CitfX1pOSzNKU0M0SGVhcDhjYXBhY2l0eUV2CiBfX1pOSzNKU0M2SlNDZWxsMTF0
b1ByaW1pdGl2ZUVQTlNfOUV4ZWNTdGF0ZUVOU18yMlByZWZlcnJlZFByaW1pdGl2ZVR5cGVFCiBf
X1pOSzNKU0M2SlNDZWxsMTJ0b1RoaXNPYmplY3RFUE5TXzlFeGVjU3RhdGVFCiBfX1pOSzNKU0M2
SlNDZWxsMTRpc0dldHRlclNldHRlckV2CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gNzY5NjIpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksNyBAQCBFWFBPUlRT
CiAgICAgP2NhbGxPbk1haW5UaHJlYWRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FsbE9u
TWFpblRocmVhZEFuZFdhaXRAV1RGQEBZQVhQNkFYUEFYQFowQFoKICAgICA/Y2FuY2VsQ2FsbE9u
TWFpblRocmVhZEBXVEZAQFlBWFA2QVhQQVhAWjBAWgorICAgID9jYXBhY2l0eUBIZWFwQEpTQ0BA
UUJFSVhaCiAgICAgP2NoYW5nZVByb3RvdHlwZVRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0E/
QVY/JFBhc3NSZWZQdHJAVlN0cnVjdHVyZUBKU0NAQEBXVEZAQFBBVjEyQFZKU1ZhbHVlQDJAQFoK
ICAgICA/Y2hlY2tDdXJyZW50SWRlbnRpZmllclRhYmxlQElkZW50aWZpZXJASlNDQEBDQVhQQVZF
eGVjU3RhdGVAMkBAWgogICAgID9jaGVja0N1cnJlbnRJZGVudGlmaWVyVGFibGVASWRlbnRpZmll
ckBKU0NAQENBWFBBVkpTR2xvYmFsRGF0YUAyQEBaCkBAIC0yNjYsMTAgKzI2NywxMCBAQCBFWFBP
UlRTCiAgICAgP3B1dFdpdGhBdHRyaWJ1dGVzQEpTT2JqZWN0QEpTQ0BAVUFFWFBBVkpTR2xvYmFs
RGF0YUAyQElWSlNWYWx1ZUAyQElAWgogICAgID9yYW5kb21OdW1iZXJAV1RGQEBZQU5YWgogICAg
ID9yZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc0BEZWJ1Z2dlckBKU0NAQFFBRVhQQVZKU0dsb2JhbERh
dGFAMkBAWgotICAgID9yZWNvcmRFeHRyYUNvc3RASGVhcEBKU0NAQEFBRVhJQFoKICAgICA/cmVp
ZnlTdHJpbmdAU3RyaW5nQnVpbGRlckBXVEZAQEFBRVhYWgogICAgID9yZWxlYXNlRGVjb21taXR0
ZWRAT1NBbGxvY2F0b3JAV1RGQEBTQVhQQVhJQFoKICAgICA/cmVsZWFzZVN0YWNrQE1hcmtTdGFj
a0BKU0NAQENBWFBBWElAWgorICAgID9yZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZUBIZWFw
QEpTQ0BAQUFFWElAWgogICAgID9yZXNlcnZlQW5kQ29tbWl0QE9TQWxsb2NhdG9yQFdURkBAU0FQ
QVhJVzRVc2FnZUAxMkBfTjFAWgogICAgID9yZXNldEBQYXJzZXJBcmVuYUBKU0NAQFFBRVhYWgog
ICAgID9yZXNldEBUaW1lb3V0Q2hlY2tlckBKU0NAQFFBRVhYWgpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2NDU0KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcg
QEAgdm9pZCBIZWFwOjpkZXN0cm95KCkKICAgICBtX2dsb2JhbERhdGEgPSAwOwogfQogCi12b2lk
IEhlYXA6OnJlY29yZEV4dHJhQ29zdChzaXplX3QgY29zdCkKK3ZvaWQgSGVhcDo6cmVwb3J0RXh0
cmFNZW1vcnlDb3N0U2xvd0Nhc2Uoc2l6ZV90IGNvc3QpCiB7CiAgICAgLy8gT3VyIGZyZXF1ZW5j
eSBvZiBnYXJiYWdlIGNvbGxlY3Rpb24gdHJpZXMgdG8gYmFsYW5jZSBtZW1vcnkgdXNlIGFnYWlu
c3Qgc3BlZWQKICAgICAvLyBieSBjb2xsZWN0aW5nIGJhc2VkIG9uIHRoZSBudW1iZXIgb2YgbmV3
bHkgY3JlYXRlZCB2YWx1ZXMuIEhvd2V2ZXIsIGZvciB2YWx1ZXMKQEAgLTkyLDcgKzkyLDcgQEAg
dm9pZCBIZWFwOjpyZWNvcmRFeHRyYUNvc3Qoc2l6ZV90IGNvc3QpCiAgICAgLy8gaWYgYSBsYXJn
ZSB2YWx1ZSBzdXJ2aXZlcyBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9uLCB0aGVyZSBpcyBub3QgbXVj
aCBwb2ludCB0bwogICAgIC8vIGNvbGxlY3RpbmcgbW9yZSBmcmVxdWVudGx5IGFzIGxvbmcgYXMg
aXQgc3RheXMgYWxpdmUuCiAKLSAgICBpZiAobV9leHRyYUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYg
bV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLnNpemUoKSAvIDIpIHsKKyAgICBpZiAobV9leHRy
YUNvc3QgPiBtYXhFeHRyYUNvc3QgJiYgbV9leHRyYUNvc3QgPiBtX21hcmtlZFNwYWNlLmNhcGFj
aXR5KCkgLyAyKSB7CiAgICAgICAgIEpBVkFTQ1JJUFRDT1JFX0dDX0JFR0lOKCk7CiAKICAgICAg
ICAgbWFya1Jvb3RzKCk7CkBAIC0zMDIsMTQgKzMwMiwxNCBAQCBzaXplX3QgSGVhcDo6b2JqZWN0
Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX21hcmtlZFNwYWNlLm9iamVjdENvdW50KCk7CiB9
CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIEhlYXA6OnN0YXRpc3RpY3MoKSBjb25zdAorc2l6
ZV90IEhlYXA6OnNpemUoKSBjb25zdAogewotICAgIHJldHVybiBtX21hcmtlZFNwYWNlLnN0YXRp
c3RpY3MoKTsKKyAgICByZXR1cm4gbV9tYXJrZWRTcGFjZS5zaXplKCk7CiB9CiAKLXNpemVfdCBI
ZWFwOjpzaXplKCkgY29uc3QKK3NpemVfdCBIZWFwOjpjYXBhY2l0eSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fbWFya2VkU3BhY2Uuc2l6ZSgpOworICAgIHJldHVybiBtX21hcmtlZFNwYWNlLmNh
cGFjaXR5KCk7CiB9CiAKIHNpemVfdCBIZWFwOjpnbG9iYWxPYmplY3RDb3VudCgpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsNDUg
KzUwLDQ0IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEhlYXAgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShIZWFwKTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHZvaWQgZGVzdHJv
eSgpOworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU1ZhbHVlKTsgLy8gMCBmb3IgaW1tZWRp
YXRlIHZhbHVlcworICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAotICAgICAg
ICB2b2lkKiBhbGxvY2F0ZShzaXplX3QpOworICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJr
ZWQoY29uc3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29u
c3QgSlNDZWxsKik7CisgICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOworICAg
ICAgICAKKyAgICAgICAgSGVhcChKU0dsb2JhbERhdGEqKTsKKyAgICAgICAgfkhlYXAoKTsKKyAg
ICAgICAgdm9pZCBkZXN0cm95KCk7IC8vIEpTR2xvYmFsRGF0YSBtdXN0IGNhbGwgZGVzdHJveSgp
IGJlZm9yZSB+SGVhcCgpLgogCi0gICAgICAgIGJvb2wgaXNCdXN5KCk7IC8vIHRydWUgaWYgYW4g
YWxsb2NhdGlvbiBvciBjb2xsZWN0aW9uIGlzIGluIHByb2dyZXNzCi0gICAgICAgIHZvaWQgY29s
bGVjdEFsbEdhcmJhZ2UoKTsKKyAgICAgICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9nbG9iYWxEYXRhOyB9CisgICAgICAgIE1hcmtlZFNwYWNlJiBtYXJrZWRT
cGFjZSgpIHsgcmV0dXJuIG1fbWFya2VkU3BhY2U7IH0KKyAgICAgICAgTWFjaGluZVN0YWNrTWFy
a2VyJiBtYWNoaW5lU3RhY2tNYXJrZXIoKSB7IHJldHVybiBtX21hY2hpbmVTdGFja01hcmtlcjsg
fQogCiAgICAgICAgIEdDQWN0aXZpdHlDYWxsYmFjayogYWN0aXZpdHlDYWxsYmFjaygpOwogICAg
ICAgICB2b2lkIHNldEFjdGl2aXR5Q2FsbGJhY2soUGFzc093blB0cjxHQ0FjdGl2aXR5Q2FsbGJh
Y2s+KTsKIAotICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJhQ29zdCA9IDI1NjsK
LSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAxMDI0ICogMTAyNDsK
KyAgICAgICAgYm9vbCBpc0J1c3koKTsgLy8gdHJ1ZSBpZiBhbiBhbGxvY2F0aW9uIG9yIGNvbGxl
Y3Rpb24gaXMgaW4gcHJvZ3Jlc3MKKyAgICAgICAgdm9pZCogYWxsb2NhdGUoc2l6ZV90KTsKKyAg
ICAgICAgdm9pZCBjb2xsZWN0QWxsR2FyYmFnZSgpOwogCiAgICAgICAgIHZvaWQgcmVwb3J0RXh0
cmFNZW1vcnlDb3N0KHNpemVfdCBjb3N0KTsKIAotICAgICAgICBzaXplX3Qgb2JqZWN0Q291bnQo
KSBjb25zdDsKLSAgICAgICAgTWFya2VkU3BhY2U6OlN0YXRpc3RpY3Mgc3RhdGlzdGljcygpIGNv
bnN0OwotICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OwotCiAgICAgICAgIHZvaWQgcHJvdGVj
dChKU1ZhbHVlKTsKLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB2YWx1ZSBpcyBubyBs
b25nZXIgcHJvdGVjdGVkIGJ5IGFueSBwcm90ZWN0IHBvaW50ZXJzCi0gICAgICAgIC8vICh0aG91
Z2ggaXQgbWF5IHN0aWxsIGJlIGFsaXZlIGR1ZSB0byBoZWFwL3N0YWNrIHJlZmVyZW5jZXMpLgot
ICAgICAgICBib29sIHVucHJvdGVjdChKU1ZhbHVlKTsKKyAgICAgICAgYm9vbCB1bnByb3RlY3Qo
SlNWYWx1ZSk7IC8vIFRydWUgd2hlbiB0aGUgcHJvdGVjdCBjb3VudCBkcm9wcyB0byAwLgogCi0g
ICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTVmFsdWUpOyAvLyAwIGZvciBpbW1lZGlhdGUgdmFs
dWVzCi0gICAgICAgIHN0YXRpYyBIZWFwKiBoZWFwKEpTQ2VsbCopOworICAgICAgICBib29sIGNv
bnRhaW5zKHZvaWQqKTsKIAorICAgICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0OworICAgICAgICBz
aXplX3QgY2FwYWNpdHkoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IG9iamVjdENvdW50KCkgY29u
c3Q7CiAgICAgICAgIHNpemVfdCBnbG9iYWxPYmplY3RDb3VudCgpOwogICAgICAgICBzaXplX3Qg
cHJvdGVjdGVkT2JqZWN0Q291bnQoKTsKICAgICAgICAgc2l6ZV90IHByb3RlY3RlZEdsb2JhbE9i
amVjdENvdW50KCk7CiAgICAgICAgIEhhc2hDb3VudGVkU2V0PGNvbnN0IGNoYXIqPiogcHJvdGVj
dGVkT2JqZWN0VHlwZUNvdW50cygpOwogICAgICAgICBIYXNoQ291bnRlZFNldDxjb25zdCBjaGFy
Kj4qIG9iamVjdFR5cGVDb3VudHMoKTsKIAotICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJr
ZWQoY29uc3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyBib29sIGNoZWNrTWFya0NlbGwoY29u
c3QgSlNDZWxsKik7Ci0gICAgICAgIHN0YXRpYyB2b2lkIG1hcmtDZWxsKEpTQ2VsbCopOwotICAg
ICAgICAKLSAgICAgICAgYm9vbCBjb250YWlucyh2b2lkKik7Ci0KICAgICAgICAgV2Vha0dDSGFu
ZGxlKiBhZGRXZWFrR0NIYW5kbGUoSlNDZWxsKik7CiAKICAgICAgICAgdm9pZCBwdXNoVGVtcFNv
cnRWZWN0b3IoV1RGOjpWZWN0b3I8VmFsdWVTdHJpbmdQYWlyPiopOwpAQCAtOTYsMjEgKzk1LDE2
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEhhc2hTZXQ8TWFya2VkQXJndW1lbnRCdWZm
ZXIqPiYgbWFya0xpc3RTZXQoKSB7IGlmICghbV9tYXJrTGlzdFNldCkgbV9tYXJrTGlzdFNldCA9
IG5ldyBIYXNoU2V0PE1hcmtlZEFyZ3VtZW50QnVmZmVyKj47IHJldHVybiAqbV9tYXJrTGlzdFNl
dDsgfQogCi0gICAgICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIGNvbnN0IHsgcmV0dXJu
IG1fZ2xvYmFsRGF0YTsgfQotICAgICAgICAKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHBy
aW1hcnlIZWFwQmVnaW4oKTsKICAgICAgICAgTGl2ZU9iamVjdEl0ZXJhdG9yIHByaW1hcnlIZWFw
RW5kKCk7CiAgICAgICAgIAotICAgICAgICBNYWNoaW5lU3RhY2tNYXJrZXImIG1hY2hpbmVTdGFj
a01hcmtlcigpIHsgcmV0dXJuIG1fbWFjaGluZVN0YWNrTWFya2VyOyB9Ci0KLSAgICAgICAgTWFy
a2VkU3BhY2UmIG1hcmtlZFNwYWNlKCkgeyByZXR1cm4gbV9tYXJrZWRTcGFjZTsgfQotCiAgICAg
cHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNzIEpTR2xvYmFsRGF0YTsKLSAgICAgICAgSGVh
cChKU0dsb2JhbERhdGEqKTsKLSAgICAgICAgfkhlYXAoKTsKIAotICAgICAgICB2b2lkIHJlY29y
ZEV4dHJhQ29zdChzaXplX3QpOworICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1pbkV4dHJh
Q29zdCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhFeHRyYUNvc3QgPSAx
MDI0ICogMTAyNDsKKworICAgICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdFNsb3dDYXNl
KHNpemVfdCk7CiAKICAgICAgICAgdm9pZCBtYXJrUm9vdHMoKTsKICAgICAgICAgdm9pZCBtYXJr
UHJvdGVjdGVkT2JqZWN0cyhNYXJrU3RhY2smKTsKQEAgLTE2Myw3ICsxNTcsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBpbmxpbmUgdm9pZCBIZWFwOjpyZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc2l6
ZV90IGNvc3QpCiAgICAgewogICAgICAgICBpZiAoY29zdCA+IG1pbkV4dHJhQ29zdCkgCi0gICAg
ICAgICAgICByZWNvcmRFeHRyYUNvc3QoY29zdCk7CisgICAgICAgICAgICByZXBvcnRFeHRyYU1l
bW9yeUNvc3RTbG93Q2FzZShjb3N0KTsKICAgICB9CiAgICAgCiAgICAgaW5saW5lIFdlYWtHQ0hh
bmRsZVBvb2wqIEhlYXA6OndlYWtHQ0hhbmRsZVBvb2woc2l6ZV90IGluZGV4KQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24g
NzY0NTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5NSwyMCArMjk1LDEyIEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6
b2JqZWN0Q291bnQoKSBjb25zdAogICAgICAgICAgICAtIG1faGVhcC51c2VkQmxvY2tzOyAvLyAx
IGNlbGwgcGVyIGJsb2NrIGlzIGEgZHVtbXkgc2VudGluZWwKIH0KIAotdm9pZCBNYXJrZWRTcGFj
ZTo6YWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmIHN0YXRpc3RpY3MpIGNvbnN0Ci17Ci0gICAg
c3RhdGlzdGljcy5zaXplICs9IG1faGVhcC51c2VkQmxvY2tzICogQkxPQ0tfU0laRTsKLSAgICBz
dGF0aXN0aWNzLmZyZWUgKz0gbV9oZWFwLnVzZWRCbG9ja3MgKiBCTE9DS19TSVpFIC0gKG9iamVj
dENvdW50KCkgKiBIZWFwQ29uc3RhbnRzOjpjZWxsU2l6ZSk7Ci19Ci0KLU1hcmtlZFNwYWNlOjpT
dGF0aXN0aWNzIE1hcmtlZFNwYWNlOjpzdGF0aXN0aWNzKCkgY29uc3QKK3NpemVfdCBNYXJrZWRT
cGFjZTo6c2l6ZSgpIGNvbnN0CiB7Ci0gICAgU3RhdGlzdGljcyBzdGF0aXN0aWNzID0geyAwLCAw
IH07Ci0gICAgYWRkVG9TdGF0aXN0aWNzKHN0YXRpc3RpY3MpOwotICAgIHJldHVybiBzdGF0aXN0
aWNzOworICAgIHJldHVybiBvYmplY3RDb3VudCgpICogSGVhcENvbnN0YW50czo6Y2VsbFNpemU7
CiB9CiAKLXNpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0CitzaXplX3QgTWFya2VkU3Bh
Y2U6OmNhcGFjaXR5KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9oZWFwLnVzZWRCbG9ja3MgKiBC
TE9DS19TSVpFOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2Vk
U3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJr
ZWRTcGFjZS5oCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCw2IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIGNsYXNzIE1hcmtlZFNwYWNlIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTWFya2VkU3BhY2UpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RydWN0IFN0YXRp
c3RpY3MgewotICAgICAgICAgICAgc2l6ZV90IHNpemU7Ci0gICAgICAgICAgICBzaXplX3QgZnJl
ZTsKLSAgICAgICAgfTsKLQogICAgICAgICBzdGF0aWMgSGVhcCogaGVhcChKU0NlbGwqKTsKIAog
ICAgICAgICBzdGF0aWMgYm9vbCBpc0NlbGxNYXJrZWQoY29uc3QgSlNDZWxsKik7CkBAIC04OCw4
ICs4Myw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIHN3ZWVwKCk7CiAKICAgICAg
ICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAgICAgICAgc2l6ZV90IGNhcGFjaXR5KCkgY29uc3Q7
CiAgICAgICAgIHNpemVfdCBvYmplY3RDb3VudCgpIGNvbnN0OwotICAgICAgICBTdGF0aXN0aWNz
IHN0YXRpc3RpY3MoKSBjb25zdDsKIAogICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIApA
QCAtMTEzLDggKzEwOCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGNsZWFyTWFy
a0JpdHMoQ29sbGVjdG9yQmxvY2sqKTsKICAgICAgICAgc2l6ZV90IG1hcmtlZENlbGxzKHNpemVf
dCBzdGFydEJsb2NrID0gMCwgc2l6ZV90IHN0YXJ0Q2VsbCA9IDApIGNvbnN0OwogCi0gICAgICAg
IHZvaWQgYWRkVG9TdGF0aXN0aWNzKFN0YXRpc3RpY3MmKSBjb25zdDsKLQogICAgICAgICBDb2xs
ZWN0b3JIZWFwIG1faGVhcDsKICAgICAgICAgSlNHbG9iYWxEYXRhKiBtX2dsb2JhbERhdGE7CiAg
ICAgfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3Rp
Y3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01lbW9y
eVN0YXRpc3RpY3MuY3BwCShyZXZpc2lvbiA3NjQ1MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSAr
MzIsNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotTWFya2VkU3BhY2U6OlN0YXRpc3RpY3MgaGVh
cFN0YXRpc3RpY3MoSlNHbG9iYWxEYXRhKiBjb21tb25HbG9iYWxEYXRhKQotewotICAgIHJldHVy
biBjb21tb25HbG9iYWxEYXRhLT5oZWFwLnN0YXRpc3RpY3MoKTsKLX0gICAgICAgIAotCiBHbG9i
YWxNZW1vcnlTdGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKSAKIHsKICAgICBHbG9i
YWxNZW1vcnlTdGF0aXN0aWNzIHN0YXRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWVtb3J5U3RhdGlzdGljcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01lbW9yeVN0YXRpc3RpY3MuaAkocmV2aXNpb24gNzY0NTMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NZW1vcnlTdGF0aXN0aWNzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDYgQEAgc3RydWN0IEdsb2JhbE1lbW9yeVN0YXRpc3RpY3MgewogICAg
IHNpemVfdCBKSVRCeXRlczsKIH07CiAKLU1hcmtlZFNwYWNlOjpTdGF0aXN0aWNzIGhlYXBTdGF0
aXN0aWNzKEpTR2xvYmFsRGF0YSogY29tbW9uR2xvYmFsRGF0YSk7CiBHbG9iYWxNZW1vcnlTdGF0
aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRpc3RpY3MoKTsKIAogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gNzcwMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNSBAQAorMjAxMS0wMS0yOCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFNvbWUgbW9yZSBIZWFwIGNsZWFudXAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzM1NworICAgICAgICAKKyAgICAgICAgVXBkYXRlZCBmb3IgSmF2
YVNjcmlwdENvcmUgY2hhbmdlcy4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUpOgor
CiAyMDExLTAxLTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0R0NFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkg
KzQ1LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB2b2lkIFNjcmlwdEdDRXZlbnQ6OmdldEhl
YXBTaXplKHNpemVfdCYgdXNlZEhlYXBTaXplLCBzaXplX3QmIHRvdGFsSGVhcFNpemUpCiB7CiAg
ICAgSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xvYmFs
RGF0YSgpOwotICAgIHRvdGFsSGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLnNpemUoKTsKKyAg
ICB0b3RhbEhlYXBTaXplID0gZ2xvYmFsRGF0YS0+aGVhcC5jYXBhY2l0eSgpOwogICAgIHVzZWRI
ZWFwU2l6ZSA9IHRvdGFsSGVhcFNpemU7CiB9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vICFFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCShyZXZpc2lvbiA3NjQ1MykKKysr
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTExNSw5ICsxMTUsOCBAQCBXZWJNZW1vcnlTdGF0aXN0aWNzIFdlYk1lbW9y
eVNhbXBsZXI6OnNhCiAgICAgdG90YWxCeXRlc0NvbW1pdHRlZCArPSBmYXN0TWFsbG9jQnl0ZXND
b21taXR0ZWQ7CiAgICAgCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2VydGlvbnNPbmx5KTsK
LSAgICBNYXJrZWRTcGFjZTo6U3RhdGlzdGljcyBoZWFwTWVtb3J5U3RhdHMgPSBoZWFwU3RhdGlz
dGljcyhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOwotICAgIHNpemVfdCBqc2NI
ZWFwQnl0ZXNJblVzZSA9IGhlYXBNZW1vcnlTdGF0cy5zaXplIC0gaGVhcE1lbW9yeVN0YXRzLmZy
ZWU7Ci0gICAgc2l6ZV90IGpzY0hlYXBCeXRlc0NvbW1pdHRlZCA9IGhlYXBNZW1vcnlTdGF0cy5z
aXplOworICAgIHNpemVfdCBqc2NIZWFwQnl0ZXNJblVzZSA9IEpTRE9NV2luZG93Ojpjb21tb25K
U0dsb2JhbERhdGEoKS0+aGVhcC5zaXplKCk7CisgICAgc2l6ZV90IGpzY0hlYXBCeXRlc0NvbW1p
dHRlZCA9IEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVhcC5jYXBhY2l0eSgp
OwogICAgIHRvdGFsQnl0ZXNJblVzZSArPSBqc2NIZWFwQnl0ZXNJblVzZTsKICAgICB0b3RhbEJ5
dGVzQ29tbWl0dGVkICs9IGpzY0hlYXBCeXRlc0NvbW1pdHRlZDsKICAgICAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDc3MDQyKQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDEtMjggIEdlb2ZmcmV5IEdh
cmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBTb21lIG1vcmUgSGVhcCBjbGVhbnVwLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMzNTcKKworICAgICAgICBVcGRhdGVk
IGZvciBKYXZhU2NyaXB0Q29yZSBjaGFuZ2VzLgorCisgICAgICAgICogTWlzYy9XZWJDb3JlU3Rh
dGlzdGljcy5tbToKKyAgICAgICAgKCtbV2ViQ29yZVN0YXRpc3RpY3MgbWVtb3J5U3RhdGlzdGlj
c10pOgorCiAyMDExLTAxLTI3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYkNvcmVTdGF0aXN0aWNzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL01pc2MvV2ViQ29yZVN0YXRpc3RpY3MubW0JKHJldmlzaW9uIDc2NDUzKQorKysgU291cmNl
L1dlYktpdC9tYWMvTWlzYy9XZWJDb3JlU3RhdGlzdGljcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTk3LDE1ICsxOTcsMTYgQEAgKyAoTlNEaWN0aW9uYXJ5ICopbWVtb3J5U3RhdGlzdGljcwogICAg
IFdURjo6RmFzdE1hbGxvY1N0YXRpc3RpY3MgZmFzdE1hbGxvY1N0YXRpc3RpY3MgPSBXVEY6OmZh
c3RNYWxsb2NTdGF0aXN0aWNzKCk7CiAgICAgCiAgICAgSlNMb2NrIGxvY2soU2lsZW5jZUFzc2Vy
dGlvbnNPbmx5KTsKLSAgICBNYXJrZWRTcGFjZTo6U3RhdGlzdGljcyBoZWFwTWVtb3J5U3RhdHMg
PSBoZWFwU3RhdGlzdGljcyhKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCkpOworICAg
IHNpemVfdCBoZWFwU2l6ZSA9IEpTRE9NV2luZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKS0+aGVh
cC5zaXplKCk7CisgICAgc2l6ZV90IGhlYXBGcmVlID0gSlNET01XaW5kb3c6OmNvbW1vbkpTR2xv
YmFsRGF0YSgpLT5oZWFwLmNhcGFjaXR5KCkgLSBoZWFwU2l6ZTsKICAgICBHbG9iYWxNZW1vcnlT
dGF0aXN0aWNzIGdsb2JhbE1lbW9yeVN0YXRzID0gZ2xvYmFsTWVtb3J5U3RhdGlzdGljcygpOwog
ICAgIAogICAgIHJldHVybiBbTlNEaWN0aW9uYXJ5IGRpY3Rpb25hcnlXaXRoT2JqZWN0c0FuZEtl
eXM6CiAgICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6ZmFzdE1hbGxvY1N0
YXRpc3RpY3MucmVzZXJ2ZWRWTUJ5dGVzXSwgQCJGYXN0TWFsbG9jUmVzZXJ2ZWRWTUJ5dGVzIiwK
ICAgICAgICAgICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpmYXN0TWFsbG9jU3RhdGlz
dGljcy5jb21taXR0ZWRWTUJ5dGVzXSwgQCJGYXN0TWFsbG9jQ29tbWl0dGVkVk1CeXRlcyIsCiAg
ICAgICAgICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6ZmFzdE1hbGxvY1N0YXRpc3Rp
Y3MuZnJlZUxpc3RCeXRlc10sIEAiRmFzdE1hbGxvY0ZyZWVMaXN0Qnl0ZXMiLAotICAgICAgICAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmhlYXBNZW1vcnlTdGF0cy5zaXplXSwgQCJK
YXZhU2NyaXB0SGVhcFNpemUiLAotICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
SW50OmhlYXBNZW1vcnlTdGF0cy5mcmVlXSwgQCJKYXZhU2NyaXB0RnJlZVNpemUiLAorICAgICAg
ICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmhlYXBTaXplXSwgQCJKYXZhU2NyaXB0
SGVhcFNpemUiLAorICAgICAgICAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OmhlYXBG
cmVlXSwgQCJKYXZhU2NyaXB0RnJlZVNpemUiLAogICAgICAgICAgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoVW5zaWduZWRJbnQ6KHVuc2lnbmVkIGludClnbG9iYWxNZW1vcnlTdGF0cy5zdGFj
a0J5dGVzXSwgQCJKYXZhU2NyaXB0U3RhY2tTaXplIiwKICAgICAgICAgICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50Oih1bnNpZ25lZCBpbnQpZ2xvYmFsTWVtb3J5U3RhdHMu
SklUQnl0ZXNdLCBAIkphdmFTY3JpcHRKSVRTaXplIiwKICAgICAgICAgICAgIG5pbF07Cg==
</data>
<flag name="review"
          id="72067"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>