<?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>52946</bug_id>
          
          <creation_ts>2011-01-21 19:51:13 -0800</creation_ts>
          <short_desc>Cleaned up some conservative marking code.</short_desc>
          <delta_ts>2011-01-22 12:11:35 -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>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>338480</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-21 19:51:13 -0800</bug_when>
    <thetext>Cleaned up some conservative marking code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338484</commentid>
    <comment_count>1</comment_count>
      <attachid>79819</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-21 19:59:54 -0800</bug_when>
    <thetext>Created attachment 79819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338485</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-21 20:01:13 -0800</bug_when>
    <thetext>Attachment 79819 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/runtime/MachineStackMarker.cpp:402:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/JavaScriptCore/runtime/MarkedSpace.h:222:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/JavaScriptCore/runtime/MarkedSpace.h:226:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 3 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338489</commentid>
    <comment_count>3</comment_count>
      <attachid>79819</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-21 20:18:33 -0800</bug_when>
    <thetext>Comment on attachment 79819
Patch

r=me

Up to you whether to obey the style checker&apos;s requests here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338491</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-21 20:27:27 -0800</bug_when>
    <thetext>Committed r76425: &lt;http://trac.webkit.org/changeset/76425&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338520</commentid>
    <comment_count>5</comment_count>
      <attachid>79829</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-21 22:41:30 -0800</bug_when>
    <thetext>Created attachment 79829
follow-up patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338521</commentid>
    <comment_count>6</comment_count>
      <attachid>79829</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-21 22:41:53 -0800</bug_when>
    <thetext>Comment on attachment 79829
follow-up patch

rs=maciej</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338608</commentid>
    <comment_count>7</comment_count>
      <attachid>79849</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-22 10:54:30 -0800</bug_when>
    <thetext>Created attachment 79849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338609</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-22 10:57:47 -0800</bug_when>
    <thetext>Addressing another set of review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338612</commentid>
    <comment_count>9</comment_count>
      <attachid>79850</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-22 10:59:20 -0800</bug_when>
    <thetext>Created attachment 79850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338621</commentid>
    <comment_count>10</comment_count>
      <attachid>79850</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-22 12:10:39 -0800</bug_when>
    <thetext>Comment on attachment 79850
Patch

rs=maciej</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>338622</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-01-22 12:11:35 -0800</bug_when>
    <thetext>Committed r76454: &lt;http://trac.webkit.org/changeset/76454&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79819</attachid>
            <date>2011-01-21 19:59:54 -0800</date>
            <delta_ts>2011-01-22 10:54:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52946-20110121195952.patch</filename>
            <type>text/plain</type>
            <size>16404</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY0MjMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDggQEAK
KzIwMTEtMDEtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGVhbmVkIHVwIHNvbWUg
Y29uc2VydmF0aXZlIG1hcmtpbmcgY29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyOTQ2CisgICAgICAgIAorICAgICAgICBTdW5TcGlkZXIgcmVw
b3J0cyBubyBjaGFuZ2UuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUuaDog
Tm8gbmVlZCBmb3IgYSBzcGVjaWFsIG1hcmtpbmcgZnVuY3Rpb24sCisgICAgICAgIHNpbmNlIHdl
IGFscmVhZHkgZXhwb3NlIGEgc3RhcnQoKSBhbmQgZW5kKCkuCisKKyAgICAgICAgKiBydW50aW1l
L0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjpyZWdpc3RlckZpbGUpOgorICAgICAgICAo
SlNDOjpIZWFwOjptYXJrUm9vdHMpOgorICAgICAgICAqIHJ1bnRpbWUvSGVhcC5oOgorICAgICAg
ICAoSlNDOjpIZWFwOjpjb250YWlucyk6IE1pZ3JhdGVkIG1hcmtDb25zZXJ2YXRpdmVseSgpIHRv
IHRoZSBtYWNoaW5lIHN0YWNrCisgICAgICAgIG1hcmtlciBjbGFzcy4gTm93LCBIZWFwIGp1c3Qg
cHJvdmlkZXMgYSBjb250YWlucygpIGZ1bmN0aW9uLCB3aGljaCB0aGUKKyAgICAgICAgbWFjaGlu
ZSBzdGFjayBtYXJrZXIgdXNlcyBmb3IgY2hlY2tpbmcgd2hldGhlciBhIHBvaW50ZXIgcG9pbnRz
IGludG8gdGhlIGhlYXAuCisKKyAgICAgICAgKiBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5j
cHA6CisgICAgICAgIChKU0M6Ok1hY2hpbmVTdGFja01hcmtlcjo6bWFya0N1cnJlbnRUaHJlYWRD
b25zZXJ2YXRpdmVseUludGVybmFsKToKKyAgICAgICAgKEpTQzo6TWFjaGluZVN0YWNrTWFya2Vy
OjptYXJrT3RoZXJUaHJlYWRDb25zZXJ2YXRpdmVseSk6CisgICAgICAgIChKU0M6OmlzUG9pbnRl
ckFsaWduZWQpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtDb25zZXJ2
YXRpdmVseSk6CisgICAgICAgICogcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuaDogTW92ZSB0
aGUgY29uc2VydmF0aXZlIG1hcmtpbmcgY29kZSBoZXJlLgorCisgICAgICAgICogcnVudGltZS9N
YXJrU3RhY2suaDoKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlU2V0OjphZGQpOgorICAgICAg
ICAoSlNDOjpDb25zZXJ2YXRpdmVTZXQ6Om1hcmspOiBDaGFuZ2VkIHRvIHVzaW5nIGEgdmVjdG9y
IGluc3RlYWQgb2YgaGFzaAorICAgICAgICBzZXQuIFZlY3RvciBzZWVtcyB0byBiZSBhIGJpdCBm
YXN0ZXIsIGFuZCBpdCBnZW5lcmF0ZXMgc21hbGxlciBjb2RlLgorCisgICAgICAgICogcnVudGlt
ZS9NYXJrZWRTcGFjZS5jcHA6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpjb250YWluc1Ns
b3dDYXNlKToKKyAgICAgICAgKiBydW50aW1lL01hcmtlZFNwYWNlLmg6CisgICAgICAgIChKU0M6
Ok1hcmtlZFNwYWNlOjppc0NlbGxBbGlnbmVkKToKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6
OmlzUG9zc2libGVDZWxsKToKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmNvbnRhaW5zKTog
S2VwdCB0aGUgY29kZSBmb3IgZGV0ZXJtaW5pbmcgd2hldGhlciBhCisgICAgICAgIHBvaW50ZXIg
cG9pbnRlZCBpbnRvIG1hcmtlZCBzcGFjZSwgYW5kIG1vdmVkIHRoZSBjb2RlIGZvciBtYXJraW5n
CisgICAgICAgIGEgc2V0IG9mIGNvbnNlcnZhdGl2ZSBwb2ludGVycyBpbnRvIHRoZSBtYWNoaW5l
IHN0YWNrIG1hcmtlci4KKworICAgICAgICAqIHd0Zi9IYXNoU2V0Lmg6CisgICAgICAgIChXVEY6
Ojo6YWRkKTogQWRkZWQgdHdvIG1pc3NpbmcgaW5saW5lcyB0aGF0IEkgbm90aWNlZCB3aGlsZSB0
ZXN0aW5nCisgICAgICAgIHZlY3RvciB2cyBoYXNoIHNldC4KKwogMjAxMS0wMS0yMSAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcu
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvUmVnaXN0ZXJGaWxlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1JlZ2lzdGVy
RmlsZS5oCShyZXZpc2lvbiA3NjM5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnBy
ZXRlci9SZWdpc3RlckZpbGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTMyLDggKzEzMiw2IEBAIG5h
bWVzcGFjZSBKU0MgewogCiAgICAgICAgIFJlZ2lzdGVyKiBsYXN0R2xvYmFsKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydCAtIG1fbnVtR2xvYmFsczsgfQogICAgICAgICAKLSAgICAgICAgdm9pZCBt
YXJrQ2FsbEZyYW1lcyhDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNldCwgSGVhcCogaGVh
cCkgeyBoZWFwLT5tYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0aXZlU2V0LCBtX3N0YXJ0LCBt
X2VuZCk7IH0KLQogICAgICAgICBzdGF0aWMgc2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwog
ICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCk7CiAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuY3BwCShyZXZpc2lvbiA3NjM5OSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcs
MTEgKzE0Nyw2IEBAIHZvaWQqIEhlYXA6OmFsbG9jYXRlKHNpemVfdCBzKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLXZvaWQgSGVhcDo6bWFya0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNl
dCYgY29uc2VydmF0aXZlU2V0LCB2b2lkKiBzdGFydCwgdm9pZCogZW5kKQotewotICAgIG1fbWFy
a2VkU3BhY2UubWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgc3RhcnQsIGVuZCk7
Ci19Ci0KIHZvaWQgSGVhcDo6dXBkYXRlV2Vha0dDSGFuZGxlcygpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fd2Vha0dDSGFuZGxlUG9vbHMuc2l6ZSgpOyArK2kpCkBAIC0yMzcs
NyArMjMyLDEyIEBAIHZvaWQgSGVhcDo6bWFya1RlbXBTb3J0VmVjdG9ycyhNYXJrU3RhY2sKICAg
ICAgICAgfQogICAgIH0KIH0KLSAgICAKKworaW5saW5lIFJlZ2lzdGVyRmlsZSYgSGVhcDo6cmVn
aXN0ZXJGaWxlKCkKK3sKKyAgICByZXR1cm4gbV9nbG9iYWxEYXRhLT5pbnRlcnByZXRlci0+cmVn
aXN0ZXJGaWxlKCk7Cit9CisKIHZvaWQgSGVhcDo6bWFya1Jvb3RzKCkKIHsKICNpZm5kZWYgTkRF
QlVHCkBAIC0yNTgsNyArMjU4LDcgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoKQogICAgIC8vIGRl
dGVybWluZSB3aGV0aGVyIGEgcmVmZXJlbmNlIGlzIHZhbGlkLgogICAgIENvbnNlcnZhdGl2ZVNl
dCBjb25zZXJ2YXRpdmVTZXQ7CiAgICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya01hY2hpbmVT
dGFja0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCk7Ci0gICAgbV9nbG9iYWxEYXRhLT5p
bnRlcnByZXRlci0+cmVnaXN0ZXJGaWxlKCkubWFya0NhbGxGcmFtZXMoY29uc2VydmF0aXZlU2V0
LCB0aGlzKTsKKyAgICBtX21hY2hpbmVTdGFja01hcmtlci5tYXJrQ29uc2VydmF0aXZlbHkoY29u
c2VydmF0aXZlU2V0LCByZWdpc3RlckZpbGUoKS5zdGFydCgpLCByZWdpc3RlckZpbGUoKS5lbmQo
KSk7CiAKICAgICAvLyBSZXNldCBtYXJrIGJpdHMuCiAgICAgbV9tYXJrZWRTcGFjZS5jbGVhck1h
cmtCaXRzKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9IZWFwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5oCShyZXZpc2lv
biA3NjM5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0hlYXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTUgKzMxLDE2IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi0gICAgY2xh
c3MgSlNWYWx1ZTsKLSAgICBjbGFzcyBVU3RyaW5nOwogICAgIGNsYXNzIEdDQWN0aXZpdHlDYWxs
YmFjazsKICAgICBjbGFzcyBKU0NlbGw7CiAgICAgY2xhc3MgSlNHbG9iYWxEYXRhOwogICAgIGNs
YXNzIEpTVmFsdWU7CisgICAgY2xhc3MgSlNWYWx1ZTsKICAgICBjbGFzcyBMaXZlT2JqZWN0SXRl
cmF0b3I7Ci0gICAgY2xhc3MgTWFya2VkQXJndW1lbnRCdWZmZXI7CiAgICAgY2xhc3MgTWFya1N0
YWNrOworICAgIGNsYXNzIE1hcmtlZEFyZ3VtZW50QnVmZmVyOworICAgIGNsYXNzIFJlZ2lzdGVy
RmlsZTsKKyAgICBjbGFzcyBVU3RyaW5nOwogICAgIGNsYXNzIFdlYWtHQ0hhbmRsZVBvb2w7CiAK
ICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxKU1ZhbHVlLCBVU3RyaW5nPiBWYWx1ZVN0cmluZ1BhaXI7
CkBAIC04NSwxMSArODYsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBib29s
IGlzQ2VsbE1hcmtlZChjb25zdCBKU0NlbGwqKTsKICAgICAgICAgc3RhdGljIGJvb2wgY2hlY2tN
YXJrQ2VsbChjb25zdCBKU0NlbGwqKTsKICAgICAgICAgc3RhdGljIHZvaWQgbWFya0NlbGwoSlND
ZWxsKik7CisgICAgICAgIAorICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKIAogICAgICAg
ICBXZWFrR0NIYW5kbGUqIGFkZFdlYWtHQ0hhbmRsZShKU0NlbGwqKTsKIAotICAgICAgICB2b2lk
IG1hcmtDb25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmLCB2b2lkKiBzdGFydCwgdm9pZCog
ZW5kKTsKLQogICAgICAgICB2b2lkIHB1c2hUZW1wU29ydFZlY3RvcihXVEY6OlZlY3RvcjxWYWx1
ZVN0cmluZ1BhaXI+Kik7CiAgICAgICAgIHZvaWQgcG9wVGVtcFNvcnRWZWN0b3IoV1RGOjpWZWN0
b3I8VmFsdWVTdHJpbmdQYWlyPiopOyAgICAgICAgCiAKQEAgLTExOCw2ICsxMTksOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCB1cGRhdGVXZWFrR0NIYW5kbGVzKCk7CiAgICAgICAg
IFdlYWtHQ0hhbmRsZVBvb2wqIHdlYWtHQ0hhbmRsZVBvb2woc2l6ZV90IGluZGV4KTsKIAorICAg
ICAgICBSZWdpc3RlckZpbGUmIHJlZ2lzdGVyRmlsZSgpOworCiAgICAgICAgIE1hcmtlZFNwYWNl
IG1fbWFya2VkU3BhY2U7CiAgICAgICAgIE9wZXJhdGlvbkluUHJvZ3Jlc3MgbV9vcGVyYXRpb25J
blByb2dyZXNzOwogCkBAIC0xNTIsNiArMTU1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAg
ICBNYXJrZWRTcGFjZTo6bWFya0NlbGwoY2VsbCk7CiAgICAgfQogCisgICAgaW5saW5lIGJvb2wg
SGVhcDo6Y29udGFpbnModm9pZCogcCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX21hcmtlZFNw
YWNlLmNvbnRhaW5zKHApOworICAgIH0KKwogICAgIGlubGluZSB2b2lkIEhlYXA6OnJlcG9ydEV4
dHJhTWVtb3J5Q29zdChzaXplX3QgY29zdCkKICAgICB7CiAgICAgICAgIGlmIChjb3N0ID4gbWlu
RXh0cmFDb3N0KSAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVT
dGFja01hcmtlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcAkocmV2aXNpb24gNzYzOTcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTYsNyArMTk2LDcgQEAgdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6OnVucmVnaXN0ZXJU
aHJlYQogCiB2b2lkIE5FVkVSX0lOTElORSBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtDdXJyZW50
VGhyZWFkQ29uc2VydmF0aXZlbHlJbnRlcm5hbChDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2
ZVNldCkKIHsKLSAgICBtX2hlYXAtPm1hcmtDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVTZXQs
IG1faGVhcC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLmN1cnJlbnQoKSwgbV9oZWFwLT5nbG9iYWxE
YXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOworICAgIG1hcmtDb25zZXJ2YXRpdmVseShjb25zZXJ2
YXRpdmVTZXQsIG1faGVhcC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLmN1cnJlbnQoKSwgbV9oZWFw
LT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCkpOwogfQogCiAjaWYgQ09NUElMRVIoR0ND
KQpAQCAtMzU4LDEwICszNTgsMTAgQEAgdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtPdGhl
clRocmVhZAogICAgIHNpemVfdCByZWdTaXplID0gZ2V0UGxhdGZvcm1UaHJlYWRSZWdpc3RlcnMo
dGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAKICAgICAvLyBtYXJrIHRoZSB0aHJlYWQn
cyByZWdpc3RlcnMKLSAgICBtX2hlYXAtPm1hcmtDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVT
ZXQsIHN0YXRpY19jYXN0PHZvaWQqPigmcmVncyksIHN0YXRpY19jYXN0PHZvaWQqPihyZWludGVy
cHJldF9jYXN0PGNoYXIqPigmcmVncykgKyByZWdTaXplKSk7CisgICAgbWFya0NvbnNlcnZhdGl2
ZWx5KGNvbnNlcnZhdGl2ZVNldCwgc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nh
c3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKIAog
ICAgIHZvaWQqIHN0YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQb2ludGVyKHJlZ3MpOwot
ICAgIG1faGVhcC0+bWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgc3RhY2tQb2lu
dGVyLCB0aHJlYWQtPnN0YWNrQmFzZSk7CisgICAgbWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZh
dGl2ZVNldCwgc3RhY2tQb2ludGVyLCB0aHJlYWQtPnN0YWNrQmFzZSk7CiAKICAgICByZXN1bWVU
aHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVhZCk7CiB9CkBAIC0zOTcsNCArMzk3LDM2IEBAIHZv
aWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrTWFjaGluZVN0YWMKICNlbmRpZgogfQogCitpbmxp
bmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCit7CisgICAgcmV0dXJuICgoKGludHB0
cl90KShwKSAmIChzaXplb2YoY2hhciopIC0gMSkpID09IDApOworfQorCit2b2lkIE1hY2hpbmVT
dGFja01hcmtlcjo6bWFya0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYgY29uc2VydmF0
aXZlU2V0LCB2b2lkKiBzdGFydCwgdm9pZCogZW5kKQoreworI2lmIE9TKFdJTkNFKQorICAgIGlm
IChzdGFydCA+IGVuZCkgeworICAgICAgICB2b2lkKiB0bXAgPSBzdGFydDsKKyAgICAgICAgc3Rh
cnQgPSBlbmQ7CisgICAgICAgIGVuZCA9IHRtcDsKKyAgICB9CisjZWxzZQorICAgIEFTU0VSVChz
dGFydCA8PSBlbmQpOworI2VuZGlmCisKKyAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNoYXIqPihl
bmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXJ0KSkgPCAweDEwMDAwMDApOworICAgIEFTU0VS
VChpc1BvaW50ZXJBbGlnbmVkKHN0YXJ0KSk7CisgICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQo
ZW5kKSk7CisKKyAgICBjaGFyKiogcCA9IHN0YXRpY19jYXN0PGNoYXIqKj4oc3RhcnQpOworICAg
IGNoYXIqKiBlID0gc3RhdGljX2Nhc3Q8Y2hhcioqPihlbmQpOworCisgICAgd2hpbGUgKHAgIT0g
ZSkgeworICAgICAgICBjaGFyKiB4ID0gKnArKzsKKyAgICAgICAgaWYgKCFtX2hlYXAtPmNvbnRh
aW5zKHgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnNlcnZhdGl2ZVNldC5h
ZGQocmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPih4KSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFj
a01hcmtlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01h
Y2hpbmVTdGFja01hcmtlci5oCShyZXZpc2lvbiA3NjM5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2
ICs0MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB+TWFjaGluZVN0YWNrTWFya2VyKCk7
CiAKICAgICAgICAgdm9pZCBtYXJrTWFjaGluZVN0YWNrQ29uc2VydmF0aXZlbHkoQ29uc2VydmF0
aXZlU2V0Jik7CisgICAgICAgIHZvaWQgbWFya0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNl
dCYsIHZvaWQqIHN0YXJ0LCB2b2lkKiBlbmQpOwogCiAjaWYgRU5BQkxFKEpTQ19NVUxUSVBMRV9U
SFJFQURTKQogICAgICAgICB2b2lkIG1ha2VVc2FibGVGcm9tTXVsdGlwbGVUaHJlYWRzKCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrU3RhY2suaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrU3RhY2suaAkocmV2aXNpb24g
NzYzOTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrU3RhY2suaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBNYXJrU3RhY2tfaAogCiAjaW5j
bHVkZSAiSlNWYWx1ZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9P
U0FsbG9jYXRvci5oPgogCkBAIC0xOTAsMTYgKzE5MCwxNSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAKICAgICBjbGFzcyBDb25zZXJ2YXRpdmVTZXQgewogICAgIHB1YmxpYzoKLSAgICAgICAgdm9p
ZCBhZGQoSlNDZWxsKiBjZWxsKSB7IG1fc2V0LmFkZChjZWxsKTsgfQorICAgICAgICB2b2lkIGFk
ZChKU0NlbGwqIGNlbGwpIHsgbV92ZWN0b3IuYXBwZW5kKGNlbGwpOyB9CiAgICAgICAgIHZvaWQg
bWFyayhNYXJrU3RhY2smIG1hcmtTdGFjaykKICAgICAgICAgewotICAgICAgICAgICAgSGFzaFNl
dDxKU0NlbGwqPjo6aXRlcmF0b3IgZW5kID0gbV9zZXQuZW5kKCk7Ci0gICAgICAgICAgICBmb3Ig
KEhhc2hTZXQ8SlNDZWxsKj46Oml0ZXJhdG9yIGl0ID0gbV9zZXQuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KQotICAgICAgICAgICAgICAgIG1hcmtTdGFjay5hcHBlbmQoKml0KTsKKyAgICAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92ZWN0b3Iuc2l6ZSgpOyArK2kpCisgICAgICAg
ICAgICAgICAgbWFya1N0YWNrLmFwcGVuZChtX3ZlY3RvcltpXSk7CiAgICAgICAgIH0KIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIEhhc2hTZXQ8SlNDZWxsKj4gbV9zZXQ7CisgICAgICAgIFZlY3Rv
cjxKU0NlbGwqLCA2ND4gbV92ZWN0b3I7CiAgICAgfTsKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24gNzYzOTcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwMCw4MiArMjAwLDM3IEBAIHZvaWQgTWFya2VkU3BhY2U6OnNocmlua0Jsb2Nr
cyhzaXplX3QgbmUKICAgICAgICAgbV9oZWFwLmNvbGxlY3RvckJsb2NrKGkpLT5tYXJrZWQuc2V0
KEhlYXBDb25zdGFudHM6OmNlbGxzUGVyQmxvY2sgLSAxKTsKIH0KIAotaW5saW5lIGJvb2wgaXNQ
b2ludGVyQWxpZ25lZCh2b2lkKiBwKQorYm9vbCBNYXJrZWRTcGFjZTo6Y29udGFpbnNTbG93Q2Fz
ZSh2b2lkKiB4KQogewotICAgIHJldHVybiAoKChpbnRwdHJfdCkocCkgJiAoc2l6ZW9mKGNoYXIq
KSAtIDEpKSA9PSAwKTsKLX0KLQotLy8gQ2VsbCBzaXplIG5lZWRzIHRvIGJlIGEgcG93ZXIgb2Yg
dHdvIGZvciBpc1Bvc3NpYmxlQ2VsbCB0byBiZSB2YWxpZC4KLUNPTVBJTEVfQVNTRVJUKHNpemVv
ZihDb2xsZWN0b3JDZWxsKSAlIDIgPT0gMCwgQ29sbGVjdG9yX2NlbGxfc2l6ZV9pc19wb3dlcl9v
Zl90d28pOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNDZWxsQWxpZ25lZCh2b2lkICpwKQotewot
ICAgIHJldHVybiAoKChpbnRwdHJfdCkocCkgJiBDRUxMX01BU0spID09IDApOwotfQotCi1zdGF0
aWMgaW5saW5lIGJvb2wgaXNQb3NzaWJsZUNlbGwodm9pZCogcCkKLXsKLSAgICByZXR1cm4gaXND
ZWxsQWxpZ25lZChwKSAmJiBwOwotfQorICAgIHVpbnRwdHJfdCB4QXNCaXRzID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KHgpOworICAgIHhBc0JpdHMgJj0gQ0VMTF9BTElHTl9NQVNLOwog
Ci12b2lkIE1hcmtlZFNwYWNlOjptYXJrQ29uc2VydmF0aXZlbHkoQ29uc2VydmF0aXZlU2V0JiBj
b25zZXJ2YXRpdmVTZXQsIHZvaWQqIHN0YXJ0LCB2b2lkKiBlbmQpCi17Ci0jaWYgT1MoV0lOQ0Up
Ci0gICAgaWYgKHN0YXJ0ID4gZW5kKSB7Ci0gICAgICAgIHZvaWQqIHRtcCA9IHN0YXJ0OwotICAg
ICAgICBzdGFydCA9IGVuZDsKLSAgICAgICAgZW5kID0gdG1wOwotICAgIH0KLSNlbHNlCi0gICAg
QVNTRVJUKHN0YXJ0IDw9IGVuZCk7Ci0jZW5kaWYKLQotICAgIEFTU0VSVCgoc3RhdGljX2Nhc3Q8
Y2hhcio+KGVuZCkgLSBzdGF0aWNfY2FzdDxjaGFyKj4oc3RhcnQpKSA8IDB4MTAwMDAwMCk7Ci0g
ICAgQVNTRVJUKGlzUG9pbnRlckFsaWduZWQoc3RhcnQpKTsKLSAgICBBU1NFUlQoaXNQb2ludGVy
QWxpZ25lZChlbmQpKTsKLQotICAgIGNoYXIqKiBwID0gc3RhdGljX2Nhc3Q8Y2hhcioqPihzdGFy
dCk7Ci0gICAgY2hhcioqIGUgPSBzdGF0aWNfY2FzdDxjaGFyKio+KGVuZCk7Ci0KLSAgICB3aGls
ZSAocCAhPSBlKSB7Ci0gICAgICAgIGNoYXIqIHggPSAqcCsrOwotICAgICAgICBpZiAoaXNQb3Nz
aWJsZUNlbGwoeCkpIHsKLSAgICAgICAgICAgIHVpbnRwdHJfdCB4QXNCaXRzID0gcmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KHgpOwotICAgICAgICAgICAgeEFzQml0cyAmPSBDRUxMX0FMSUdO
X01BU0s7Ci0KLSAgICAgICAgICAgIHVpbnRwdHJfdCBvZmZzZXQgPSB4QXNCaXRzICYgQkxPQ0tf
T0ZGU0VUX01BU0s7Ci0gICAgICAgICAgICBjb25zdCBzaXplX3QgbGFzdENlbGxPZmZzZXQgPSBz
aXplb2YoQ29sbGVjdG9yQ2VsbCkgKiAoQ0VMTFNfUEVSX0JMT0NLIC0gMSk7Ci0gICAgICAgICAg
ICBpZiAob2Zmc2V0ID4gbGFzdENlbGxPZmZzZXQpCi0gICAgICAgICAgICAgICAgY29udGludWU7
Ci0KLSAgICAgICAgICAgIENvbGxlY3RvckJsb2NrKiBibG9ja0FkZHIgPSByZWludGVycHJldF9j
YXN0PENvbGxlY3RvckJsb2NrKj4oeEFzQml0cyAtIG9mZnNldCk7Ci0gICAgICAgICAgICBzaXpl
X3QgdXNlZEJsb2NrcyA9IG1faGVhcC51c2VkQmxvY2tzOwotICAgICAgICAgICAgZm9yIChzaXpl
X3QgYmxvY2sgPSAwOyBibG9jayA8IHVzZWRCbG9ja3M7IGJsb2NrKyspIHsKLSAgICAgICAgICAg
ICAgICBpZiAobV9oZWFwLmNvbGxlY3RvckJsb2NrKGJsb2NrKSAhPSBibG9ja0FkZHIpCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAgICAgLy8geCBpcyBhIHBv
aW50ZXIgaW50byB0aGUgaGVhcC4gTm93LCB2ZXJpZnkgdGhhdCB0aGUgY2VsbCBpdAotICAgICAg
ICAgICAgICAgIC8vIHBvaW50cyB0byBpcyBsaXZlLiAoSWYgdGhlIGNlbGwgaXMgZGVhZCwgd2Ug
bXVzdCBub3QgbWFyayBpdCwKLSAgICAgICAgICAgICAgICAvLyBzaW5jZSB0aGF0IHdvdWxkIHJl
dml2ZSBpdCBpbiBhIHpvbWJpZSBzdGF0ZS4pCi0gICAgICAgICAgICAgICAgaWYgKGJsb2NrIDwg
bV9oZWFwLm5leHRCbG9jaykgewotICAgICAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmVTZXQu
YWRkKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oeEFzQml0cykpOwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgc2l6ZV90IGNlbGxPZmZzZXQgPSBvZmZzZXQgLyBDRUxMX1NJWkU7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGJsb2NrID09IG1faGVhcC5uZXh0QmxvY2sg
JiYgY2VsbE9mZnNldCA8IG1faGVhcC5uZXh0Q2VsbCkgewotICAgICAgICAgICAgICAgICAgICBj
b25zZXJ2YXRpdmVTZXQuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oeEFzQml0cykpOwot
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGJsb2NrQWRkci0+bWFya2VkLmdldChjZWxsT2Zm
c2V0KSkgewotICAgICAgICAgICAgICAgICAgICBjb25zZXJ2YXRpdmVTZXQuYWRkKHJlaW50ZXJw
cmV0X2Nhc3Q8SlNDZWxsKj4oeEFzQml0cykpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICB1aW50cHRy
X3Qgb2Zmc2V0ID0geEFzQml0cyAmIEJMT0NLX09GRlNFVF9NQVNLOworICAgIGNvbnN0IHNpemVf
dCBsYXN0Q2VsbE9mZnNldCA9IHNpemVvZihDb2xsZWN0b3JDZWxsKSAqIChDRUxMU19QRVJfQkxP
Q0sgLSAxKTsKKyAgICBpZiAob2Zmc2V0ID4gbGFzdENlbGxPZmZzZXQpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIENvbGxlY3RvckJsb2NrKiBibG9ja0FkZHIgPSByZWludGVycHJldF9j
YXN0PENvbGxlY3RvckJsb2NrKj4oeEFzQml0cyAtIG9mZnNldCk7CisgICAgc2l6ZV90IHVzZWRC
bG9ja3MgPSBtX2hlYXAudXNlZEJsb2NrczsKKyAgICBmb3IgKHNpemVfdCBibG9jayA9IDA7IGJs
b2NrIDwgdXNlZEJsb2NrczsgYmxvY2srKykgeworICAgICAgICBpZiAobV9oZWFwLmNvbGxlY3Rv
ckJsb2NrKGJsb2NrKSAhPSBibG9ja0FkZHIpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICAvLyB4IGlzIGEgcG9pbnRlciBpbnRvIHRoZSBoZWFwLiBOb3csIHZlcmlmeSB0aGF0IHRo
ZSBjZWxsIGl0CisgICAgICAgIC8vIHBvaW50cyB0byBpcyBsaXZlLiAoSWYgdGhlIGNlbGwgaXMg
ZGVhZCwgd2UgbXVzdCBub3QgbWFyayBpdCwKKyAgICAgICAgLy8gc2luY2UgdGhhdCB3b3VsZCBy
ZXZpdmUgaXQgaW4gYSB6b21iaWUgc3RhdGUuKQorICAgICAgICBpZiAoYmxvY2sgPCBtX2hlYXAu
bmV4dEJsb2NrKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIAorICAgICAgICBz
aXplX3QgY2VsbE9mZnNldCA9IG9mZnNldCAvIENFTExfU0laRTsKKyAgICAgICAgCisgICAgICAg
IGlmIChibG9jayA9PSBtX2hlYXAubmV4dEJsb2NrICYmIGNlbGxPZmZzZXQgPCBtX2hlYXAubmV4
dENlbGwpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgCisgICAgICAgIHJldHVy
biBibG9ja0FkZHItPm1hcmtlZC5nZXQoY2VsbE9mZnNldCk7CiAgICAgfQorICAgIAorICAgIHJl
dHVybiBmYWxzZTsKIH0KIAogdm9pZCBNYXJrZWRTcGFjZTo6Y2xlYXJNYXJrQml0cygpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmgJKHJldmlzaW9u
IDc2Mzk3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuaAko
d29ya2luZyBjb3B5KQpAQCAtODUsMTAgKzg1LDExIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAg
ICAgIFdlYWtHQ0hhbmRsZSogYWRkV2Vha0dDSGFuZGxlKEpTQ2VsbCopOwogCi0gICAgICAgIHZv
aWQgbWFya0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYsIHZvaWQqIHN0YXJ0LCB2b2lk
KiBlbmQpOworICAgICAgICBib29sIGNvbnRhaW5zKHZvaWQqKTsKKyAgICAgICAgYm9vbCBjb250
YWluc1Nsb3dDYXNlKHZvaWQqKTsKKyAgICAgICAgYm9vbCBpc0NlbGxBbGlnbmVkKHZvaWQqKTsK
KyAgICAgICAgYm9vbCBpc1Bvc3NpYmxlQ2VsbCh2b2lkKik7CiAKLSAgICAgICAgc3RhdGljIGJv
b2wgaXNOdW1iZXIoSlNDZWxsKik7Ci0gICAgICAgIAogICAgICAgICBMaXZlT2JqZWN0SXRlcmF0
b3IgcHJpbWFyeUhlYXBCZWdpbigpOwogICAgICAgICBMaXZlT2JqZWN0SXRlcmF0b3IgcHJpbWFy
eUhlYXBFbmQoKTsKIApAQCAtMjE3LDYgKzIxOCwyNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgY2VsbEJsb2NrKGNlbGwpLT5tYXJrZWQuc2V0KGNlbGxPZmZzZXQoY2VsbCkpOwogICAgIH0K
IAorICAgIC8vIENlbGwgc2l6ZSBuZWVkcyB0byBiZSBhIHBvd2VyIG9mIHR3byBmb3IgaXNQb3Nz
aWJsZUNlbGwgdG8gYmUgdmFsaWQuCisgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENvbGxlY3Rv
ckNlbGwpICUgMiA9PSAwLCBDb2xsZWN0b3JfY2VsbF9zaXplX2lzX3Bvd2VyX29mX3R3byk7CisK
KyAgICBpbmxpbmUgYm9vbCBNYXJrZWRTcGFjZTo6aXNDZWxsQWxpZ25lZCh2b2lkICpwKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICgoKGludHB0cl90KShwKSAmIENFTExfTUFTSykgPT0gMCk7Cisg
ICAgfQorCisgICAgaW5saW5lIGJvb2wgTWFya2VkU3BhY2U6OmlzUG9zc2libGVDZWxsKHZvaWQq
IHApCisgICAgeworICAgICAgICByZXR1cm4gaXNDZWxsQWxpZ25lZChwKSAmJiBwOworICAgIH0K
KworICAgIGlubGluZSBib29sIE1hcmtlZFNwYWNlOjpjb250YWlucyh2b2lkKiB4KQorICAgIHsK
KyAgICAgICAgaWYgKCFpc1Bvc3NpYmxlQ2VsbCh4KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gY29udGFpbnNTbG93Q2FzZSh4KTsKKyAg
ICB9CisKIH0gLy8gbmFtZXNwYWNlIEpTQwogCiAjZW5kaWYgLy8gTWFya2VkU3BhY2VfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoU2V0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoU2V0LmgJKHJldmlzaW9uIDc2Mzk3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9IYXNoU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3NSwx
NCArMTc1LDE0IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+Ci0gICAgcGFpcjx0eXBlbmFtZSBIYXNoU2V0
PFQsIFUsIFY+OjppdGVyYXRvciwgYm9vbD4gSGFzaFNldDxULCBVLCBWPjo6YWRkKGNvbnN0IFZh
bHVlVHlwZSYgdmFsdWUpCisgICAgaW5saW5lIHBhaXI8dHlwZW5hbWUgSGFzaFNldDxULCBVLCBW
Pjo6aXRlcmF0b3IsIGJvb2w+IEhhc2hTZXQ8VCwgVSwgVj46OmFkZChjb25zdCBWYWx1ZVR5cGUm
IHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1faW1wbC5hZGQodmFsdWUpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rpb25zLCB0
eXBlbmFtZSBUcmFpdHM+CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSGFzaFRy
YW5zbGF0b3I+Ci0gICAgcGFpcjx0eXBlbmFtZSBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25z
LCBUcmFpdHM+OjppdGVyYXRvciwgYm9vbD4KKyAgICBpbmxpbmUgcGFpcjx0eXBlbmFtZSBIYXNo
U2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjppdGVyYXRvciwgYm9vbD4KICAgICBI
YXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjphZGQoY29uc3QgVCYgdmFsdWUp
CiAgICAgewogICAgICAgICB0eXBlZGVmIEhhc2hTZXRUcmFuc2xhdG9yQWRhcHRlcjxWYWx1ZVR5
cGUsIFZhbHVlVHJhaXRzLCBULCBIYXNoVHJhbnNsYXRvcj4gQWRhcHRlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79829</attachid>
            <date>2011-01-21 22:41:30 -0800</date>
            <delta_ts>2011-01-22 10:54:27 -0800</delta_ts>
            <desc>follow-up patch</desc>
            <filename>ro.txt</filename>
            <type>text/plain</type>
            <size>4889</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY0MjgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTEtMDEtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIGZldyBvZiBNYWNpZWon
cyByZXZpZXcgc3VnZ2VzdGlvbnMgZm9yIG15IGxhc3QgcGF0Y2guCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk0NiAgICAgICAgCisKKyAgICAgICAg
U3VuU3BpZGVyIHJlcG9ydHMgbm8gY2hhbmdlLgorCisgICAgICAgICogcnVudGltZS9NYWNoaW5l
U3RhY2tNYXJrZXIuY3BwOgorICAgICAgICAoSlNDOjpzd2FwSWZCYWNrd2FyZHMpOiBBZGRlZCBh
IGhlbHBlciBmdW5jdGlvbiBmb3IgaGFuZGxpbmcgcGxhdGZvcm1zCisgICAgICAgIHdoZXJlIHRo
ZSBzdGFjayBjYW4gZ3JvdyBpbiBhbnkgZGlyZWN0aW9uLgorCisgICAgICAgIChKU0M6Ok1hY2hp
bmVTdGFja01hcmtlcjo6bWFya0N1cnJlbnRUaHJlYWRDb25zZXJ2YXRpdmVseUludGVybmFsKToK
KyAgICAgICAgKEpTQzo6TWFjaGluZVN0YWNrTWFya2VyOjptYXJrT3RoZXJUaHJlYWRDb25zZXJ2
YXRpdmVseSk6IFVzZSB0aGUgaGVscGVyCisgICAgICAgIGZ1bmN0aW9uLgorCisgICAgICAgIChK
U0M6OmlzUG9pbnRlckFsaWduZWQpOiBVc2UgIiEiIGluc3RlYWQgb2YgIj09MCIgYmVjYXVzZSBh
IHJvYm90IHRvbGQgbWUgdG8uCisKKyAgICAgICAgKEpTQzo6TWFjaGluZVN0YWNrTWFya2VyOjpt
YXJrQ29uc2VydmF0aXZlbHkpOiBDaGFuZ2VkIHRvIHVzZSBhIG1vcmUKKyAgICAgICAgc3RhbmRh
cmQgbG9vcGluZyBpZGlvbSwgYW5kIHRvIHVzZSB0aGUgaGVscGVyIGZ1bmN0aW9uIGFib3ZlLgor
CisgICAgICAgICogcnVudGltZS9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRT
cGFjZTo6aXNDZWxsQWxpZ25lZCk6IFVzZSAiISIgaW5zdGVhZCBvZiAiPT0wIiBiZWNhdXNlIGEg
cm9ib3QgdG9sZCBtZSB0by4KKwogMjAxMS0wMS0yMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tN
YXJrZXIuY3BwCShyZXZpc2lvbiA3NjQyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw2ICsxMzUs
MTggQEAgc3RhdGljIGlubGluZSBQbGF0Zm9ybVRocmVhZCBnZXRDdXJyZW50UAogI2VuZGlmCiB9
CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBzd2FwSWZCYWNrd2FyZHModm9pZComIGJlZ2luLCB2b2lk
KiYgZW5kKQoreworI2lmIE9TKFdJTkNFKQorICAgIGlmIChiZWdpbiA8PSBlbmQpCisgICAgICAg
IHJldHVybjsKKyAgICBzd2FwKGJlZ2luLCBlbmQpOworI2Vsc2UKK1VOVVNFRF9QQVJBTShiZWdp
bik7CitVTlVTRURfUEFSQU0oZW5kKTsKKyNlbmRpZgorfQorCiB2b2lkIE1hY2hpbmVTdGFja01h
cmtlcjo6bWFrZVVzYWJsZUZyb21NdWx0aXBsZVRocmVhZHMoKQogewogICAgIGlmIChtX2N1cnJl
bnRUaHJlYWRSZWdpc3RyYXIpCkBAIC0xOTYsNyArMjA4LDEwIEBAIHZvaWQgTWFjaGluZVN0YWNr
TWFya2VyOjp1bnJlZ2lzdGVyVGhyZWEKIAogdm9pZCBORVZFUl9JTkxJTkUgTWFjaGluZVN0YWNr
TWFya2VyOjptYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5SW50ZXJuYWwoQ29uc2VydmF0
aXZlU2V0JiBjb25zZXJ2YXRpdmVTZXQpCiB7Ci0gICAgbWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNl
cnZhdGl2ZVNldCwgbV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkuY3VycmVudCgpLCBtX2hl
YXAtPmdsb2JhbERhdGEoKS0+c3RhY2soKS5vcmlnaW4oKSk7CisgICAgdm9pZCogYmVnaW4gPSBt
X2hlYXAtPmdsb2JhbERhdGEoKS0+c3RhY2soKS5jdXJyZW50KCk7CisgICAgdm9pZCogZW5kID0g
bV9oZWFwLT5nbG9iYWxEYXRhKCktPnN0YWNrKCkub3JpZ2luKCk7CisgICAgc3dhcElmQmFja3dh
cmRzKGJlZ2luLCBlbmQpOworICAgIG1hcmtDb25zZXJ2YXRpdmVseShjb25zZXJ2YXRpdmVTZXQs
IGJlZ2luLCBlbmQpOwogfQogCiAjaWYgQ09NUElMRVIoR0NDKQpAQCAtMzYxLDcgKzM3Niw5IEBA
IHZvaWQgTWFjaGluZVN0YWNrTWFya2VyOjptYXJrT3RoZXJUaHJlYWQKICAgICBtYXJrQ29uc2Vy
dmF0aXZlbHkoY29uc2VydmF0aXZlU2V0LCBzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3MpLCBzdGF0
aWNfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVnU2l6ZSkp
OwogCiAgICAgdm9pZCogc3RhY2tQb2ludGVyID0gb3RoZXJUaHJlYWRTdGFja1BvaW50ZXIocmVn
cyk7Ci0gICAgbWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgc3RhY2tQb2ludGVy
LCB0aHJlYWQtPnN0YWNrQmFzZSk7CisgICAgdm9pZCogc3RhY2tCYXNlID0gdGhyZWFkLT5zdGFj
a0Jhc2U7CisgICAgc3dhcElmQmFja3dhcmRzKHN0YWNrUG9pbnRlciwgc3RhY2tCYXNlKTsKKyAg
ICBtYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0aXZlU2V0LCBzdGFja1BvaW50ZXIsIHN0YWNr
QmFzZSk7CiAKICAgICByZXN1bWVUaHJlYWQodGhyZWFkLT5wbGF0Zm9ybVRocmVhZCk7CiB9CkBA
IC0zOTksMzMgKzQxNiwyMCBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtlcjo6bWFya01hY2hpbmVT
dGFjCiAKIGlubGluZSBib29sIGlzUG9pbnRlckFsaWduZWQodm9pZCogcCkKIHsKLSAgICByZXR1
cm4gKCgoaW50cHRyX3QpKHApICYgKHNpemVvZihjaGFyKikgLSAxKSkgPT0gMCk7CisgICAgcmV0
dXJuICEoKGludHB0cl90KShwKSAmIChzaXplb2YoY2hhciopIC0gMSkpOwogfQogCiB2b2lkIE1h
Y2hpbmVTdGFja01hcmtlcjo6bWFya0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYgY29u
c2VydmF0aXZlU2V0LCB2b2lkKiBzdGFydCwgdm9pZCogZW5kKQogewotI2lmIE9TKFdJTkNFKQot
ICAgIGlmIChzdGFydCA+IGVuZCkgewotICAgICAgICB2b2lkKiB0bXAgPSBzdGFydDsKLSAgICAg
ICAgc3RhcnQgPSBlbmQ7Ci0gICAgICAgIGVuZCA9IHRtcDsKLSAgICB9Ci0jZWxzZQogICAgIEFT
U0VSVChzdGFydCA8PSBlbmQpOwotI2VuZGlmCi0KICAgICBBU1NFUlQoKHN0YXRpY19jYXN0PGNo
YXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXJ0KSkgPCAweDEwMDAwMDApOwogICAg
IEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKHN0YXJ0KSk7CiAgICAgQVNTRVJUKGlzUG9pbnRlckFs
aWduZWQoZW5kKSk7CiAKLSAgICBjaGFyKiogcCA9IHN0YXRpY19jYXN0PGNoYXIqKj4oc3RhcnQp
OwotICAgIGNoYXIqKiBlID0gc3RhdGljX2Nhc3Q8Y2hhcioqPihlbmQpOwotCi0gICAgd2hpbGUg
KHAgIT0gZSkgewotICAgICAgICBjaGFyKiB4ID0gKnArKzsKLSAgICAgICAgaWYgKCFtX2hlYXAt
PmNvbnRhaW5zKHgpKQorICAgIGZvciAoY2hhcioqIGl0ID0gc3RhdGljX2Nhc3Q8Y2hhcioqPihz
dGFydCk7IGl0ICE9IHN0YXRpY19jYXN0PGNoYXIqKj4oZW5kKTsgKytpdCkgeworICAgICAgICBp
ZiAoIW1faGVhcC0+Y29udGFpbnMoKml0KSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBjb25zZXJ2YXRpdmVTZXQuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oeCkpOworICAg
ICAgICBjb25zZXJ2YXRpdmVTZXQuYWRkKHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4oKml0KSk7
CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRT
cGFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtl
ZFNwYWNlLmgJKHJldmlzaW9uIDc2NDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvTWFya2VkU3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDExICsyMTksMTEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgfQogCiAgICAgLy8gQ2VsbCBzaXplIG5lZWRzIHRvIGJlIGEgcG93
ZXIgb2YgdHdvIGZvciBpc1Bvc3NpYmxlQ2VsbCB0byBiZSB2YWxpZC4KLSAgICBDT01QSUxFX0FT
U0VSVChzaXplb2YoQ29sbGVjdG9yQ2VsbCkgJSAyID09IDAsIENvbGxlY3Rvcl9jZWxsX3NpemVf
aXNfcG93ZXJfb2ZfdHdvKTsKKyAgICBDT01QSUxFX0FTU0VSVCghKHNpemVvZihDb2xsZWN0b3JD
ZWxsKSAlIDIpLCBDb2xsZWN0b3JfY2VsbF9zaXplX2lzX3Bvd2VyX29mX3R3byk7CiAKICAgICBp
bmxpbmUgYm9vbCBNYXJrZWRTcGFjZTo6aXNDZWxsQWxpZ25lZCh2b2lkICpwKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuICgoKGludHB0cl90KShwKSAmIENFTExfTUFTSykgPT0gMCk7CisgICAgICAg
IHJldHVybiAhKChpbnRwdHJfdCkocCkgJiBDRUxMX01BU0spOwogICAgIH0KIAogICAgIGlubGlu
ZSBib29sIE1hcmtlZFNwYWNlOjppc1Bvc3NpYmxlQ2VsbCh2b2lkKiBwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79849</attachid>
            <date>2011-01-22 10:54:30 -0800</date>
            <delta_ts>2011-01-22 10:59:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52946-20110122105429.patch</filename>
            <type>text/plain</type>
            <size>19995</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY0MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMDEtMjIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBNYWNpZWogU3RhY2hvd2lhay4KKworICAgICAgICBBIGZldyBvZiBNYWNpZWoncyByZXZpZXcg
c3VnZ2VzdGlvbnMgZm9yIG15IGxhc3QgcGF0Y2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk0NiAgICAgICAgCisKKyAgICAgICAgU3VuU3BpZGVy
IHJlcG9ydHMgbm8gY2hhbmdlLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnBybzoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IFVwZGF0ZWQgYnVpbGQgc3lzdGVtcy4KKworICAgICAgICAqIHJ1bnRpbWUvQ29uc2VydmF0aXZl
U2V0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OmlzUG9pbnRlckFsaWduZWQpOgorICAgICAg
ICAoSlNDOjpDb25zZXJ2YXRpdmVTZXQ6OmFkZCk6CisgICAgICAgICogcnVudGltZS9Db25zZXJ2
YXRpdmVTZXQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVNldDo6Q29uc2Vy
dmF0aXZlU2V0KToKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlU2V0OjptYXJrKTogU3BsaXQg
Q29uc2VydmF0aXZlU2V0IG91dCBpbnRvIGl0cyBvd24KKyAgICAgICAgZmlsZSwgYW5kIG1vdmVk
IHRoZSBjb25zZXJ2YXRpdmUgY2hlY2sgaW50byBDb25zZXJ2YXRpdmVTZXQ6OmFkZCwgbWFraW5n
CisgICAgICAgIENvbnNlcnZhdGl2ZVNldCdzIHJlc3BvbnNpYmlsaXR5IGNsZWFyZXIuCisKKyAg
ICAgICAgKiBydW50aW1lL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMp
OgorICAgICAgICAqIHJ1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVN0YWNrTWFya2VyOjptYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5SW50
ZXJuYWwpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtPdGhlclRocmVh
ZENvbnNlcnZhdGl2ZWx5KToKKyAgICAgICAgKiBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5o
OgorICAgICAgICAqIHJ1bnRpbWUvTWFya1N0YWNrLmg6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgYWJv
dmUuCisKIDIwMTEtMDEtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJv
aWQubWsJKHJldmlzaW9uIDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQu
bWsJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0g
XAogCXJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgXAogCXJ1bnRpbWUvTG9va3VwLmNwcCBcCiAJ
cnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIFwKKwlydW50aW1lL0NvbnNlcnZhdGl2ZVNl
dC5jcHAgXAogCXJ1bnRpbWUvTWFya1N0YWNrLmNwcCBcCiAJcnVudGltZS9NYXJrU3RhY2tQb3Np
eC5jcHAgXAogCXJ1bnRpbWUvTWF0aE9iamVjdC5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsNyBAQCBTRVQo
SmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKICAg
ICBydW50aW1lL0xvb2t1cC5jcHAKICAgICBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAK
KyAgICBydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAKICAgICBydW50aW1lL01hcmtTdGFjay5j
cHAKICAgICBydW50aW1lL01hdGhPYmplY3QuY3BwCiAgICAgcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2
aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTM0Myw2ICszNDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmggXAorICAgICAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwIFwKKyAgICAgICAg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtTdGFjay5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hcmtTdGFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCw4IEBACiAg
ICAgICAgICAgICAncnVudGltZS9Mb29rdXAuaCcsCiAgICAgICAgICAgICAncnVudGltZS9NYWNo
aW5lU3RhY2tNYXJrZXIuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5oJywKKyAgICAgICAgICAgICdydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAnLAorICAg
ICAgICAgICAgJ3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmgnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvTWFya1N0YWNrLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9NYXJrU3RhY2suaCcsCiAg
ICAgICAgICAgICAncnVudGltZS9NYXJrU3RhY2tXaW4uY3BwJywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNzks
NiArMTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcnVudGltZS9NYXJrU3RhY2tQb3NpeC5jcHAg
XAogICAgIHJ1bnRpbWUvTWFya1N0YWNrU3ltYmlhbi5jcHAgXAogICAgIHJ1bnRpbWUvTWFya1N0
YWNrV2luLmNwcCBcCisgICAgcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwIFwKICAgICBydW50
aW1lL01hcmtTdGFjay5jcHAgXAogICAgIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHAgXAogICAgIHJ1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9u
IDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEw
MDIsNiArMTAwMiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxydW50aW1lXENvbnNlcnZhdGl2ZVNldC5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcQ29uc2VydmF0
aXZlU2V0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXHJ1bnRpbWVcTWFya1N0YWNrLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3IEBACiAJCTE0NDY5REVEMTA3RUM3RTcwMDY1MDQ0
NiAvKiBTdHJpbmdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxOEMzQzUwRTE2RUUzMzAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlw
ZS5jcHAgKi87IH07CiAJCTE0NDY5REVFMTA3RUM3RTcwMDY1MDQ0NiAvKiBVU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODg1MDI1
NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmNwcCAqLzsgfTsKIAkJMTQ2QUFCMzgwQjY2QTk0NDAw
RTU1RjE2IC8qIEpTU3RyaW5nUmVmQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ2QUFCMzcwQjY2QTk0NDAwRTU1RjE2IC8qIEpTU3RyaW5nUmVm
Q0YuY3BwICovOyB9OworCQkxNDZCMTZEODEyRUI1QjU5MDAxQkVDMUIgLyogQ29uc2VydmF0aXZl
U2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NkIxNERCMTJFQjVCMTIwMDFCRUMxQiAvKiBDb25zZXJ2YXRpdmVTZXQuY3BwICovOyB9OwogCQkx
NDZGRTUxMjExQTcxMDQzMDA4N0FFNjYgLyogSklUQ2FsbDMyXzY0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NkZFNTExMTFBNzEwNDMwMDg3QUU2
NiAvKiBKSVRDYWxsMzJfNjQuY3BwICovOyB9OwogCQkxNDdCODNBQzBFNkRCOEM5MDA0Nzc1QTQg
LyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0N0I4M0FBMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRjaGVk
VHJhbnNpdGlvbk9wdGltaXplci5oICovOyB9OwogCQkxNDdCODQ2MzBFNkRFNkIxMDA0Nzc1QTQg
LyogUHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDdCODQ2MjBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcwOCw2
ICs3MDksNyBAQAogCQkxNDVDNTA3RjBEOURGNjNCMDA4OEY2QjkgLyogQ2FsbERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTQ2QUFCMkEwQjY2QTg0OTAwRTU1RjE2IC8qIEpTU3RyaW5nUmVmQ0Yu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nUmVmQ0YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ2QUFCMzcwQjY2QTk0NDAwRTU1RjE2IC8qIEpT
U3RyaW5nUmVmQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U3RyaW5nUmVmQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDZCMTREQjEy
RUI1QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNlcnZhdGl2ZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0NkZFNTExMTFBNzEwNDMwMDg3QUU2NiAvKiBKSVRDYWxsMzJfNjQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUQ2FsbDMyXzY0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3NjA4NjMwOTlDNjMzODAwNDM3MTI4IC8q
IEpTSW1tZWRpYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SW1tZWRpYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3QjgzQUEwRTZE
QjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzI3LDcgQEAKIAkJMTQ4Q0QxRDcxMDhD
RjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDb250ZXh0UmVmUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDk1NTlFRDBERENEREY3MDA2NDgwODcgLyogRGVidWdnZXJDYWxsRnJhbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdnZXJDYWxsRnJh
bWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDlCMjRGRjBEOEFGNkQxMDA5
Q0I4QzcgLyogUmVnaXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVn
aXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ5REFBRjIxMkVCNTU5RDAw
ODNCMTJCIC8qIENvbnNlcnZhdGl2ZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb25zZXJ2YXRpdmVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRB
MTU2MzAxMDk2NjM2NTAwNkZBMjYwIC8qIERhdGVJbnN0YW5jZUNhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVJbnN0YW5jZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAvKiBKSVRTdHVicy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRTdHVicy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTM5NkE2MENEMjkzMzEwMEI1QjRGRiAvKiBTeW1i
b2xUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xUYWJsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwOCw2ICsxNzExLDggQEAKIAkJCQk2
NUVBNzM2MzBCQUUzNUQxMDAxQkI1NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCAqLywKIAkJCQk5
NjlBMDkyMjBFRDFFMDlDMDBGMUY2ODEgLyogQ29tcGxldGlvbi5jcHAgKi8sCiAJCQkJRjVCQjJC
QzUwMzBGNzcyMTAxRkNGRTFEIC8qIENvbXBsZXRpb24uaCAqLywKKwkJCQkxNDZCMTREQjEyRUI1
QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlU2V0LmNwcCAqLywKKwkJCQkxNDlEQUFGMjEyRUI1
NTlEMDA4M0IxMkIgLyogQ29uc2VydmF0aXZlU2V0LmggKi8sCiAJCQkJQkNBNjJERkYwRTI4MjYz
MTAwMDRGMzBEIC8qIENvbnN0cnVjdERhdGEuY3BwICovLAogCQkJCUJDOEYzQ0NGMERBRjE3QkEw
MDU3N0E4MCAvKiBDb25zdHJ1Y3REYXRhLmggKi8sCiAJCQkJQkNEMjAzNDUwRTE3MTM1RTAwMkM3
RTgyIC8qIERhdGVDb25zdHJ1Y3Rvci5jcHAgKi8sCkBAIC0yNzExLDYgKzI3MTYsNyBAQAogCQkJ
CUUxQTg2MkE5MEQ3RUJCNzYwMDFFQzZBQSAvKiBDb2xsYXRvcklDVS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlDMTEwN0VDMzc2MDA0MjdBNDggLyogQ29tbW9uSWRlbnRpZmllcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzIxMDdFQzM3NjAwNDI3QTQ4IC8qIENvbXBsZXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTQ2QjE2RDgxMkVCNUI1OTAwMUJFQzFCIC8qIENv
bnNlcnZhdGl2ZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDgyRTEwN0VDMDU3MDAx
M0U3QjIgLyogQ29uc3RydWN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjU2NTc0MjEx
NUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxODBCOUJG
RTBGMTZFOTREMDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODU4LDYgKzI4NjQsNyBAQAogCQkJCTg2OEJGQTBFMTE3Q0VGRDEwMEI5MDhCMSAvKiBTdHJpbmdJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVDMTA3RUM3RTcwMDY1MDQ0NiAvKiBT
dHJpbmdPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzM1RjI0RDEy
RTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NjI2QkVDRjExOTI4RTM5MDA3ODJGQUIgLyogU3RyaW5nU3RhdGljcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1
cmVDaGFpbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NzgsNyArMjg4NSw2IEBACiAJCQkJODY3
MDRCODYxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODY3MDRCODkxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg2NzA0QjQyMTJEQjhBODEwMEE5RkU3QiAvKiBZYXJyU3ludGF4Q2hlY2tlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29uc2VydmF0aXZlU2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitpbmxp
bmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCit7CisgICAgcmV0dXJuICEoKGludHB0
cl90KShwKSAmIChzaXplb2YoY2hhciopIC0gMSkpOworfQorCit2b2lkIENvbnNlcnZhdGl2ZVNl
dDo6YWRkKHZvaWQqIGJlZ2luLCB2b2lkKiBlbmQpCit7CisgICAgQVNTRVJUKGJlZ2luIDw9IGVu
ZCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNo
YXIqPihiZWdpbikpIDwgMHgxMDAwMDAwKTsKKyAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChi
ZWdpbikpOworICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGVuZCkpOworCisgICAgZm9yIChj
aGFyKiogaXQgPSBzdGF0aWNfY2FzdDxjaGFyKio+KGJlZ2luKTsgaXQgIT0gc3RhdGljX2Nhc3Q8
Y2hhcioqPihlbmQpOyArK2l0KSB7CisgICAgICAgIGlmICghbV9oZWFwLT5jb250YWlucygqaXQp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fdmVjdG9yLmFwcGVuZChyZWludGVy
cHJldF9jYXN0PEpTQ2VsbCo+KCppdCkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVT
ZXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNl
cnZhdGl2ZVNldC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ29uc2VydmF0aXZlU2V0
X2gKKyNkZWZpbmUgQ29uc2VydmF0aXZlU2V0X2gKKworI2luY2x1ZGUgIkhlYXAuaCIKKyNpbmNs
dWRlICJNYXJrU3RhY2suaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBK
U0MgeworCitjbGFzcyBKU0NlbGw7CisKK2NsYXNzIENvbnNlcnZhdGl2ZVNldCB7CitwdWJsaWM6
CisgICAgQ29uc2VydmF0aXZlU2V0KEhlYXAqKTsKKworICAgIHZvaWQgYWRkKHZvaWQqIGJlZ2lu
LCB2b2lkKiBlbmQpOworICAgIHZvaWQgbWFyayhNYXJrU3RhY2smKTsKKworcHJpdmF0ZToKKyAg
ICBIZWFwKiBtX2hlYXA7CisgICAgVmVjdG9yPEpTQ2VsbCosIDY0PiBtX3ZlY3RvcjsKK307CisK
K2lubGluZSBDb25zZXJ2YXRpdmVTZXQ6OkNvbnNlcnZhdGl2ZVNldChIZWFwKiBoZWFwKQorICAg
IDogbV9oZWFwKGhlYXApCit7Cit9CisKK2lubGluZSB2b2lkIENvbnNlcnZhdGl2ZVNldDo6bWFy
ayhNYXJrU3RhY2smIG1hcmtTdGFjaykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
dmVjdG9yLnNpemUoKTsgKytpKQorICAgICAgICBtYXJrU3RhY2suYXBwZW5kKG1fdmVjdG9yW2ld
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBDb25zZXJ2YXRpdmVTZXRf
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAKICNpbmNsdWRlICJD
b2xsZWN0b3JIZWFwSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJDb25zZXJ2YXRpdmVTZXQuaCIKICNp
bmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJHQ0hhbmRsZS5oIgogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0yNTYsOSArMjU3LDkgQEAgdm9pZCBIZWFwOjptYXJr
Um9vdHMoKQogICAgIC8vIFdlIGdhdGhlciB0aGUgY29uc2VydmF0aXZlIHNldCBiZWZvcmUgY2xl
YXJpbmcgbWFyayBiaXRzLCBiZWNhdXNlCiAgICAgLy8gY29uc2VydmF0aXZlIGdhdGhlcmluZyB1
c2VzIHRoZSBtYXJrIGJpdHMgZnJvbSBvdXIgbGFzdCBtYXJrIHBhc3MgdG8KICAgICAvLyBkZXRl
cm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KLSAgICBDb25zZXJ2YXRpdmVTZXQg
Y29uc2VydmF0aXZlU2V0OworICAgIENvbnNlcnZhdGl2ZVNldCBjb25zZXJ2YXRpdmVTZXQodGhp
cyk7CiAgICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya01hY2hpbmVTdGFja0NvbnNlcnZhdGl2
ZWx5KGNvbnNlcnZhdGl2ZVNldCk7Ci0gICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya0NvbnNl
cnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgcmVnaXN0ZXJGaWxlKCkuc3RhcnQoKSwgcmVnaXN0
ZXJGaWxlKCkuZW5kKCkpOworICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQocmVnaXN0ZXJGaWxlKCku
c3RhcnQoKSwgcmVnaXN0ZXJGaWxlKCkuZW5kKCkpOwogCiAgICAgLy8gUmVzZXQgbWFyayBiaXRz
LgogICAgIG1fbWFya2VkU3BhY2UuY2xlYXJNYXJrQml0cygpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCShyZXZp
c2lvbiA3NjQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFj
a01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKIAorI2luY2x1ZGUgIkNv
bnNlcnZhdGl2ZVNldC5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCkBAIC0yMTEsNyArMjEyLDcgQEAgdm9pZCBORVZF
Ul9JTkxJTkUgTWFjaGluZVN0YWNrTWFya2VyOjptYQogICAgIHZvaWQqIGJlZ2luID0gbV9oZWFw
LT5nbG9iYWxEYXRhKCktPnN0YWNrKCkuY3VycmVudCgpOwogICAgIHZvaWQqIGVuZCA9IG1faGVh
cC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhi
ZWdpbiwgZW5kKTsKLSAgICBtYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0aXZlU2V0LCBiZWdp
biwgZW5kKTsKKyAgICBjb25zZXJ2YXRpdmVTZXQuYWRkKGJlZ2luLCBlbmQpOwogfQogCiAjaWYg
Q09NUElMRVIoR0NDKQpAQCAtMzczLDEyICszNzQsMTIgQEAgdm9pZCBNYWNoaW5lU3RhY2tNYXJr
ZXI6Om1hcmtPdGhlclRocmVhZAogICAgIHNpemVfdCByZWdTaXplID0gZ2V0UGxhdGZvcm1UaHJl
YWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAKICAgICAvLyBtYXJr
IHRoZSB0aHJlYWQncyByZWdpc3RlcnMKLSAgICBtYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0
aXZlU2V0LCBzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVnU2l6ZSkpOworICAgIGNvbnNlcnZhdGl2
ZVNldC5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKIAogICAgIHZvaWQqIHN0
YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQb2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0
YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tCYXNlOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1Bv
aW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAgbWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNl
dCwgc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOworICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQoc3Rh
Y2tQb2ludGVyLCBzdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZv
cm1UaHJlYWQpOwogfQpAQCAtNDE0LDIzICs0MTUsNCBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtl
cjo6bWFya01hY2hpbmVTdGFjCiAjZW5kaWYKIH0KIAotaW5saW5lIGJvb2wgaXNQb2ludGVyQWxp
Z25lZCh2b2lkKiBwKQotewotICAgIHJldHVybiAhKChpbnRwdHJfdCkocCkgJiAoc2l6ZW9mKGNo
YXIqKSAtIDEpKTsKLX0KLQotdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtDb25zZXJ2YXRp
dmVseShDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNldCwgdm9pZCogc3RhcnQsIHZvaWQq
IGVuZCkKLXsKLSAgICBBU1NFUlQoc3RhcnQgPD0gZW5kKTsKLSAgICBBU1NFUlQoKHN0YXRpY19j
YXN0PGNoYXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXJ0KSkgPCAweDEwMDAwMDAp
OwotICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKHN0YXJ0KSk7Ci0gICAgQVNTRVJUKGlzUG9p
bnRlckFsaWduZWQoZW5kKSk7Ci0KLSAgICBmb3IgKGNoYXIqKiBpdCA9IHN0YXRpY19jYXN0PGNo
YXIqKj4oc3RhcnQpOyBpdCAhPSBzdGF0aWNfY2FzdDxjaGFyKio+KGVuZCk7ICsraXQpIHsKLSAg
ICAgICAgaWYgKCFtX2hlYXAtPmNvbnRhaW5zKCppdCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgY29uc2VydmF0aXZlU2V0LmFkZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KCpp
dCkpOwotICAgIH0KLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuaAkocmV2aXNpb24g
NzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJr
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfk1hY2hpbmVTdGFja01hcmtlcigpOwogCiAgICAgICAgIHZvaWQgbWFya01hY2hpbmVT
dGFja0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYpOwotICAgICAgICB2b2lkIG1hcmtD
b25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmLCB2b2lkKiBzdGFydCwgdm9pZCogZW5kKTsK
IAogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgdm9pZCBtYWtlVXNh
YmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFya1N0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFya1N0YWNrLmgJKHJldmlzaW9uIDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFya1N0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCwxOCArMTg4LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICB9OwogICAgIAotICAgIGNsYXNzIENvbnNl
cnZhdGl2ZVNldCB7Ci0gICAgcHVibGljOgotICAgICAgICB2b2lkIGFkZChKU0NlbGwqIGNlbGwp
IHsgbV92ZWN0b3IuYXBwZW5kKGNlbGwpOyB9Ci0gICAgICAgIHZvaWQgbWFyayhNYXJrU3RhY2sm
IG1hcmtTdGFjaykKLSAgICAgICAgewotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3ZlY3Rvci5zaXplKCk7ICsraSkKLSAgICAgICAgICAgICAgICBtYXJrU3RhY2suYXBwZW5k
KG1fdmVjdG9yW2ldKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgVmVjdG9y
PEpTQ2VsbCosIDY0PiBtX3ZlY3RvcjsKLSAgICB9OwogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79850</attachid>
            <date>2011-01-22 10:59:20 -0800</date>
            <delta_ts>2011-01-22 12:10:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52946-20110122105919.patch</filename>
            <type>text/plain</type>
            <size>19995</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzY0MzIpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMDEtMjIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBNYWNpZWogU3RhY2hvd2lhay4KKworICAgICAgICBBIGZldyBvZiBNYWNpZWoncyByZXZpZXcg
c3VnZ2VzdGlvbnMgZm9yIG15IGxhc3QgcGF0Y2guCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk0NiAgICAgICAgCisKKyAgICAgICAgU3VuU3BpZGVy
IHJlcG9ydHMgbm8gY2hhbmdlLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBKYXZh
U2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnBybzoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
IFVwZGF0ZWQgYnVpbGQgc3lzdGVtcy4KKworICAgICAgICAqIHJ1bnRpbWUvQ29uc2VydmF0aXZl
U2V0LmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OmlzUG9pbnRlckFsaWduZWQpOgorICAgICAg
ICAoSlNDOjpDb25zZXJ2YXRpdmVTZXQ6OmFkZCk6CisgICAgICAgICogcnVudGltZS9Db25zZXJ2
YXRpdmVTZXQuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbnNlcnZhdGl2ZVNldDo6Q29uc2Vy
dmF0aXZlU2V0KToKKyAgICAgICAgKEpTQzo6Q29uc2VydmF0aXZlU2V0OjptYXJrKTogU3BsaXQg
Q29uc2VydmF0aXZlU2V0IG91dCBpbnRvIGl0cyBvd24KKyAgICAgICAgZmlsZSwgYW5kIG1vdmVk
IHRoZSBjb25zZXJ2YXRpdmUgY2hlY2sgaW50byBDb25zZXJ2YXRpdmVTZXQ6OmFkZCwgbWFraW5n
CisgICAgICAgIENvbnNlcnZhdGl2ZVNldCdzIHJlc3BvbnNpYmlsaXR5IGNsZWFyZXIuCisKKyAg
ICAgICAgKiBydW50aW1lL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9vdHMp
OgorICAgICAgICAqIHJ1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcDoKKyAgICAgICAgKEpT
Qzo6TWFjaGluZVN0YWNrTWFya2VyOjptYXJrQ3VycmVudFRocmVhZENvbnNlcnZhdGl2ZWx5SW50
ZXJuYWwpOgorICAgICAgICAoSlNDOjpNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtPdGhlclRocmVh
ZENvbnNlcnZhdGl2ZWx5KToKKyAgICAgICAgKiBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5o
OgorICAgICAgICAqIHJ1bnRpbWUvTWFya1N0YWNrLmg6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgYWJv
dmUuCisKIDIwMTEtMDEtMjEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBCZXRoIERha2luLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJv
aWQubWsJKHJldmlzaW9uIDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQu
bWsJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsNyBAQCBMT0NBTF9TUkNfRklMRVMgOj0g
XAogCXJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAgXAogCXJ1bnRpbWUvTG9va3VwLmNwcCBcCiAJ
cnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwIFwKKwlydW50aW1lL0NvbnNlcnZhdGl2ZVNl
dC5jcHAgXAogCXJ1bnRpbWUvTWFya1N0YWNrLmNwcCBcCiAJcnVudGltZS9NYXJrU3RhY2tQb3Np
eC5jcHAgXAogCXJ1bnRpbWUvTWF0aE9iamVjdC5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsNyBAQCBTRVQo
SmF2YVNjcmlwdENvcmVfU09VUkNFUwogICAgIHJ1bnRpbWUvTGl0ZXJhbFBhcnNlci5jcHAKICAg
ICBydW50aW1lL0xvb2t1cC5jcHAKICAgICBydW50aW1lL01hY2hpbmVTdGFja01hcmtlci5jcHAK
KyAgICBydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAKICAgICBydW50aW1lL01hcmtTdGFjay5j
cHAKICAgICBydW50aW1lL01hdGhPYmplY3QuY3BwCiAgICAgcnVudGltZS9OYXRpdmVFcnJvckNv
bnN0cnVjdG9yLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2
aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTM0Myw2ICszNDMsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmggXAorICAgICAgICBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwIFwKKyAgICAgICAg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmggXAogCVNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtTdGFjay5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL01hcmtTdGFjay5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9NYXRoT2JqZWN0LmNwcCBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCw4IEBACiAg
ICAgICAgICAgICAncnVudGltZS9Mb29rdXAuaCcsCiAgICAgICAgICAgICAncnVudGltZS9NYWNo
aW5lU3RhY2tNYXJrZXIuY3BwJywKICAgICAgICAgICAgICdydW50aW1lL01hY2hpbmVTdGFja01h
cmtlci5oJywKKyAgICAgICAgICAgICdydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAnLAorICAg
ICAgICAgICAgJ3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmgnLAogICAgICAgICAgICAgJ3J1bnRp
bWUvTWFya1N0YWNrLmNwcCcsCiAgICAgICAgICAgICAncnVudGltZS9NYXJrU3RhY2suaCcsCiAg
ICAgICAgICAgICAncnVudGltZS9NYXJrU3RhY2tXaW4uY3BwJywKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybwkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNzks
NiArMTc5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcnVudGltZS9NYXJrU3RhY2tQb3NpeC5jcHAg
XAogICAgIHJ1bnRpbWUvTWFya1N0YWNrU3ltYmlhbi5jcHAgXAogICAgIHJ1bnRpbWUvTWFya1N0
YWNrV2luLmNwcCBcCisgICAgcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuY3BwIFwKICAgICBydW50
aW1lL01hcmtTdGFjay5jcHAgXAogICAgIHJ1bnRpbWUvTWF0aE9iamVjdC5jcHAgXAogICAgIHJ1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHJldmlzaW9u
IDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTEw
MDIsNiArMTAwMiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxydW50aW1lXENvbnNlcnZhdGl2ZVNldC5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHJ1bnRpbWVcQ29uc2VydmF0
aXZlU2V0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXHJ1bnRpbWVcTWFya1N0YWNrLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNzY0MjkpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiw3IEBACiAJCTE0NDY5REVEMTA3RUM3RTcwMDY1MDQ0
NiAvKiBTdHJpbmdQcm90b3R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxOEMzQzUwRTE2RUUzMzAwQjM0NDYwIC8qIFN0cmluZ1Byb3RvdHlw
ZS5jcHAgKi87IH07CiAJCTE0NDY5REVFMTA3RUM3RTcwMDY1MDQ0NiAvKiBVU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2OTJBODg1MDI1
NTU5N0QwMUZGNjBGNyAvKiBVU3RyaW5nLmNwcCAqLzsgfTsKIAkJMTQ2QUFCMzgwQjY2QTk0NDAw
RTU1RjE2IC8qIEpTU3RyaW5nUmVmQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ2QUFCMzcwQjY2QTk0NDAwRTU1RjE2IC8qIEpTU3RyaW5nUmVm
Q0YuY3BwICovOyB9OworCQkxNDZCMTZEODEyRUI1QjU5MDAxQkVDMUIgLyogQ29uc2VydmF0aXZl
U2V0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NkIxNERCMTJFQjVCMTIwMDFCRUMxQiAvKiBDb25zZXJ2YXRpdmVTZXQuY3BwICovOyB9OwogCQkx
NDZGRTUxMjExQTcxMDQzMDA4N0FFNjYgLyogSklUQ2FsbDMyXzY0LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NkZFNTExMTFBNzEwNDMwMDg3QUU2
NiAvKiBKSVRDYWxsMzJfNjQuY3BwICovOyB9OwogCQkxNDdCODNBQzBFNkRCOEM5MDA0Nzc1QTQg
LyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0N0I4M0FBMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRjaGVk
VHJhbnNpdGlvbk9wdGltaXplci5oICovOyB9OwogCQkxNDdCODQ2MzBFNkRFNkIxMDA0Nzc1QTQg
LyogUHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNDdCODQ2MjBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcwOCw2
ICs3MDksNyBAQAogCQkxNDVDNTA3RjBEOURGNjNCMDA4OEY2QjkgLyogQ2FsbERhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbERhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTQ2QUFCMkEwQjY2QTg0OTAwRTU1RjE2IC8qIEpTU3RyaW5nUmVmQ0Yu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU3RyaW5nUmVmQ0YuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ2QUFCMzcwQjY2QTk0NDAwRTU1RjE2IC8qIEpT
U3RyaW5nUmVmQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U3RyaW5nUmVmQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDZCMTREQjEy
RUI1QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENvbnNlcnZhdGl2ZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0NkZFNTExMTFBNzEwNDMwMDg3QUU2NiAvKiBKSVRDYWxsMzJfNjQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUQ2FsbDMyXzY0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3NjA4NjMwOTlDNjMzODAwNDM3MTI4IC8q
IEpTSW1tZWRpYXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SW1tZWRpYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3QjgzQUEwRTZE
QjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MjUsNiArNzI3LDcgQEAKIAkJMTQ4Q0QxRDcxMDhD
RjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJlZlByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDb250ZXh0UmVmUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxNDk1NTlFRDBERENEREY3MDA2NDgwODcgLyogRGVidWdnZXJDYWxsRnJhbWUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGVidWdnZXJDYWxsRnJh
bWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDlCMjRGRjBEOEFGNkQxMDA5
Q0I4QzcgLyogUmVnaXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVn
aXN0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ5REFBRjIxMkVCNTU5RDAw
ODNCMTJCIC8qIENvbnNlcnZhdGl2ZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb25zZXJ2YXRpdmVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRB
MTU2MzAxMDk2NjM2NTAwNkZBMjYwIC8qIERhdGVJbnN0YW5jZUNhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVJbnN0YW5jZUNhY2hlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0QTIzRDZDMEY0RTE5Q0UwMDIzQ0RBRCAvKiBKSVRTdHVicy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRTdHVicy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0QTM5NkE2MENEMjkzMzEwMEI1QjRGRiAvKiBTeW1i
b2xUYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTeW1ib2xUYWJsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcwOCw2ICsxNzExLDggQEAKIAkJCQk2
NUVBNzM2MzBCQUUzNUQxMDAxQkI1NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCAqLywKIAkJCQk5
NjlBMDkyMjBFRDFFMDlDMDBGMUY2ODEgLyogQ29tcGxldGlvbi5jcHAgKi8sCiAJCQkJRjVCQjJC
QzUwMzBGNzcyMTAxRkNGRTFEIC8qIENvbXBsZXRpb24uaCAqLywKKwkJCQkxNDZCMTREQjEyRUI1
QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlU2V0LmNwcCAqLywKKwkJCQkxNDlEQUFGMjEyRUI1
NTlEMDA4M0IxMkIgLyogQ29uc2VydmF0aXZlU2V0LmggKi8sCiAJCQkJQkNBNjJERkYwRTI4MjYz
MTAwMDRGMzBEIC8qIENvbnN0cnVjdERhdGEuY3BwICovLAogCQkJCUJDOEYzQ0NGMERBRjE3QkEw
MDU3N0E4MCAvKiBDb25zdHJ1Y3REYXRhLmggKi8sCiAJCQkJQkNEMjAzNDUwRTE3MTM1RTAwMkM3
RTgyIC8qIERhdGVDb25zdHJ1Y3Rvci5jcHAgKi8sCkBAIC0yNzExLDYgKzI3MTYsNyBAQAogCQkJ
CUUxQTg2MkE5MEQ3RUJCNzYwMDFFQzZBQSAvKiBDb2xsYXRvcklDVS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxNDdGMzlDMTEwN0VDMzc2MDA0MjdBNDggLyogQ29tbW9uSWRlbnRpZmllcnMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ3RjM5QzIxMDdFQzM3NjAwNDI3QTQ4IC8qIENvbXBsZXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTQ2QjE2RDgxMkVCNUI1OTAwMUJFQzFCIC8qIENv
bnNlcnZhdGl2ZVNldC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDI4MDgyRTEwN0VDMDU3MDAx
M0U3QjIgLyogQ29uc3RydWN0RGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NjU2NTc0MjEx
NUJFM0RBMDAyOTFGNDAgLyogQ1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxODBCOUJG
RTBGMTZFOTREMDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODU4LDYgKzI4NjQsNyBAQAogCQkJCTg2OEJGQTBFMTE3Q0VGRDEwMEI5MDhCMSAvKiBTdHJpbmdJ
bXBsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NDY5REVDMTA3RUM3RTcwMDY1MDQ0NiAvKiBT
dHJpbmdPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ0NjlERUQxMDdFQzdFNzAwNjUw
NDQ2IC8qIFN0cmluZ1Byb3RvdHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzM1RjI0RDEy
RTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVjdXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk4NjI2QkVDRjExOTI4RTM5MDA3ODJGQUIgLyogU3RyaW5nU3RhdGljcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0RFM0I0MzBFNkM4MzJEMDAxNDUzQTcgLyogU3RydWN0dXJlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTdFNEVFNzBGMEVCQjdBNUIwMDU5MzRBQSAvKiBTdHJ1Y3R1
cmVDaGFpbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NzgsNyArMjg4NSw2IEBACiAJCQkJODY3
MDRCODYxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJKSVQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODY3MDRCODkxMkRCQTMzNzAwQTlGRTdCIC8qIFlhcnJQYXR0ZXJuLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg2NzA0QjQyMTJEQjhBODEwMEE5RkU3QiAvKiBZYXJyU3ludGF4Q2hlY2tlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk5MzM1RjI0RDEyRTY3NjVCMDAyQjU1NTMgLyogU3RyaW5nUmVj
dXJzaW9uQ2hlY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc2VydmF0aXZlU2V0LmNwcAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNlcnZhdGl2ZVNldC5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29uc2VydmF0aXZlU2V0LmgiCisKK25hbWVzcGFjZSBKU0MgeworCitpbmxp
bmUgYm9vbCBpc1BvaW50ZXJBbGlnbmVkKHZvaWQqIHApCit7CisgICAgcmV0dXJuICEoKGludHB0
cl90KShwKSAmIChzaXplb2YoY2hhciopIC0gMSkpOworfQorCit2b2lkIENvbnNlcnZhdGl2ZVNl
dDo6YWRkKHZvaWQqIGJlZ2luLCB2b2lkKiBlbmQpCit7CisgICAgQVNTRVJUKGJlZ2luIDw9IGVu
ZCk7CisgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxjaGFyKj4oZW5kKSAtIHN0YXRpY19jYXN0PGNo
YXIqPihiZWdpbikpIDwgMHgxMDAwMDAwKTsKKyAgICBBU1NFUlQoaXNQb2ludGVyQWxpZ25lZChi
ZWdpbikpOworICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKGVuZCkpOworCisgICAgZm9yIChj
aGFyKiogaXQgPSBzdGF0aWNfY2FzdDxjaGFyKio+KGJlZ2luKTsgaXQgIT0gc3RhdGljX2Nhc3Q8
Y2hhcioqPihlbmQpOyArK2l0KSB7CisgICAgICAgIGlmICghbV9oZWFwLT5jb250YWlucygqaXQp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIG1fdmVjdG9yLmFwcGVuZChyZWludGVy
cHJldF9jYXN0PEpTQ2VsbCo+KCppdCkpOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgSlND
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVTZXQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zZXJ2YXRpdmVT
ZXQuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNl
cnZhdGl2ZVNldC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQ29uc2VydmF0aXZlU2V0
X2gKKyNkZWZpbmUgQ29uc2VydmF0aXZlU2V0X2gKKworI2luY2x1ZGUgIkhlYXAuaCIKKyNpbmNs
dWRlICJNYXJrU3RhY2suaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBK
U0MgeworCitjbGFzcyBKU0NlbGw7CisKK2NsYXNzIENvbnNlcnZhdGl2ZVNldCB7CitwdWJsaWM6
CisgICAgQ29uc2VydmF0aXZlU2V0KEhlYXAqKTsKKworICAgIHZvaWQgYWRkKHZvaWQqIGJlZ2lu
LCB2b2lkKiBlbmQpOworICAgIHZvaWQgbWFyayhNYXJrU3RhY2smKTsKKworcHJpdmF0ZToKKyAg
ICBIZWFwKiBtX2hlYXA7CisgICAgVmVjdG9yPEpTQ2VsbCosIDY0PiBtX3ZlY3RvcjsKK307CisK
K2lubGluZSBDb25zZXJ2YXRpdmVTZXQ6OkNvbnNlcnZhdGl2ZVNldChIZWFwKiBoZWFwKQorICAg
IDogbV9oZWFwKGhlYXApCit7Cit9CisKK2lubGluZSB2b2lkIENvbnNlcnZhdGl2ZVNldDo6bWFy
ayhNYXJrU3RhY2smIG1hcmtTdGFjaykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
dmVjdG9yLnNpemUoKTsgKytpKQorICAgICAgICBtYXJrU3RhY2suYXBwZW5kKG1fdmVjdG9yW2ld
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBDb25zZXJ2YXRpdmVTZXRf
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHJldmlzaW9uIDc2
NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSGVhcC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJIZWFwLmgiCiAKICNpbmNsdWRlICJD
b2xsZWN0b3JIZWFwSXRlcmF0b3IuaCIKKyNpbmNsdWRlICJDb25zZXJ2YXRpdmVTZXQuaCIKICNp
bmNsdWRlICJHQ0FjdGl2aXR5Q2FsbGJhY2suaCIKICNpbmNsdWRlICJHQ0hhbmRsZS5oIgogI2lu
Y2x1ZGUgIkludGVycHJldGVyLmgiCkBAIC0yNTYsOSArMjU3LDkgQEAgdm9pZCBIZWFwOjptYXJr
Um9vdHMoKQogICAgIC8vIFdlIGdhdGhlciB0aGUgY29uc2VydmF0aXZlIHNldCBiZWZvcmUgY2xl
YXJpbmcgbWFyayBiaXRzLCBiZWNhdXNlCiAgICAgLy8gY29uc2VydmF0aXZlIGdhdGhlcmluZyB1
c2VzIHRoZSBtYXJrIGJpdHMgZnJvbSBvdXIgbGFzdCBtYXJrIHBhc3MgdG8KICAgICAvLyBkZXRl
cm1pbmUgd2hldGhlciBhIHJlZmVyZW5jZSBpcyB2YWxpZC4KLSAgICBDb25zZXJ2YXRpdmVTZXQg
Y29uc2VydmF0aXZlU2V0OworICAgIENvbnNlcnZhdGl2ZVNldCBjb25zZXJ2YXRpdmVTZXQodGhp
cyk7CiAgICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya01hY2hpbmVTdGFja0NvbnNlcnZhdGl2
ZWx5KGNvbnNlcnZhdGl2ZVNldCk7Ci0gICAgbV9tYWNoaW5lU3RhY2tNYXJrZXIubWFya0NvbnNl
cnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNldCwgcmVnaXN0ZXJGaWxlKCkuc3RhcnQoKSwgcmVnaXN0
ZXJGaWxlKCkuZW5kKCkpOworICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQocmVnaXN0ZXJGaWxlKCku
c3RhcnQoKSwgcmVnaXN0ZXJGaWxlKCkuZW5kKCkpOwogCiAgICAgLy8gUmVzZXQgbWFyayBiaXRz
LgogICAgIG1fbWFya2VkU3BhY2UuY2xlYXJNYXJrQml0cygpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTWFjaGluZVN0YWNrTWFya2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuY3BwCShyZXZp
c2lvbiA3NjQzMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hY2hpbmVTdGFj
a01hcmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJNYWNoaW5lU3RhY2tNYXJrZXIuaCIKIAorI2luY2x1ZGUgIkNv
bnNlcnZhdGl2ZVNldC5oIgogI2luY2x1ZGUgIkhlYXAuaCIKICNpbmNsdWRlICJKU0FycmF5Lmgi
CiAjaW5jbHVkZSAiSlNHbG9iYWxEYXRhLmgiCkBAIC0yMTEsNyArMjEyLDcgQEAgdm9pZCBORVZF
Ul9JTkxJTkUgTWFjaGluZVN0YWNrTWFya2VyOjptYQogICAgIHZvaWQqIGJlZ2luID0gbV9oZWFw
LT5nbG9iYWxEYXRhKCktPnN0YWNrKCkuY3VycmVudCgpOwogICAgIHZvaWQqIGVuZCA9IG1faGVh
cC0+Z2xvYmFsRGF0YSgpLT5zdGFjaygpLm9yaWdpbigpOwogICAgIHN3YXBJZkJhY2t3YXJkcyhi
ZWdpbiwgZW5kKTsKLSAgICBtYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0aXZlU2V0LCBiZWdp
biwgZW5kKTsKKyAgICBjb25zZXJ2YXRpdmVTZXQuYWRkKGJlZ2luLCBlbmQpOwogfQogCiAjaWYg
Q09NUElMRVIoR0NDKQpAQCAtMzczLDEyICszNzQsMTIgQEAgdm9pZCBNYWNoaW5lU3RhY2tNYXJr
ZXI6Om1hcmtPdGhlclRocmVhZAogICAgIHNpemVfdCByZWdTaXplID0gZ2V0UGxhdGZvcm1UaHJl
YWRSZWdpc3RlcnModGhyZWFkLT5wbGF0Zm9ybVRocmVhZCwgcmVncyk7CiAKICAgICAvLyBtYXJr
IHRoZSB0aHJlYWQncyByZWdpc3RlcnMKLSAgICBtYXJrQ29uc2VydmF0aXZlbHkoY29uc2VydmF0
aXZlU2V0LCBzdGF0aWNfY2FzdDx2b2lkKj4oJnJlZ3MpLCBzdGF0aWNfY2FzdDx2b2lkKj4ocmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oJnJlZ3MpICsgcmVnU2l6ZSkpOworICAgIGNvbnNlcnZhdGl2
ZVNldC5hZGQoc3RhdGljX2Nhc3Q8dm9pZCo+KCZyZWdzKSwgc3RhdGljX2Nhc3Q8dm9pZCo+KHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZyZWdzKSArIHJlZ1NpemUpKTsKIAogICAgIHZvaWQqIHN0
YWNrUG9pbnRlciA9IG90aGVyVGhyZWFkU3RhY2tQb2ludGVyKHJlZ3MpOwogICAgIHZvaWQqIHN0
YWNrQmFzZSA9IHRocmVhZC0+c3RhY2tCYXNlOwogICAgIHN3YXBJZkJhY2t3YXJkcyhzdGFja1Bv
aW50ZXIsIHN0YWNrQmFzZSk7Ci0gICAgbWFya0NvbnNlcnZhdGl2ZWx5KGNvbnNlcnZhdGl2ZVNl
dCwgc3RhY2tQb2ludGVyLCBzdGFja0Jhc2UpOworICAgIGNvbnNlcnZhdGl2ZVNldC5hZGQoc3Rh
Y2tQb2ludGVyLCBzdGFja0Jhc2UpOwogCiAgICAgcmVzdW1lVGhyZWFkKHRocmVhZC0+cGxhdGZv
cm1UaHJlYWQpOwogfQpAQCAtNDE0LDIzICs0MTUsNCBAQCB2b2lkIE1hY2hpbmVTdGFja01hcmtl
cjo6bWFya01hY2hpbmVTdGFjCiAjZW5kaWYKIH0KIAotaW5saW5lIGJvb2wgaXNQb2ludGVyQWxp
Z25lZCh2b2lkKiBwKQotewotICAgIHJldHVybiAhKChpbnRwdHJfdCkocCkgJiAoc2l6ZW9mKGNo
YXIqKSAtIDEpKTsKLX0KLQotdm9pZCBNYWNoaW5lU3RhY2tNYXJrZXI6Om1hcmtDb25zZXJ2YXRp
dmVseShDb25zZXJ2YXRpdmVTZXQmIGNvbnNlcnZhdGl2ZVNldCwgdm9pZCogc3RhcnQsIHZvaWQq
IGVuZCkKLXsKLSAgICBBU1NFUlQoc3RhcnQgPD0gZW5kKTsKLSAgICBBU1NFUlQoKHN0YXRpY19j
YXN0PGNoYXIqPihlbmQpIC0gc3RhdGljX2Nhc3Q8Y2hhcio+KHN0YXJ0KSkgPCAweDEwMDAwMDAp
OwotICAgIEFTU0VSVChpc1BvaW50ZXJBbGlnbmVkKHN0YXJ0KSk7Ci0gICAgQVNTRVJUKGlzUG9p
bnRlckFsaWduZWQoZW5kKSk7Ci0KLSAgICBmb3IgKGNoYXIqKiBpdCA9IHN0YXRpY19jYXN0PGNo
YXIqKj4oc3RhcnQpOyBpdCAhPSBzdGF0aWNfY2FzdDxjaGFyKio+KGVuZCk7ICsraXQpIHsKLSAg
ICAgICAgaWYgKCFtX2hlYXAtPmNvbnRhaW5zKCppdCkpCi0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgY29uc2VydmF0aXZlU2V0LmFkZChyZWludGVycHJldF9jYXN0PEpTQ2VsbCo+KCpp
dCkpOwotICAgIH0KLX0KLQogfSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJrZXIuaAkocmV2aXNpb24g
NzY0MjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYWNoaW5lU3RhY2tNYXJr
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfk1hY2hpbmVTdGFja01hcmtlcigpOwogCiAgICAgICAgIHZvaWQgbWFya01hY2hpbmVT
dGFja0NvbnNlcnZhdGl2ZWx5KENvbnNlcnZhdGl2ZVNldCYpOwotICAgICAgICB2b2lkIG1hcmtD
b25zZXJ2YXRpdmVseShDb25zZXJ2YXRpdmVTZXQmLCB2b2lkKiBzdGFydCwgdm9pZCogZW5kKTsK
IAogI2lmIEVOQUJMRShKU0NfTVVMVElQTEVfVEhSRUFEUykKICAgICAgICAgdm9pZCBtYWtlVXNh
YmxlRnJvbU11bHRpcGxlVGhyZWFkcygpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFya1N0YWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTWFya1N0YWNrLmgJKHJldmlzaW9uIDc2NDI5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvTWFya1N0YWNrLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4OCwxOCArMTg4LDYg
QEAgbmFtZXNwYWNlIEpTQyB7CiAjZW5kaWYKICAgICB9OwogICAgIAotICAgIGNsYXNzIENvbnNl
cnZhdGl2ZVNldCB7Ci0gICAgcHVibGljOgotICAgICAgICB2b2lkIGFkZChKU0NlbGwqIGNlbGwp
IHsgbV92ZWN0b3IuYXBwZW5kKGNlbGwpOyB9Ci0gICAgICAgIHZvaWQgbWFyayhNYXJrU3RhY2sm
IG1hcmtTdGFjaykKLSAgICAgICAgewotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3ZlY3Rvci5zaXplKCk7ICsraSkKLSAgICAgICAgICAgICAgICBtYXJrU3RhY2suYXBwZW5k
KG1fdmVjdG9yW2ldKTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgVmVjdG9y
PEpTQ2VsbCosIDY0PiBtX3ZlY3RvcjsKLSAgICB9OwogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="71293"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>