<?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>100866</bug_id>
          
          <creation_ts>2012-10-31 09:42:52 -0700</creation_ts>
          <short_desc>Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com</short_desc>
          <delta_ts>2012-11-02 02:17:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mifenton</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755384</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-31 09:42:52 -0700</bug_when>
    <thetext>EOM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755412</commentid>
    <comment_count>1</comment_count>
      <attachid>171678</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-10-31 10:11:50 -0700</bug_when>
    <thetext>Created attachment 171678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755430</commentid>
    <comment_count>2</comment_count>
      <attachid>171678</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-31 10:21:23 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

Attachment 171678 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14684182</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755433</commentid>
    <comment_count>3</comment_count>
      <attachid>171678</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-31 10:23:18 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

Attachment 171678 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14687204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755455</commentid>
    <comment_count>4</comment_count>
      <attachid>171678</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-31 10:49:07 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

Attachment 171678 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14677209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755491</commentid>
    <comment_count>5</comment_count>
      <attachid>171678</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-31 11:32:17 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

Attachment 171678 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14686207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755495</commentid>
    <comment_count>6</comment_count>
      <attachid>171678</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-10-31 11:34:07 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

Attachment 171678 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14687216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755956</commentid>
    <comment_count>7</comment_count>
      <attachid>171678</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-01 00:28:49 -0700</bug_when>
    <thetext>Comment on attachment 171678
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171678&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        I put instrumentation code for ElementRareData to Element.cpp and NodeRareData to Node.cpp

We don&apos;t usually put implementation of one class into .cpp of another so could you put the instrumentation into appropriate .cpp files?

&gt; Source/WebCore/dom/DocumentOrderedMap.cpp:167
&gt; +    MemoryClassInfo info(memoryObjectInfo, this);

Is WebCoreMemoryTypes::DOM missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756937</commentid>
    <comment_count>8</comment_count>
      <attachid>171994</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-02 00:23:21 -0700</bug_when>
    <thetext>Created attachment 171994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756953</commentid>
    <comment_count>9</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-02 00:41:56 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 171678 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171678&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        I put instrumentation code for ElementRareData to Element.cpp and NodeRareData to Node.cpp
&gt; 
&gt; We don&apos;t usually put implementation of one class into .cpp of another so could you put the instrumentation into appropriate .cpp files?

done

&gt; 
&gt; &gt; Source/WebCore/dom/DocumentOrderedMap.cpp:167
&gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this);
&gt; 
&gt; Is WebCoreMemoryTypes::DOM missing?

This map looks like a common container.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756962</commentid>
    <comment_count>10</comment_count>
      <attachid>171994</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-02 01:04:32 -0700</bug_when>
    <thetext>Comment on attachment 171994
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=171994&amp;action=review

&gt; Source/WebCore/dom/Element.cpp:82
&gt; +#include &lt;wtf/MemoryInstrumentation.h&gt;

No need to include it as it is already included in WebCoreMemoryInstrumentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756963</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-02 01:05:27 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/DocumentOrderedMap.cpp:167
&gt; &gt; &gt; +    MemoryClassInfo info(memoryObjectInfo, this);
&gt; &gt; 
&gt; &gt; Is WebCoreMemoryTypes::DOM missing?
&gt; 
&gt; This map looks like a common container.

It should belong to the DOM domain by default which can be overriden when it is not so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756968</commentid>
    <comment_count>12</comment_count>
      <attachid>171994</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-02 01:12:33 -0700</bug_when>
    <thetext>Comment on attachment 171994
Patch

Attachment 171994 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14684750</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756971</commentid>
    <comment_count>13</comment_count>
      <attachid>172004</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-02 01:30:20 -0700</bug_when>
    <thetext>Created attachment 172004
for mac bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756994</commentid>
    <comment_count>14</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-02 02:11:46 -0700</bug_when>
    <thetext>Committed r133275: &lt;http://trac.webkit.org/changeset/133275&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171678</attachid>
            <date>2012-10-31 10:11:50 -0700</date>
            <delta_ts>2012-11-02 00:23:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100866-20121031211012.patch</filename>
            <type>text/plain</type>
            <size>17558</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI0MDgyMzUxYjYyYmM3
MTNmZTA0MjY4ODI1YTViZmNlYmE0MGNjMi4uY2UwMDI1OTM5OWU4ZGM5NDYwM2Y0M2JjZDdhNzBm
MjI2OGVlZmE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTEwLTMxICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBTaGFkb3dSb290LiBJdCBnaXZlcyB1cyB+NDAwayBvbiBwbHVz
Lmdvb2dsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDg2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBsYWluIHZhbmlsbGEgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBjb2RlIGZvciBIVE1MSW5w
dXRFbGVtZW50IHdoaWNoIGhhcyBhIEVsZW1lbnRTaGFkb3cuCisgICAgICAgIEkgcHV0IGluc3Ry
dW1lbnRhdGlvbiBjb2RlIGZvciBFbGVtZW50UmFyZURhdGEgdG8gRWxlbWVudC5jcHAgYW5kIE5v
ZGVSYXJlRGF0YSB0byBOb2RlLmNwcAorICAgICAgICBiZWNhdXNlIGhlYWRlcnMgZm9yIHRoZXNl
IGNsYXNzZXMgZG9uJ3QgaGF2ZSBjcHAgZmlsZXMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnRP
cmRlcmVkTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50T3JkZXJlZE1hcDo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50T3JkZXJlZE1hcC5oOgorICAgICAgICAoRG9jdW1lbnRPcmRlcmVkTWFwKToKKyAgICAgICAg
KiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
RWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6Cisg
ICAgICAgICogZG9tL0VsZW1lbnRSYXJlRGF0YS5oOgorICAgICAgICAoRWxlbWVudFJhcmVEYXRh
KToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
bGVtZW50U2hhZG93OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgorICAgICAgICAoRWxlbWVudFNoYWRvdyk6Cisg
ICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURh
dGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVJhcmVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL05v
ZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxpc3RzTm9kZURhdGEpOgorICAgICAgICAoTm9k
ZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlcG9ydE1lbW9yeVVzYWdlKToK
KyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAg
ICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9UcmVl
U2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoSFRNTEZvcm1Db250cm9sRWxl
bWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoSFRN
TElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cmVw
b3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQpOgorCiAyMDEyLTEwLTMxICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGF0dGVtcHQgdG8gZml4IHRoZSByZWxlYXNlIGJ1
aWxkIGJ5IG5vdCBleHBvcnRpbmcgc3ltYm9scyB0aGF0IGFyZW4ndCBkZWZpbmVkIHRoZXJlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcAppbmRleCBiYmQ4YjNiMTZl
YWY0OWUwMTZlZDA0NzZiMGJiNGE5ZTc2MDYwNDUzLi5iNmZiOTE0MGNhODc3MjY0NGRkZTkwMjVj
ODAzY2NmMmYxYzYwNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRP
cmRlcmVkTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFw
LmNwcApAQCAtMzUsNiArMzUsOSBAQAogI2luY2x1ZGUgIkhUTUxNYXBFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiVHJlZVNjb3BlLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoQ291bnRlZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTU5LDQgKzE2Miwx
MSBAQCBFbGVtZW50KiBEb2N1bWVudE9yZGVyZWRNYXA6OmdldEVsZW1lbnRCeUxhYmVsRm9yQXR0
cmlidXRlKEF0b21pY1N0cmluZ0ltcGwqIGtleQogICAgIHJldHVybiBnZXQ8a2V5TWF0Y2hlc0xh
YmVsRm9yQXR0cmlidXRlPihrZXksIHNjb3BlKTsKIH0KIAordm9pZCBEb2N1bWVudE9yZGVyZWRN
YXA6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXApOworICAgIGluZm8uYWRkTWVtYmVyKG1fZHVw
bGljYXRlQ291bnRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oCmluZGV4IDFmOTAzOWU2MTQzZDM4NjI4ZGZhMzAwYWU5
ODZhMDFlZTMyM2M3ZDUuLmY3ZGViM2JmZTBkYmViYTNlYWI0YzA3YzQwOThmMDk3NTBiZWJkZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmgKQEAgLTU2LDYgKzU2LDgg
QEAgcHVibGljOgogCiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCkgY29uc3Q7CiAKKyAgICB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICB0ZW1wbGF0ZTxib29sIGtleU1hdGNoZXMoQXRvbWljU3RyaW5nSW1wbCosIEVsZW1l
bnQqKT4gRWxlbWVudCogZ2V0KEF0b21pY1N0cmluZ0ltcGwqLCBjb25zdCBUcmVlU2NvcGUqKSBj
b25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDBiOGI5MWFlMzZhNTRlM2I2NmQxZDlh
ZDMwM2YwZWVmNGViM2JiODUuLjI0OTkzNGFkNzliNTY5YmUxY2Y4YjJjOGJiOTQ3ZDljNjAzMjE3
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNTMsNCArMjM1MywyOCBAQCB2b2lkIEVs
ZW1lbnQ6OmNyZWF0ZU11dGFibGVBdHRyaWJ1dGVEYXRhKCkKICAgICAgICAgbV9hdHRyaWJ1dGVE
YXRhID0gbV9hdHRyaWJ1dGVEYXRhLT5tYWtlTXV0YWJsZUNvcHkoKTsKIH0KIAordm9pZCBFbGVt
ZW50UmFyZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIE5vZGVSYXJlRGF0YTo6
cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9jYWNoZWRDb2xsZWN0aW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wdXRlZFN0eWxl
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NoYWRvd1BzZXVkb0lkKTsKKworICAgIGluZm8uYWRk
TWVtYmVyKG1fZGF0YXNldERPTVN0cmluZ01hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jbGFz
c0xpc3QpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2hhZG93KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2F0dHJpYnV0ZU1hcCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OkRPTSk7CisgICAgQ29udGFpbmVyTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90YWdOYW1lKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2F0dHJpYnV0ZURhdGEpOworICAgIGlmIChoYXNSYXJlRGF0YSgpKQorICAgICAgICBpbmZv
LmFkZE1lbWJlcihlbGVtZW50UmFyZURhdGEoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDE0ODU3MDMzYjg2NTliMTRkOTMwNWNhOGNhMWFlOGE0
NDg4ZjBkNDYuLjBmMDU3MmM0NDA1NzQzZDY0MzFjZWJkYzZiNzBjOWRmMDYwNWFkYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNDM0LDEzICs0MzQsNyBAQCBwdWJsaWM6CiAgICAgSW50U2l6ZSBz
YXZlZExheWVyU2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTYXZlZExheWVyU2Ny
b2xsT2Zmc2V0KGNvbnN0IEludFNpemUmKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAotICAgIHsK
LSAgICAgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpET00pOwotICAgICAgICBDb250YWluZXJOb2RlOjpyZXBvcnRNZW1v
cnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKLSAgICAgICAgaW5mby5hZGRNZW1iZXIobV90YWdO
YW1lKTsKLSAgICAgICAgaW5mby5hZGRNZW1iZXIobV9hdHRyaWJ1dGVEYXRhKTsKLSAgICB9Cisg
ICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25z
dCBPVkVSUklERTsKIAogcHJvdGVjdGVkOgogICAgIEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggYjRiYzhlMmU5OWIzYWY0YmMwZDEz
MTljMmQ1ZjAzMmU0M2JiNWZmZi4uMWJlYWNiZmUxZDE4YTQ5MWU1MWRlN2FkOTk3YTk4NDIwYzll
ZDM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMTA3LDYgKzEwNyw4
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKICAgICB0eXBl
ZGVmIEZpeGVkQXJyYXk8SFRNTENvbGxlY3Rpb24qLCBOdW1Ob2RlQ29sbGVjdGlvblR5cGVzPiBD
YWNoZWRIVE1MQ29sbGVjdGlvbkFycmF5OwogICAgIE93blB0cjxDYWNoZWRIVE1MQ29sbGVjdGlv
bkFycmF5PiBtX2NhY2hlZENvbGxlY3Rpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFNoYWRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRv
dy5jcHAKaW5kZXggNTFhMjdkYWUzNTAwYjAzYTkyOTFhMDYwYWMwM2UwZDNmNTI2YWU3MC4uNmY4
N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFmZWU0NTE2MmYxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50U2hhZG93LmNwcApAQCAtMjAzLDQgKzIwMywxNiBAQCB2b2lkIEVsZW1lbnRTaGFkb3c6
OmludmFsaWRhdGVEaXN0cmlidXRpb24oRWxlbWVudCogaG9zdCkKICAgICAgICAgbV9kaXN0cmli
dXRvci5maW5pc2hJbml2YWxpZGF0aW9uKCk7CiB9CiAKK3ZvaWQgRWxlbWVudFNoYWRvdzo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zaGFkb3dSb290cyk7
CisgICAgU2hhZG93Um9vdCogc2hhZG93Um9vdCA9IG1fc2hhZG93Um9vdHMuaGVhZCgpOworICAg
IHdoaWxlIChzaGFkb3dSb290KSB7CisgICAgICAgIGluZm8uYWRkTWVtYmVyKHNoYWRvd1Jvb3Qp
OworICAgICAgICBzaGFkb3dSb290ID0gc2hhZG93Um9vdC0+bmV4dCgpOworICAgIH0KKyAgICBp
bmZvLmFkZE1lbWJlcihtX2Rpc3RyaWJ1dG9yKTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4IGU5NmRmMjU2ZGZlZWZmNjQ1MmRhY2UzYTVhZjI4
YzI5MGI3OTNlNDMuLjJmNmY1NmM3NGY2NjkyY2VlMzQ0ODZhOWE3ZjliMDIxYzcwZTkyODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAg
ICAgQ29udGVudERpc3RyaWJ1dG9yJiBkaXN0cmlidXRvcigpOwogICAgIGNvbnN0IENvbnRlbnRE
aXN0cmlidXRvciYgZGlzdHJpYnV0b3IoKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgaW52
YWxpZGF0ZURpc3RyaWJ1dGlvbihFbGVtZW50KiBob3N0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4
IDU1Mzc1YTZkNWJmZDA0OGMwMGJkNGZmYmUzZGU5ZjU3OTQwOTQwZWQuLjZjYmE3M2Q5ZTA2N2Uz
MzIzYjA1ZTBkZDhlY2E5YjhiZTMxM2E2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTEwNSw2ICsx
MDUsOCBAQAogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWRMZWFrQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgpAQCAtMjgxNCw2
ICsyODE2LDM1IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQogICAgIGRlbGV0ZSB0aGlz
OwogfQogCit2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2F0b21pY05hbWVDYWNoZXMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbmFtZUNhY2hlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90YWdOb2RlTGlzdENhY2hl
TlMpOworfQorCit2b2lkIE5vZGVSYXJlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8g
aW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV90cmVlU2NvcGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbm9k
ZUxpc3RzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkTm9kZUxpc3QpOworCisjaWYgRU5B
QkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX211dGF0aW9uT2Jz
ZXJ2ZXJSZWdpc3RyeSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2llbnRNdXRhdGlvbk9i
c2VydmVyUmVnaXN0cnkpOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIGlu
Zm8uYWRkTWVtYmVyKG1faXRlbVByb3ApOworICAgIGluZm8uYWRkTWVtYmVyKG1faXRlbVJlZik7
CisgICAgaW5mby5hZGRNZW1iZXIobV9pdGVtVHlwZSk7CisjZW5kaWYKKworICAgIGluZm8uYWRk
TWVtYmVyKHJhcmVEYXRhTWFwKCkpOworfQorCiB2b2lkIE5vZGU6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IDViM2E1ODNiMGQyMjllOGRi
ZWJlZTIxY2Q2NDJkYzJjNzcwZjM0NDIuLjVlNWY1YTdkMmI4OWE0OWQxNGMxNTYyOTJiYmUwMTll
YzVjMGI5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTE1OCw2ICsxNTgsOCBA
QCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICBOb2RlTGlzdHNOb2Rl
RGF0YSgpIHsgfQogCkBAIC0zMDgsNiArMzEwLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNGb2N1
c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KICAgICB2b2lkIHNldEZvY3VzZWQo
Ym9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQogCisgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVj
dGVkOgogICAgIC8vIGZvciBFbGVtZW50UmFyZURhdGEKICAgICBib29sIG5lZWRzRm9jdXNBcHBl
YXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc0ZvY3Vz
QXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCmluZGV4IGUxODg0ZTA0YTE5NDFjMzRiNmFhMGM0OGZkNjVmYjY4NmNlNjIzYWQuLmIwYjBl
NmQxM2RiNjk2ZDI1YzY1NDk5ZjlhZTFhYTQxMDhkZjc4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKQEAgLTI2MCw0ICsyNjAsMTUgQEAgdm9pZCBTaGFkb3dSb290Ojp1bnJlZ2lzdGVy
U2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQogICAgIHNldEhhc1Njb3BlZEhUTUxTdHlsZUNoaWxkKG1f
bnVtYmVyT2ZTdHlsZXMgPiAwKTsKIH0KIAorCit2b2lkIFNoYWRvd1Jvb3Q6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOworICAgIERvY3VtZW50RnJhZ21lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1l
bW9yeU9iamVjdEluZm8pOworICAgIFRyZWVTY29wZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5
T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2KTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX25leHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25l
ZFRvKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXggY2MwODk1NTQ5NGQ3NWM2
ODU4YzVhODgxNGIwYWU0MmJmMzBiNjk4YS4uY2VmZWI2YmIyNTVlY2U1MGIyMzI0ZTY4MWE1MTg1
MGI2MjBhNmU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0xMDAsNiArMTAwLDggQEAg
cHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCwgRXhjZXB0aW9u
Q29kZSYpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBTaGFkb3dS
b290KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmNwcAppbmRleCBlYzcyM2QzZGFkN2EwODU4YmEwYjJkNzA0YmY5YmEyYzgwYTZjYTNh
Li5jYzU5M2M2MjBjNTY2Mzk4MmJlMTFmOWQ1YmY2MjllN2RmMDllZGRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmNwcApAQCAtMjgwLDYgKzI4MCwxOCBAQCBOb2RlKiBUcmVlU2NvcGU6OmZvY3Vz
ZWROb2RlKCkKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBUcmVlU2NvcGU6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9y
eVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fcm9vdE5vZGUpOworICAgIGluZm8u
YWRkTWVtYmVyKG1fcGFyZW50VHJlZVNjb3BlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2VsZW1l
bnRzQnlJZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZU1hcHNCeU5hbWUpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3NlbGVj
dGlvbik7Cit9CisKIHN0YXRpYyB2b2lkIGxpc3RUcmVlU2NvcGVzKE5vZGUqIG5vZGUsIFZlY3Rv
cjxUcmVlU2NvcGUqLCA1PiYgdHJlZVNjb3BlcykKIHsKICAgICB3aGlsZSAodHJ1ZSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5oCmluZGV4IDljYWU1NGRlOGRmNzc2MjA0OTczNDU1MTI0NDdkZjQyMmVk
NDk0YjEuLjRhMDM0YTJkMTJkYTYwMWE2YjIxZDI5ZjEwNDNmMzMyZWNmZWE0MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgogCiAgICAgSWRUYXJnZXRP
YnNlcnZlclJlZ2lzdHJ5JiBpZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKSBjb25zdCB7IHJldHVy
biAqbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuZ2V0KCk7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBUcmVlU2NvcGUoQ29udGFpbmVyTm9kZSopOwogICAgIHZpcnR1YWwg
flRyZWVTY29wZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKaW5kZXggNDM3YmUwNTFhMWFhNTY2MWMwM2FkODEwODIzMWRiOWNjNzhhMTI0NC4u
Y2YxNmY0MzEwNzQ3ZDUwNzRlM2VlYmEyN2FkNDc1NmNhNjQxZTk0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC00OTgsNCArNDk4LDEx
IEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmVuY2xv
c2luZ0Zvcm1Db250cm9sRWxlbWVudChOb2RlCiAgICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyog
bWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1v
cnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgTGFiZWxh
YmxlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV92YWxpZGF0aW9uTWVzc2FnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YmNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5k
ZXggMjRkZTk3NjY5YzMzOTNkMTM1ZTQ3NGQyMTVhNzUyNzE3ZDRiNmU0ZS4uYjg4YjFiMDhiOGY5
YzgxZDUzMWU1OGFlN2NkNmFjOGQzNDFjYWZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExMiw2ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgTm9kZTo6cmVmOwogICAgIHVzaW5nIE5vZGU6OmRlcmVmOwogCisgICAgdmlydHVhbCB2
b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsK
KwogcHJvdGVjdGVkOgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZTAyZGYyNmZiNzJkOTk4MDYwYTBk
ZGJjYjRjYzAzYzNiZjk0MThiMi4uNDVkMGIzYTEyZGQxMDBlNmFiNDJlZDRmNzg5MDMwMDk1ZGI1
YmY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xOTAx
LDQgKzE5MDEsMTcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRSYW5nZVRleHQoY29uc3Qg
U3RyaW5nJiByZXBsYWNlbWVudCwgdW5zaWduZWQgc3RhcnQsIHUKICAgICBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50LCBzdGFydCwgZW5kLCBzZWxl
Y3Rpb25Nb2RlLCBlYyk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnJlcG9ydE1lbW9y
eVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbmFtZSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV92YWx1ZUlmRGlydHkpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
c3VnZ2VzdGVkVmFsdWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5wdXRUeXBlKTsKKyNpZiBF
TkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBpbmZvLmFkZE1lbWJlcihtX2xpc3RBdHRyaWJ1
dGVUYXJnZXRPYnNlcnZlcik7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZWY0ZDc2ZWExYTU1ZDAyMWMwYzMxZWFi
YTkxMzNlZTFkMzAxM2JlMy4uZTFkMTY4MWZkNzc0MjFhMTUxNWI0Y2Y0YzRmZmU0M2FkOGViMzlk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTI5MSw2ICsyOTEs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcm
IHJlcGxhY2VtZW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUsIEV4Y2VwdGlvbkNvZGUm
KSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW5wdXRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCos
IGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5j
cHAKaW5kZXggN2FhY2ZjYjY3NjhiZWQwMmUwNzQ5YzAwMDIyODFlOTllMzY1NmRjZC4uYzJlMDIx
YzlhN2Y5MjVjZGQ4ZGE5YWYxMDQyM2I0YmIyZmNiNWY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTY3Miw0ICs2NzIs
MTAgQEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXJlY3Rpb25Gb3JGb3Jt
RGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuICJsdHIiOwogfQogCit2b2lkIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3RleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJjb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmgKaW5kZXggOWE1ZmE2MTgxNzI5Y2FmMTUwZWNmMWRlZjNhODk4YjA0NzhhYzg3
NC4uMWZhZjhmY2Y2YTRkNTRhOTliYzIwYTg2Mjc1YzBlYWVmZGIwOWQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtODcsNiAr
ODcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hh
bmdlRXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0KSB7IG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xD
aGFuZ2VFdmVudCA9IHRleHQ7IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
LCBIVE1MRm9ybUVsZW1lbnQqKTsKICAgICBib29sIGlzUGxhY2Vob2xkZXJFbXB0eSgpIGNvbnN0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171994</attachid>
            <date>2012-11-02 00:23:21 -0700</date>
            <delta_ts>2012-11-02 02:17:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100866-20121102112141.patch</filename>
            <type>text/plain</type>
            <size>29162</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRhMzBjZTE0OGQzNWJl
ZTdkNDRkZWIyMzMxMThmZDg3ZDMyMDI4NS4uZDhjNGI2Mjk5MTA3MGJhODc1ZmZlYTc1NTk3YTVk
OTg2NTU2NjkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTExLTAxICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBTaGFkb3dSb290LiBJdCBnaXZlcyB1cyB+NDAwayBvbiBwbHVz
Lmdvb2dsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDg2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBsYWluIHZhbmlsbGEgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBjb2RlIGZvciBIVE1MSW5w
dXRFbGVtZW50IHdoaWNoIGhhcyBhIEVsZW1lbnRTaGFkb3cuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRPcmRlcmVkTWFwOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmg6
CisgICAgICAgIChEb2N1bWVudE9yZGVyZWRNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAgICAg
ICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFk
b3c6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRv
bS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKiBk
b20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxpc3RzTm9kZURh
dGEpOgorICAgICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAo
U2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAo
SFRNTEZvcm1Db250cm9sRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5oOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQpOgorCiAyMDEyLTExLTAxICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBFbGVtZW50IHNob3Vs
ZCBoYXZlIGdldHRlciBhbmQgc2V0dGVyIG9mIGF0dHJpYnV0ZSAncHNldWRvJwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA1MTM0NDY1YjUyYTZhYTFlODNiMTc3OWY2ZjJmOWE2M2RhNTlmODY1Li4y
YTU3ZmIwMDlhYWE0Njk4ODEyYTA5YzMxYTQwODI5NThlMDQyY2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTE1NCw4ICsxMTU0LDkgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9E
eW5hbWljTm9kZUxpc3QuY3BwCiAgICAgZG9tL0VkaXRpbmdUZXh0LmNwcAogICAgIGRvbS9FbGVt
ZW50LmNwcAotICAgIGRvbS9FbGVtZW50U2hhZG93LmNwcAogICAgIGRvbS9FbGVtZW50QXR0cmli
dXRlRGF0YS5jcHAKKyAgICBkb20vRWxlbWVudFJhcmVEYXRhLmNwcAorICAgIGRvbS9FbGVtZW50
U2hhZG93LmNwcAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCiAgICAgZG9tL0Vycm9yRXZl
bnQuY3BwCiAgICAgZG9tL0V2ZW50LmNwcApAQCAtMTE5Myw2ICsxMTk0LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAgIGRvbS9Ob2Rl
RmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCisgICAgZG9tL05vZGVSYXJlRGF0
YS5jcHAKICAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgZG9tL05vdGF0aW9u
LmNwcAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggYWZkM2JkNWQyY2QxMWJkOGMwZjFkOGI0MDIwZjJiMWUyYjBiNTlmZS4uNzczMDY0
YmYyMTkzZTNmODk2YjgwNjdkMzUzZDBmZWJjMzkwYjgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0yODAwLDExICsyODAwLDEyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBcCisJU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmggXApAQCAtMjg4Nyw2ICsy
ODg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZp
bHRlckNvbmRpdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1NGQ1MGQ3NDBiNmYxNjI5Yzc5
ZGFjOTZmZDEzYzk2ZTYzZDc5YjUwLi5lNjE2YjRmYzBkZWViNWRkZTlhNGVhNjllYjM1Mzc2MzA0
OGNjOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM4OCw4ICszODgsOSBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vRHluYW1pY05vZGVMaXN0LmNwcCBcCiAgICAgZG9tL0VkaXRpbmdUZXh0LmNwcCBcCiAg
ICAgZG9tL0VsZW1lbnQuY3BwIFwKLSAgICBkb20vRWxlbWVudFNoYWRvdy5jcHAgXAogICAgIGRv
bS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgXAorICAgIGRvbS9FbGVtZW50UmFyZURhdGEuY3Bw
IFwKKyAgICBkb20vRWxlbWVudFNoYWRvdy5jcHAgXAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2Uu
Y3BwIFwKICAgICBkb20vRXJyb3JFdmVudC5jcHAgXAogICAgIGRvbS9FdmVudC5jcHAgXApAQCAt
NDI4LDYgKzQyOSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9u
LmNwcCBcCiAgICAgZG9tL05vZGVGaWx0ZXIuY3BwIFwKICAgICBkb20vTm9kZUl0ZXJhdG9yLmNw
cCBcCisgICAgZG9tL05vZGVSYXJlRGF0YS5jcHAgXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAgXAogICAgIGRvbS9Ob3RhdGlvbi5jcHAgXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKQEAgLTE1OTYsNiArMTU5OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9Ob2RlRmlsdGVyLmggXAogICAgIGRvbS9Ob2RlLmggXAogICAgIGRvbS9Ob2RlSXRlcmF0b3Iu
aCBcCisgICAgZG9tL05vZGVSYXJlRGF0YS5oIFwKICAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaCBcCiAgICAgZG9tL05vdGF0aW9uLmggXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxp
c3QuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWIyODU5ZjM2MzViNzA0MmZmZjA1ZTc5MmFkNTZh
NzRmNTFhMWVmMi4uYzgzODdkMWFkNGFhMGVmNWI1N2FkMjhkOWMxNmY5YzZlZTc0ZmIwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzg1Niw2ICszODU2LDcgQEAKICAgICAgICAgICAgICdkb20vRWxl
bWVudFNoYWRvdy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCcsCisgICAgICAgICAgICAnZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FbGVtZW50UmFyZURhdGEuaCcs
CiAgICAgICAgICAgICAnZG9tL0VudGl0eS5oJywKICAgICAgICAgICAgICdkb20vRW50aXR5UmVm
ZXJlbmNlLmNwcCcsCkBAIC0zOTI1LDYgKzM5MjYsNyBAQAogICAgICAgICAgICAgJ2RvbS9Ob2Rl
RmlsdGVyQ29uZGl0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9Ob2RlSXRlcmF0b3IuY3BwJywK
ICAgICAgICAgICAgICdkb20vTm9kZUl0ZXJhdG9yLmgnLAorICAgICAgICAgICAgJ2RvbS9Ob2Rl
UmFyZURhdGEuY3BwJywKICAgICAgICAgICAgICdkb20vTm9kZVJhcmVEYXRhLmgnLAogICAgICAg
ICAgICAgJ2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMGE2ZWUwMDYxMDgyZmRjZGI0M2M4ZWM1MjYzZmRiOTRhNmQ1
ZTBjMi4uZDA0NWI5MzNmZDU0OTZlYWZhZTlhMWE4OWNiMzhiZDFkMDBjYWVkMiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTUxMTMxLDYgKzUx
MTMxLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxFbGVtZW50UmFyZURhdGEuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRW50aXR5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtNTI5MDcsNiArNTI5MTEsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXE5vZGVSYXJlRGF0YS5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOb2RlRmlsdGVyLmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTg5MWJjNDNiMTE2ZWI5ODZiZjEwZGUw
NTkzNmQzOTY0YjYxNjhmYS4uYmFlOGNhMDI2ODBlZDEwYjc0ZWQ0MjQwNTQzYTliYTRjODViYzdm
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtODcwMSw2ICs4NzAxLDggQEAKIAkJNEY4NTY1RTgxNTMwMzU2RTAwRkFFNzc2IC8q
IE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0RkEzQjkwODEyNUNEMTIxMDAzMDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU3RhdGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkEzQjkwOTEyNUNEMTIyMDAzMDBCQUQgLyog
SW5zcGVjdG9yU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVj
dG9yU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEZBQjQ4NjQxNjQzQTY2
RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFbGVtZW50UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVSYXJlRGF0YS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQjM5MEFDMTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5l
cmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHZW5l
cmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGRDhEMEYwMTE5
QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTgyMiw2ICsyMTgyNCw3IEBACiAJCQkJOTNFRUMxRUEwOUMy
ODc3NzAwQzUxNUQxIC8qIEVsZW1lbnQuaWRsICovLAogCQkJCTJDRjY4Nzg3MTREMzJFQjUwMDM0
MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgKi8sCiAJCQkJMkNGNjg3ODkxNEQzMkVG
RjAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmggKi8sCisJCQkJNEZBQjQ4NjQxNjQz
QTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi8sCiAJCQkJNjM3QjdBREUwRTg3
NjdCODAwRTMyMTk0IC8qIEVsZW1lbnRSYXJlRGF0YS5oICovLAogCQkJCTU3Q0Y0Qzg0MTRGNzU5
N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmNwcCAqLywKIAkJCQk1N0NGNEM4NTE0Rjc1OTdB
MDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5oICovLApAQCAtMjE5MzcsNiArMjE5NDAsNyBAQAog
CQkJCTFBNzUwRDg3MEE5MEUzOTQwMDBGRjIxNSAvKiBOb2RlSXRlcmF0b3IuaWRsICovLAogCQkJ
CUE4MTg3MjEwMDk3N0QzQzAwMDU4MjZEOSAvKiBOb2RlTGlzdC5oICovLAogCQkJCTg1QUNBOUZB
MEE5QjYzMTAwMDY3MUU5MCAvKiBOb2RlTGlzdC5pZGwgKi8sCisJCQkJNEZBQjQ4NjYxNjQzQTY3
RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi8sCiAJCQkJNjMxODlBRTIwRTgzQTMzMzAw
MDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5oICovLAogCQkJCUE3RjVEOTREMTM4NEYwMkQwMEEyOUE4
NyAvKiBOb2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJQTdGNUQ5NEUxMzg0RjAyRDAw
QTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE9yZGVyZWRNYXAuY3BwCmluZGV4IGJiZDhiM2IxNmVhZjQ5ZTAxNmVkMDQ3NmIwYmI0
YTllNzYwNjA0NTMuLmI2ZmI5MTQwY2E4NzcyNjQ0ZGRlOTAyNWM4MDNjY2YyZjFjNjA0NjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCkBAIC0zNSw2ICszNSw5
IEBACiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJUcmVlU2NvcGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVk
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNTksNCArMTYyLDExIEBAIEVsZW1lbnQqIERvY3Vt
ZW50T3JkZXJlZE1hcDo6Z2V0RWxlbWVudEJ5TGFiZWxGb3JBdHRyaWJ1dGUoQXRvbWljU3RyaW5n
SW1wbCoga2V5CiAgICAgcmV0dXJuIGdldDxrZXlNYXRjaGVzTGFiZWxGb3JBdHRyaWJ1dGU+KGtl
eSwgc2NvcGUpOwogfQogCit2b2lkIERvY3VtZW50T3JkZXJlZE1hcDo6cmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1v
cnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX21hcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kdXBsaWNhdGVDb3VudHMpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRPcmRlcmVkTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVk
TWFwLmgKaW5kZXggMWY5MDM5ZTYxNDNkMzg2MjhkZmEzMDBhZTk4NmEwMWVlMzIzYzdkNS4uZjdk
ZWIzYmZlMGRiZWJhM2VhYjRjMDdjNDA5OGYwOTc1MGJlYmRlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE9yZGVyZWRNYXAuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGNoZWNrQ29uc2lzdGVuY3koKSBjb25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHRlbXBsYXRlPGJv
b2wga2V5TWF0Y2hlcyhBdG9taWNTdHJpbmdJbXBsKiwgRWxlbWVudCopPiBFbGVtZW50KiBnZXQo
QXRvbWljU3RyaW5nSW1wbCosIGNvbnN0IFRyZWVTY29wZSopIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKaW5kZXggODZiMzFmMWM1YWIzNDFkMDUzMzkwNWMzOTYwYTFhM2QxYjkzMzBlNS4u
MmNiYzc1YjI0ZmExM2RhZjZjYzM1YjBhOGU4NDYzZWRjODY4ZTQ4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtNzMsMTEgKzczLDEzIEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiVW5kb01hbmFnZXIuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKKyNpbmNs
dWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5p
bWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhNTE5TTmFtZXMuaCIKICNpbmNsdWRlICJYTUxOYW1l
cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpAQCAtMjM5OCw0ICsyNDAwLDEyIEBA
IHZvaWQgRWxlbWVudDo6Y3JlYXRlTXV0YWJsZUF0dHJpYnV0ZURhdGEoKQogICAgICAgICBtX2F0
dHJpYnV0ZURhdGEgPSBtX2F0dHJpYnV0ZURhdGEtPm1ha2VNdXRhYmxlQ29weSgpOwogfQogCit2
b2lkIEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIENvbnRhaW5lck5vZGU6
OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVy
KG1fdGFnTmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdHRyaWJ1dGVEYXRhKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggZjEzNWI0Njk5NmVm
MGViZTllNjg4ODk0OTAxMTFiMGUxZTkxNmM2NC4uNTEzNTgzODk3ZGU0ODc2NjYxZTQ4MzBmOGVh
NGI5ZTU5ODBmMDE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC00MzcsMTMgKzQzNyw3IEBAIHB1
YmxpYzoKICAgICBJbnRTaXplIHNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoKSBjb25zdDsKICAgICB2
b2lkIHNldFNhdmVkTGF5ZXJTY3JvbGxPZmZzZXQoY29uc3QgSW50U2l6ZSYpOwogCi0gICAgdmly
dHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0Ci0gICAgewotICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlP
YmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7Ci0gICAgICAgIENvbnRh
aW5lck5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwotICAgICAgICBp
bmZvLmFkZE1lbWJlcihtX3RhZ05hbWUpOwotICAgICAgICBpbmZvLmFkZE1lbWJlcihtX2F0dHJp
YnV0ZURhdGEpOwotICAgIH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwogCiBwcm90ZWN0ZWQ6CiAgICAgRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIENvbnN0
cnVjdGlvblR5cGUgdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
UmFyZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTA4M2NlNzgzMTI0NWUyNWVkNTJmZTU2ZDk5M2NiMzMzOTg2N2ZmNwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuY3BwCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRWxlbWVudFJhcmVEYXRh
LmgiCisKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEVsZW1lbnRS
YXJlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZv
LCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgTm9kZVJhcmVEYXRhOjpyZXBv
cnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Nh
Y2hlZENvbGxlY3Rpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXB1dGVkU3R5bGUpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fc2hhZG93UHNldWRvSWQpOworCisgICAgaW5mby5hZGRNZW1i
ZXIobV9kYXRhc2V0RE9NU3RyaW5nTWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NsYXNzTGlz
dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zaGFkb3cpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
YXR0cmlidXRlTWFwKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IGI0YmM4ZTJlOTliM2FmNGJjMGQxMzE5YzJkNWYwMzJl
NDNiYjVmZmYuLjFiZWFjYmZlMWQxOGE0OTFlNTFkZTdhZDk5N2E5ODQyMGM5ZWQzN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTEwNyw2ICsxMDcsOCBAQCBwdWJsaWM6
CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiAgICAgdHlwZWRlZiBGaXhlZEFy
cmF5PEhUTUxDb2xsZWN0aW9uKiwgTnVtTm9kZUNvbGxlY3Rpb25UeXBlcz4gQ2FjaGVkSFRNTENv
bGxlY3Rpb25BcnJheTsKICAgICBPd25QdHI8Q2FjaGVkSFRNTENvbGxlY3Rpb25BcnJheT4gbV9j
YWNoZWRDb2xsZWN0aW9uczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCmluZGV4
IDUxYTI3ZGFlMzUwMGIwM2E5MjkxYTA2MGFjMDNlMGQzZjUyNmFlNzAuLjZmODdmMTY0NGFmYjk0
YmZiZmU1ZWI3OGNlYjMxZmVlNDUxNjJmMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRv
dy5jcHAKQEAgLTIwMyw0ICsyMDMsMTYgQEAgdm9pZCBFbGVtZW50U2hhZG93OjppbnZhbGlkYXRl
RGlzdHJpYnV0aW9uKEVsZW1lbnQqIGhvc3QpCiAgICAgICAgIG1fZGlzdHJpYnV0b3IuZmluaXNo
SW5pdmFsaWRhdGlvbigpOwogfQogCit2b2lkIEVsZW1lbnRTaGFkb3c6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5
cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2hhZG93Um9vdHMpOworICAgIFNoYWRv
d1Jvb3QqIHNoYWRvd1Jvb3QgPSBtX3NoYWRvd1Jvb3RzLmhlYWQoKTsKKyAgICB3aGlsZSAoc2hh
ZG93Um9vdCkgeworICAgICAgICBpbmZvLmFkZE1lbWJlcihzaGFkb3dSb290KTsKKyAgICAgICAg
c2hhZG93Um9vdCA9IHNoYWRvd1Jvb3QtPm5leHQoKTsKKyAgICB9CisgICAgaW5mby5hZGRNZW1i
ZXIobV9kaXN0cmlidXRvcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnRTaGFkb3cuaAppbmRleCBlOTZkZjI1NmRmZWVmZjY0NTJkYWNlM2E1YWYyOGMyOTBiNzkzZTQz
Li4yZjZmNTZjNzRmNjY5MmNlZTM0NDg2YTlhN2Y5YjAyMWM3MGU5Mjg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmgKQEAgLTY5LDYgKzY5LDggQEAgcHVibGljOgogICAgIENvbnRlbnRE
aXN0cmlidXRvciYgZGlzdHJpYnV0b3IoKTsKICAgICBjb25zdCBDb250ZW50RGlzdHJpYnV0b3Im
IGRpc3RyaWJ1dG9yKCkgY29uc3Q7CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGludmFsaWRhdGVEaXN0
cmlidXRpb24oRWxlbWVudCogaG9zdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAxZDcxYWIwZDIx
MWI4ZDVjMWMwNTBhYmMwYzc3YzNmYmJmYjI5NWVhLi40YmJiNjJjMDNhOTc2YmQ1YTg4MmU3NTIx
MTZlMDBhOGEwNDNiZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yODMwLDYgKzI4MzAsOCBAQCB2
b2lkIE5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVj
dEluZm8pIGNvbnN0CiAgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2aW91cyk7CiAgICAgaWYgKG1f
cmVuZGVyZXIpCiAgICAgICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyZXItPnN0eWxlKCkpOwor
ICAgIGlmIChoYXNSYXJlRGF0YSgpKQorICAgICAgICBpbmZvLmFkZE1lbWJlcihyYXJlRGF0YSgp
KTsKIH0KIAogdm9pZCBOb2RlOjp0ZXh0UmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cykgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg3ZjljM2VmNDZm
ZmU1N2NkYzNjYmU5ZWJjMDc3YmE2YjlmYTExNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlv
bkhhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIE5vZGVMaXN0c05vZGVEYXRhOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2F0b21pY05hbWVDYWNoZXMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fbmFtZUNhY2hlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90YWdOb2Rl
TGlzdENhY2hlTlMpOworfQorCit2b2lkIE5vZGVSYXJlRGF0YTo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmVlU2NvcGUpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbm9kZUxpc3RzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NoaWxkTm9kZUxpc3QpOwor
CisjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKKyAgICBpbmZvLmFkZE1lbWJlcihtX211
dGF0aW9uT2JzZXJ2ZXJSZWdpc3RyeSk7CisgICAgaW5mby5hZGRNZW1iZXIobV90cmFuc2llbnRN
dXRhdGlvbk9ic2VydmVyUmVnaXN0cnkpOworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorICAgIGluZm8uYWRkTWVtYmVyKG1faXRlbVByb3ApOworICAgIGluZm8uYWRkTWVtYmVyKG1f
aXRlbVJlZik7CisgICAgaW5mby5hZGRNZW1iZXIobV9pdGVtVHlwZSk7CisjZW5kaWYKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IDVi
M2E1ODNiMGQyMjllOGRiZWJlZTIxY2Q2NDJkYzJjNzcwZjM0NDIuLjVlNWY1YTdkMmI4OWE0OWQx
NGMxNTYyOTJiYmUwMTllYzVjMGI5NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAg
LTE1OCw2ICsxNTgsOCBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICBOb2RlTGlzdHNOb2RlRGF0YSgpIHsgfQogCkBAIC0zMDgsNiArMzEwLDggQEAgcHVibGljOgog
ICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvY3VzZWQ7IH0KICAgICB2
b2lkIHNldEZvY3VzZWQoYm9vbCBmb2N1c2VkKSB7IG1faXNGb2N1c2VkID0gZm9jdXNlZDsgfQog
CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdDsKKwogcHJvdGVjdGVkOgogICAgIC8vIGZvciBFbGVtZW50UmFyZURhdGEKICAgICBib29s
IG5lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoKCkgY29uc3QgeyByZXR1
cm4gbV9uZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGUxODg0ZTA0YTE5NDFjMzRiNmFhMGM0OGZkNjVmYjY4
NmNlNjIzYWQuLmIwYjBlNmQxM2RiNjk2ZDI1YzY1NDk5ZjlhZTFhYTQxMDhkZjc4YTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTI2MCw0ICsyNjAsMTUgQEAgdm9pZCBTaGFkb3dS
b290Ojp1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKQogICAgIHNldEhhc1Njb3BlZEhU
TUxTdHlsZUNoaWxkKG1fbnVtYmVyT2ZTdHlsZXMgPiAwKTsKIH0KIAorCit2b2lkIFNoYWRvd1Jv
b3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIERvY3VtZW50RnJhZ21lbnQ6OnJlcG9y
dE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIFRyZWVTY29wZTo6cmVwb3J0TWVt
b3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wcmV2KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX25leHQpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5zZXJ0
aW9uUG9pbnRBc3NpZ25lZFRvKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5kZXgg
Y2MwODk1NTQ5NGQ3NWM2ODU4YzVhODgxNGIwYWU0MmJmMzBiNjk4YS4uY2VmZWI2YmIyNTVlY2U1
MGIyMzI0ZTY4MWE1MTg1MGI2MjBhNmU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0x
MDAsNiArMTAwLDggQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUo
Ym9vbCwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBTaGFkb3dSb290KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCBlYzcyM2QzZGFkN2EwODU4YmEwYjJkNzA0
YmY5YmEyYzgwYTZjYTNhLi5jYzU5M2M2MjBjNTY2Mzk4MmJlMTFmOWQ1YmY2MjllN2RmMDllZGRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMjgwLDYgKzI4MCwxOCBAQCBOb2RlKiBU
cmVlU2NvcGU6OmZvY3VzZWROb2RlKCkKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBUcmVlU2Nv
cGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRkTWVtYmVyKG1fcm9vdE5v
ZGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGFyZW50VHJlZVNjb3BlKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2VsZW1lbnRzQnlJZCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnZU1hcHNC
eU5hbWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fbGFiZWxzQnlGb3JBdHRyaWJ1dGUpOworICAg
IGluZm8uYWRkTWVtYmVyKG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3NlbGVjdGlvbik7Cit9CisKIHN0YXRpYyB2b2lkIGxpc3RUcmVlU2NvcGVzKE5v
ZGUqIG5vZGUsIFZlY3RvcjxUcmVlU2NvcGUqLCA1PiYgdHJlZVNjb3BlcykKIHsKICAgICB3aGls
ZSAodHJ1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IDljYWU1NGRlOGRmNzc2MjA0OTcz
NDU1MTI0NDdkZjQyMmVkNDk0YjEuLjRhMDM0YTJkMTJkYTYwMWE2YjIxZDI5ZjEwNDNmMzMyZWNm
ZWE0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTg4LDYgKzg4LDggQEAgcHVibGljOgog
CiAgICAgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5JiBpZFRhcmdldE9ic2VydmVyUmVnaXN0cnko
KSBjb25zdCB7IHJldHVybiAqbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuZ2V0KCk7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBUcmVlU2NvcGUoQ29udGFpbmVyTm9kZSop
OwogICAgIHZpcnR1YWwgflRyZWVTY29wZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNDM3YmUwNTFhMWFhNTY2MWMwM2FkODEwODIz
MWRiOWNjNzhhMTI0NC4uY2YxNmY0MzEwNzQ3ZDUwNzRlM2VlYmEyN2FkNDc1NmNhNjQxZTk0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC00OTgsNCArNDk4LDExIEBAIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQ6OmVuY2xvc2luZ0Zvcm1Db250cm9sRWxlbWVudChOb2RlCiAgICAgcmV0dXJuIDA7
CiB9CiAKK3ZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRP
TSk7CisgICAgTGFiZWxhYmxlRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0
SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV92YWxpZGF0aW9uTWVzc2FnZSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYmNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmgKaW5kZXggMjRkZTk3NjY5YzMzOTNkMTM1ZTQ3NGQyMTVhNzUyNzE3ZDRiNmU0
ZS4uYjg4YjFiMDhiOGY5YzgxZDUzMWU1OGFlN2NkNmFjOGQzNDFjYWZiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExMiw2ICsxMTIsOCBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgTm9kZTo6cmVmOwogICAgIHVzaW5nIE5vZGU6OmRlcmVmOwog
CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBj
b25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQq
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZTAyZGYy
NmZiNzJkOTk4MDYwYTBkZGJjYjRjYzAzYzNiZjk0MThiMi4uNDVkMGIzYTEyZGQxMDBlNmFiNDJl
ZDRmNzg5MDMwMDk1ZGI1YmY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0xOTAxLDQgKzE5MDEsMTcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRS
YW5nZVRleHQoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudCwgdW5zaWduZWQgc3RhcnQsIHUKICAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50LCBz
dGFydCwgZW5kLCBzZWxlY3Rpb25Nb2RlLCBlYyk7CiB9CiAKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV92YWx1ZUlmRGlydHkpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fc3VnZ2VzdGVkVmFsdWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW5w
dXRUeXBlKTsKKyNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2xpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlcik7CisjZW5kaWYKK30KKwogfSAvLyBuYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZWY0ZDc2ZWEx
YTU1ZDAyMWMwYzMxZWFiYTkxMzNlZTFkMzAxM2JlMy4uZTFkMTY4MWZkNzc0MjFhMTUxNWI0Y2Y0
YzRmZmU0M2FkOGViMzlkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTI5MSw2ICsyOTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhbmdlVGV4
dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFJhbmdlVGV4dChjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50LCB1
bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIHNlbGVjdGlvbk1vZGUs
IEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoK
ICAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhU
TUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2b2lkIGNyZWF0ZVNo
YWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggN2FhY2ZjYjY3NjhiZWQwMmUwNzQ5YzAwMDIyODFlOTll
MzY1NmRjZC4uZDUyYTgyNTcxMjU2ODFjMDcyNWZhNzlmYjAxZGRmOTYwNDI4MDQwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAK
QEAgLTY3Miw0ICs2NzIsMTEgQEAgU3RyaW5nIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpk
aXJlY3Rpb25Gb3JGb3JtRGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuICJsdHIiOwogfQogCit2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBp
bmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RleHRBc09mTGFzdEZvcm1Db250
cm9sQ2hhbmdlRXZlbnQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJjb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggOWE1ZmE2
MTgxNzI5Y2FmMTUwZWNmMWRlZjNhODk4YjA0NzhhYzg3NC4uMWZhZjhmY2Y2YTRkNTRhOTliYzIw
YTg2Mjc1YzBlYWVmZGIwOWQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtODcsNiArODcsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldFRleHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoY29uc3QgU3RyaW5nJiB0
ZXh0KSB7IG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCA9IHRleHQ7IH0KIAor
ICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKICAg
ICBib29sIGlzUGxhY2Vob2xkZXJFbXB0eSgpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172004</attachid>
            <date>2012-11-02 01:30:20 -0700</date>
            <delta_ts>2012-11-02 02:17:34 -0700</delta_ts>
            <desc>for mac bot</desc>
            <filename>bug-100866-20121102122839.patch</filename>
            <type>text/plain</type>
            <size>30742</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRhMzBjZTE0OGQzNWJl
ZTdkNDRkZWIyMzMxMThmZDg3ZDMyMDI4NS4uZDhjNGI2Mjk5MTA3MGJhODc1ZmZlYTc1NTk3YTVk
OTg2NTU2NjkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEyLTExLTAxICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgaW5zdHJ1bWVudCBTaGFkb3dSb290LiBJdCBnaXZlcyB1cyB+NDAwayBvbiBwbHVz
Lmdvb2dsZS5jb20KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMDg2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFBsYWluIHZhbmlsbGEgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBjb2RlIGZvciBIVE1MSW5w
dXRFbGVtZW50IHdoaWNoIGhhcyBhIEVsZW1lbnRTaGFkb3cuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdl
dC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRPcmRlcmVkTWFwOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmg6
CisgICAgICAgIChEb2N1bWVudE9yZGVyZWRNYXApOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAgICAgIChFbGVtZW50UmFyZURhdGEpOgorICAgICAg
ICAqIGRvbS9FbGVtZW50U2hhZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRTaGFk
b3c6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRv
bS9FbGVtZW50U2hhZG93Lmg6CisgICAgICAgIChFbGVtZW50U2hhZG93KToKKyAgICAgICAgKiBk
b20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6cmVwb3J0TWVtb3J5VXNh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJhcmVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZSk6
CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoTm9kZUxpc3RzTm9kZURh
dGEpOgorICAgICAgICAoTm9kZVJhcmVEYXRhKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJl
cG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOgorICAgICAgICAo
U2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29wZSk6CisgICAgICAg
ICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAo
SFRNTEZvcm1Db250cm9sRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVz
YWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5oOgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAgICAoSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQpOgorCiAyMDEyLTExLTAxICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBFbGVtZW50IHNob3Vs
ZCBoYXZlIGdldHRlciBhbmQgc2V0dGVyIG9mIGF0dHJpYnV0ZSAncHNldWRvJwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCA1MTM0NDY1YjUyYTZhYTFlODNiMTc3OWY2ZjJmOWE2M2RhNTlmODY1Li4y
YTU3ZmIwMDlhYWE0Njk4ODEyYTA5YzMxYTQwODI5NThlMDQyY2ZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTE1NCw4ICsxMTU0LDkgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9E
eW5hbWljTm9kZUxpc3QuY3BwCiAgICAgZG9tL0VkaXRpbmdUZXh0LmNwcAogICAgIGRvbS9FbGVt
ZW50LmNwcAotICAgIGRvbS9FbGVtZW50U2hhZG93LmNwcAogICAgIGRvbS9FbGVtZW50QXR0cmli
dXRlRGF0YS5jcHAKKyAgICBkb20vRWxlbWVudFJhcmVEYXRhLmNwcAorICAgIGRvbS9FbGVtZW50
U2hhZG93LmNwcAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2UuY3BwCiAgICAgZG9tL0Vycm9yRXZl
bnQuY3BwCiAgICAgZG9tL0V2ZW50LmNwcApAQCAtMTE5Myw2ICsxMTk0LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogICAgIGRvbS9Ob2Rl
RmlsdGVyLmNwcAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCisgICAgZG9tL05vZGVSYXJlRGF0
YS5jcHAKICAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCiAgICAgZG9tL05vdGF0aW9u
LmNwcAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KaW5kZXggYWZkM2JkNWQyY2QxMWJkOGMwZjFkOGI0MDIwZjJiMWUyYjBiNTlmZS4uNzczMDY0
YmYyMTkzZTNmODk2YjgwNjdkMzUzZDBmZWJjMzkwYjgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0yODAwLDExICsyODAwLDEyIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0VkaXRpbmdUZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFNoYWRvdy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudEF0dHJpYnV0ZURhdGEuaCBcCisJU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50UmFyZURhdGEuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vRW50aXR5LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9FbnRpdHlSZWZlcmVuY2UuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRW50aXR5UmVmZXJlbmNlLmggXApAQCAtMjg4Nyw2ICsy
ODg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZp
bHRlckNvbmRpdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlUmFyZURhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUl0ZXJhdG9yLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1NGQ1MGQ3NDBiNmYxNjI5Yzc5
ZGFjOTZmZDEzYzk2ZTYzZDc5YjUwLi5lNjE2YjRmYzBkZWViNWRkZTlhNGVhNjllYjM1Mzc2MzA0
OGNjOTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTM4OCw4ICszODgsOSBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vRHluYW1pY05vZGVMaXN0LmNwcCBcCiAgICAgZG9tL0VkaXRpbmdUZXh0LmNwcCBcCiAg
ICAgZG9tL0VsZW1lbnQuY3BwIFwKLSAgICBkb20vRWxlbWVudFNoYWRvdy5jcHAgXAogICAgIGRv
bS9FbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgXAorICAgIGRvbS9FbGVtZW50UmFyZURhdGEuY3Bw
IFwKKyAgICBkb20vRWxlbWVudFNoYWRvdy5jcHAgXAogICAgIGRvbS9FbnRpdHlSZWZlcmVuY2Uu
Y3BwIFwKICAgICBkb20vRXJyb3JFdmVudC5jcHAgXAogICAgIGRvbS9FdmVudC5jcHAgXApAQCAt
NDI4LDYgKzQyOSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9u
LmNwcCBcCiAgICAgZG9tL05vZGVGaWx0ZXIuY3BwIFwKICAgICBkb20vTm9kZUl0ZXJhdG9yLmNw
cCBcCisgICAgZG9tL05vZGVSYXJlRGF0YS5jcHAgXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAgXAogICAgIGRvbS9Ob3RhdGlvbi5jcHAgXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKQEAgLTE1OTYsNiArMTU5OCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9Ob2RlRmlsdGVyLmggXAogICAgIGRvbS9Ob2RlLmggXAogICAgIGRvbS9Ob2RlSXRlcmF0b3Iu
aCBcCisgICAgZG9tL05vZGVSYXJlRGF0YS5oIFwKICAgICBkb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaCBcCiAgICAgZG9tL05vdGF0aW9uLmggXAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxp
c3QuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOWIyODU5ZjM2MzViNzA0MmZmZjA1ZTc5MmFkNTZh
NzRmNTFhMWVmMi4uYzgzODdkMWFkNGFhMGVmNWI1N2FkMjhkOWMxNmY5YzZlZTc0ZmIwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMzg1Niw2ICszODU2LDcgQEAKICAgICAgICAgICAgICdkb20vRWxl
bWVudFNoYWRvdy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FbGVtZW50LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL0VsZW1lbnRBdHRyaWJ1dGVEYXRhLmNwcCcsCisgICAgICAgICAgICAnZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9FbGVtZW50UmFyZURhdGEuaCcs
CiAgICAgICAgICAgICAnZG9tL0VudGl0eS5oJywKICAgICAgICAgICAgICdkb20vRW50aXR5UmVm
ZXJlbmNlLmNwcCcsCkBAIC0zOTI1LDYgKzM5MjYsNyBAQAogICAgICAgICAgICAgJ2RvbS9Ob2Rl
RmlsdGVyQ29uZGl0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9Ob2RlSXRlcmF0b3IuY3BwJywK
ICAgICAgICAgICAgICdkb20vTm9kZUl0ZXJhdG9yLmgnLAorICAgICAgICAgICAgJ2RvbS9Ob2Rl
UmFyZURhdGEuY3BwJywKICAgICAgICAgICAgICdkb20vTm9kZVJhcmVEYXRhLmgnLAogICAgICAg
ICAgICAgJ2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9O
b2RlUmVuZGVyaW5nQ29udGV4dC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMGE2ZWUwMDYxMDgyZmRjZGI0M2M4ZWM1MjYzZmRiOTRhNmQ1
ZTBjMi4uZDA0NWI5MzNmZDU0OTZlYWZhZTlhMWE4OWNiMzhiZDFkMDBjYWVkMiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTUxMTMxLDYgKzUx
MTMxLDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGRvbVxFbGVtZW50UmFyZURhdGEuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRW50aXR5LmgiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtNTI5MDcsNiArNTI5MTEsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXE5vZGVSYXJlRGF0YS5jcHAiCisJCQkJPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOb2RlRmlsdGVyLmNwcCIKIAkJ
CQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTg5MWJjNDNiMTE2ZWI5ODZiZjEwZGUw
NTkzNmQzOTY0YjYxNjhmYS4uNWQ4ZDViYmZhNTU1MWUxNjBkOWJkMzA5ODc4NWJlZDY5Mzg1OWY3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQ4Nyw2ICsxNDg3LDggQEAKIAkJNEZCMzkwQUQxNUVGNjFGMzAwN0FENTFGIC8q
IEdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRGQjM5MEFDMTVFRjYxRjMwMDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAg
Ki87IH07CiAJCTRGRDhEMEYyMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGRDhEMEYwMTE5
QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLzsgfTsKIAkJNEZEOEQwRjMxMTlD
NzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRH
Q0V2ZW50LmggKi87IH07CisJCTRGRkMwMjJCMTY0M0I3MTAwMDRFMTYzOCAvKiBOb2RlUmFyZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZB
QjQ4NjYxNjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi87IH07CisJCTRGRkMw
MjJEMTY0M0I3MjYwMDRFMTYzOCAvKiBFbGVtZW50UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZBQjQ4NjQxNjQzQTY2RDAwRjcwQzA3
IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi87IH07CiAJCTUwMUJBQUE5MTM5NTBFMkMwMEY3QUNF
QiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTAzOEJDMDcxNDcxMUNEQjAw
OTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCQzA2MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJL
aXRDU1NTaGFkZXJWYWx1ZS5jcHAgKi87IH07CiAJCTUwMzhCRTJGMTQ3MkFEMjMwMDk1RTBEMSAv
KiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MDM4QkUyRDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFk
ZXIuY3BwICovOyB9OwpAQCAtODcwMSw2ICs4NzAzLDggQEAKIAkJNEY4NTY1RTgxNTMwMzU2RTAw
RkFFNzc2IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWVtb3J5SW5zdHJ1bWVudGF0aW9uSW1wbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RkEzQjkwODEyNUNEMTIxMDAzMDBCQUQgLyogSW5zcGVjdG9yU3Rh
dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU3Rh
dGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0RkEzQjkwOTEyNUNEMTIyMDAz
MDBCQUQgLyogSW5zcGVjdG9yU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEZBQjQ4
NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFbGVtZW50UmFyZURhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0RkFCNDg2NjE2NDNBNjdFMDBGNzBDMDcgLyogTm9kZVJhcmVEYXRh
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVSYXJlRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRGQjM5MEFDMTVFRjYxRjMwMDdBRDUx
RiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBHZW5lcmF0ZWRJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRG
RDhEMEYwMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdEdDRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRHQ0V2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTgyMiw2ICsyMTgyNiw3IEBACiAJCQkJOTNF
RUMxRUEwOUMyODc3NzAwQzUxNUQxIC8qIEVsZW1lbnQuaWRsICovLAogCQkJCTJDRjY4Nzg3MTRE
MzJFQjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgKi8sCiAJCQkJMkNGNjg3
ODkxNEQzMkVGRjAwMzQwRjM5IC8qIEVsZW1lbnRBdHRyaWJ1dGVEYXRhLmggKi8sCisJCQkJNEZB
QjQ4NjQxNjQzQTY2RDAwRjcwQzA3IC8qIEVsZW1lbnRSYXJlRGF0YS5jcHAgKi8sCiAJCQkJNjM3
QjdBREUwRTg3NjdCODAwRTMyMTk0IC8qIEVsZW1lbnRSYXJlRGF0YS5oICovLAogCQkJCTU3Q0Y0
Qzg0MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93LmNwcCAqLywKIAkJCQk1N0NGNEM4
NTE0Rjc1OTdBMDBFQ0ZGMTQgLyogRWxlbWVudFNoYWRvdy5oICovLApAQCAtMjE5MzcsNiArMjE5
NDIsNyBAQAogCQkJCTFBNzUwRDg3MEE5MEUzOTQwMDBGRjIxNSAvKiBOb2RlSXRlcmF0b3IuaWRs
ICovLAogCQkJCUE4MTg3MjEwMDk3N0QzQzAwMDU4MjZEOSAvKiBOb2RlTGlzdC5oICovLAogCQkJ
CTg1QUNBOUZBMEE5QjYzMTAwMDY3MUU5MCAvKiBOb2RlTGlzdC5pZGwgKi8sCisJCQkJNEZBQjQ4
NjYxNjQzQTY3RTAwRjcwQzA3IC8qIE5vZGVSYXJlRGF0YS5jcHAgKi8sCiAJCQkJNjMxODlBRTIw
RTgzQTMzMzAwMDEyRTQxIC8qIE5vZGVSYXJlRGF0YS5oICovLAogCQkJCUE3RjVEOTREMTM4NEYw
MkQwMEEyOUE4NyAvKiBOb2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJQTdGNUQ5NEUx
Mzg0RjAyRDAwQTI5QTg3IC8qIE5vZGVSZW5kZXJpbmdDb250ZXh0LmggKi8sCkBAIC0yODc5Niw2
ICsyODgwMiw4IEBACiAJCQkJMUFBMjEyNTAxNjNGMERBODAwMDBFNjNGIC8qIEF0b21pY1N0cmlu
Z0NGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwRDMyODU3MTYzQjMxM0YwMDE2MTExRSAvKiBW
YWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0ZG
RkY5QTgxNTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0RkZDMDIyQjE2NDNCNzEwMDA0RTE2MzggLyogTm9kZVJhcmVEYXRhLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTRGRkMwMjJEMTY0M0I3MjYwMDRFMTYzOCAvKiBFbGVtZW50
UmFyZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9y
ZGVyZWRNYXAuY3BwCmluZGV4IGJiZDhiM2IxNmVhZjQ5ZTAxNmVkMDQ3NmIwYmI0YTllNzYwNjA0
NTMuLjJmZDVlNDMzMzhjZGVmOTNlZmYzYmM3YjAzM2IwMjMxNDA1YWZkZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwCkBAIC0zNSw2ICszNSw5IEBACiAjaW5j
bHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJUcmVlU2NvcGUuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgi
CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0xNTksNCArMTYyLDExIEBAIEVsZW1lbnQqIERvY3VtZW50T3JkZXJl
ZE1hcDo6Z2V0RWxlbWVudEJ5TGFiZWxGb3JBdHRyaWJ1dGUoQXRvbWljU3RyaW5nSW1wbCoga2V5
CiAgICAgcmV0dXJuIGdldDxrZXlNYXRjaGVzTGFiZWxGb3JBdHRyaWJ1dGU+KGtleSwgc2NvcGUp
OwogfQogCit2b2lkIERvY3VtZW50T3JkZXJlZE1hcDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0lu
Zm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9tYXApOworICAgIGluZm8uYWRkTWVtYmVyKG1fZHVwbGlj
YXRlQ291bnRzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50T3JkZXJlZE1hcC5oCmluZGV4IDFmOTAzOWU2MTQzZDM4NjI4ZGZhMzAwYWU5ODZh
MDFlZTMyM2M3ZDUuLmY3ZGViM2JmZTBkYmViYTNlYWI0YzA3YzQwOThmMDk3NTBiZWJkZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmgKQEAgLTU2LDYgKzU2LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBjaGVja0NvbnNpc3RlbmN5KCkgY29uc3Q7CiAKKyAgICB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToK
ICAgICB0ZW1wbGF0ZTxib29sIGtleU1hdGNoZXMoQXRvbWljU3RyaW5nSW1wbCosIEVsZW1lbnQq
KT4gRWxlbWVudCogZ2V0KEF0b21pY1N0cmluZ0ltcGwqLCBjb25zdCBUcmVlU2NvcGUqKSBjb25z
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg2YjMxZjFjNWFiMzQxZDA1MzM5MDVjMzk2
MGExYTNkMWI5MzMwZTUuLmQyMDcwNGZkZjFmYmMwNTU3M2EwNTg0MmU2NTZiNjZhOTM4MGMzZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJVbmRvTWFuYWdlci5oIgogI2luY2x1ZGUgIlZvaWRDYWxs
YmFjay5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJXZWJLaXRBbmltYXRpb25MaXN0LmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgogI2lu
Y2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC0yMzk4LDQgKzIzOTksMTIgQEAgdm9pZCBFbGVtZW50Ojpj
cmVhdGVNdXRhYmxlQXR0cmlidXRlRGF0YSgpCiAgICAgICAgIG1fYXR0cmlidXRlRGF0YSA9IG1f
YXR0cmlidXRlRGF0YS0+bWFrZU11dGFibGVDb3B5KCk7CiB9CiAKK3ZvaWQgRWxlbWVudDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgQ29udGFpbmVyTm9kZTo6cmVwb3J0TWVtb3J5VXNh
Z2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90YWdOYW1lKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2F0dHJpYnV0ZURhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCBmMTM1YjQ2OTk2ZWYwZWJlOWU2ODg4OTQ5MDEx
MWIwZTFlOTE2YzY0Li41MTM1ODM4OTdkZTQ4NzY2NjFlNDgzMGY4ZWE0YjllNTk4MGYwMTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKQEAgLTQzNywxMyArNDM3LDcgQEAgcHVibGljOgogICAgIEludFNp
emUgc2F2ZWRMYXllclNjcm9sbE9mZnNldCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2F2ZWRMYXll
clNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKLSAg
ICB7Ci0gICAgICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKLSAgICAgICAgQ29udGFpbmVyTm9kZTo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVyKG1f
dGFnTmFtZSk7Ci0gICAgICAgIGluZm8uYWRkTWVtYmVyKG1fYXR0cmlidXRlRGF0YSk7Ci0gICAg
fQorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3QgT1ZFUlJJREU7CiAKIHByb3RlY3RlZDoKICAgICBFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDgzY2U3
ODMxMjQ1ZTI1ZWQ1MmZlNTZkOTkzY2IzMzM5ODY3ZmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFbGVtZW50UmFyZURhdGEuaCIKKworI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgRWxlbWVudFJhcmVEYXRhOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6RE9NKTsKKyAgICBOb2RlUmFyZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKG1l
bW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2FjaGVkQ29sbGVjdGlvbnMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fY29tcHV0ZWRTdHlsZSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zaGFkb3dQc2V1ZG9JZCk7CisKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RhdGFzZXRET01T
dHJpbmdNYXApOworICAgIGluZm8uYWRkTWVtYmVyKG1fY2xhc3NMaXN0KTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3NoYWRvdyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdHRyaWJ1dGVNYXApOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRh
LmgKaW5kZXggYjRiYzhlMmU5OWIzYWY0YmMwZDEzMTljMmQ1ZjAzMmU0M2JiNWZmZi4uMWJlYWNi
ZmUxZDE4YTQ5MWU1MWRlN2FkOTk3YTk4NDIwYzllZDM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50UmFyZURhdGEuaApAQCAtMTA3LDYgKzEwNyw4IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAg
IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3QgT1ZFUlJJREU7CisKICAgICB0eXBlZGVmIEZpeGVkQXJyYXk8SFRNTENvbGxlY3Rp
b24qLCBOdW1Ob2RlQ29sbGVjdGlvblR5cGVzPiBDYWNoZWRIVE1MQ29sbGVjdGlvbkFycmF5Owog
ICAgIE93blB0cjxDYWNoZWRIVE1MQ29sbGVjdGlvbkFycmF5PiBtX2NhY2hlZENvbGxlY3Rpb25z
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKaW5kZXggNTFhMjdkYWUzNTAwYjAz
YTkyOTFhMDYwYWMwM2UwZDNmNTI2YWU3MC4uNmY4N2YxNjQ0YWZiOTRiZmJmZTVlYjc4Y2ViMzFm
ZWU0NTE2MmYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcApAQCAtMjAzLDQg
KzIwMywxNiBAQCB2b2lkIEVsZW1lbnRTaGFkb3c6OmludmFsaWRhdGVEaXN0cmlidXRpb24oRWxl
bWVudCogaG9zdCkKICAgICAgICAgbV9kaXN0cmlidXRvci5maW5pc2hJbml2YWxpZGF0aW9uKCk7
CiB9CiAKK3ZvaWQgRWxlbWVudFNoYWRvdzo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5m
byhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9zaGFkb3dSb290cyk7CisgICAgU2hhZG93Um9vdCogc2hhZG93Um9v
dCA9IG1fc2hhZG93Um9vdHMuaGVhZCgpOworICAgIHdoaWxlIChzaGFkb3dSb290KSB7CisgICAg
ICAgIGluZm8uYWRkTWVtYmVyKHNoYWRvd1Jvb3QpOworICAgICAgICBzaGFkb3dSb290ID0gc2hh
ZG93Um9vdC0+bmV4dCgpOworICAgIH0KKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rpc3RyaWJ1dG9y
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50U2hhZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4
IGU5NmRmMjU2ZGZlZWZmNjQ1MmRhY2UzYTVhZjI4YzI5MGI3OTNlNDMuLjJmNmY1NmM3NGY2Njky
Y2VlMzQ0ODZhOWE3ZjliMDIxYzcwZTkyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cu
aApAQCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAgICAgQ29udGVudERpc3RyaWJ1dG9yJiBkaXN0
cmlidXRvcigpOwogICAgIGNvbnN0IENvbnRlbnREaXN0cmlidXRvciYgZGlzdHJpYnV0b3IoKSBj
b25zdDsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OworCiBwcml2YXRlOgogICAgIHZvaWQgaW52YWxpZGF0ZURpc3RyaWJ1dGlvbihFbGVtZW50
KiBob3N0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDFkNzFhYjBkMjExYjhkNWMxYzA1MGFiYzBj
NzdjM2ZiYmZiMjk1ZWEuLjRiYmI2MmMwM2E5NzZiZDVhODgyZTc1MjExNmUwMGE4YTA0M2JlYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTI4MzAsNiArMjgzMCw4IEBAIHZvaWQgTm9kZTo6cmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3ByZXZpb3VzKTsKICAgICBpZiAobV9yZW5kZXJlcikKICAgICAg
ICAgaW5mby5hZGRNZW1iZXIobV9yZW5kZXJlci0+c3R5bGUoKSk7CisgICAgaWYgKGhhc1JhcmVE
YXRhKCkpCisgICAgICAgIGluZm8uYWRkTWVtYmVyKHJhcmVEYXRhKCkpOwogfQogCiB2b2lkIE5v
ZGU6OnRleHRSZWN0cyhWZWN0b3I8SW50UmVjdD4mIHJlY3RzKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wODdmOWMzZWY0NmZmZTU3Y2RjM2NiZTllYmMw
NzdiYTZiOWZhMTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJOb2RlUmFyZURhdGEuaCIKKworI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgorI2lu
Y2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3ZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fYXRvbWljTmFtZUNhY2hlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9u
YW1lQ2FjaGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RhZ05vZGVMaXN0Q2FjaGVOUyk7Cit9
CisKK3ZvaWQgTm9kZVJhcmVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3RyZWVTY29wZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2RlTGlzdHMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fY2hpbGROb2RlTGlzdCk7CisKKyNpZiBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQorICAgIGluZm8uYWRkTWVtYmVyKG1fbXV0YXRpb25PYnNlcnZlclJl
Z2lzdHJ5KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3RyYW5zaWVudE11dGF0aW9uT2JzZXJ2ZXJS
ZWdpc3RyeSk7CisjZW5kaWYKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgaW5mby5hZGRN
ZW1iZXIobV9pdGVtUHJvcCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pdGVtUmVmKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2l0ZW1UeXBlKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggNWIzYTU4M2IwZDIyOWU4ZGJl
YmVlMjFjZDY0MmRjMmM3NzBmMzQ0Mi4uNWU1ZjVhN2QyYjg5YTQ5ZDE0YzE1NjI5MmJiZTAxOWVj
NWMwYjk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMTU4LDYgKzE1OCw4IEBA
IHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIE5vZGVMaXN0c05vZGVE
YXRhKCkgeyB9CiAKQEAgLTMwOCw2ICszMTAsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ZvY3Vz
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9jdXNlZDsgfQogICAgIHZvaWQgc2V0Rm9jdXNlZChi
b29sIGZvY3VzZWQpIHsgbV9pc0ZvY3VzZWQgPSBmb2N1c2VkOyB9CiAKKyAgICB2aXJ0dWFsIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgLy8gZm9yIEVsZW1lbnRSYXJlRGF0YQogICAgIGJvb2wgbmVlZHNGb2N1c0FwcGVh
cmFuY2VVcGRhdGVTb29uQWZ0ZXJBdHRhY2goKSBjb25zdCB7IHJldHVybiBtX25lZWRzRm9jdXNB
cHBlYXJhbmNlVXBkYXRlU29vbkFmdGVyQXR0YWNoOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKaW5kZXggZTE4ODRlMDRhMTk0MWMzNGI2YWEwYzQ4ZmQ2NWZiNjg2Y2U2MjNhZC4uYjBiMGU2
ZDEzZGI2OTZkMjVjNjU0OTlmOWFlMWFhNDEwOGRmNzhhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcApAQCAtMjYwLDQgKzI2MCwxNSBAQCB2b2lkIFNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJT
Y29wZWRIVE1MU3R5bGVDaGlsZCgpCiAgICAgc2V0SGFzU2NvcGVkSFRNTFN0eWxlQ2hpbGQobV9u
dW1iZXJPZlN0eWxlcyA+IDApOwogfQogCisKK3ZvaWQgU2hhZG93Um9vdDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgRG9jdW1lbnRGcmFnbWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVt
b3J5T2JqZWN0SW5mbyk7CisgICAgVHJlZVNjb3BlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlP
YmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3ByZXYpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fbmV4dCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnNlcnRpb25Qb2ludEFzc2lnbmVk
VG8pOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBjYzA4OTU1NDk0ZDc1YzY4
NThjNWE4ODE0YjBhZTQyYmYzMGI2OThhLi5jZWZlYjZiYjI1NWVjZTUwYjIzMjRlNjgxYTUxODUw
YjYyMGE2ZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTEwMCw2ICsxMDAsOCBAQCBw
dWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sLCBFeGNlcHRpb25D
b2RlJik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNoYWRvd1Jv
b3QoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCmluZGV4IGVjNzIzZDNkYWQ3YTA4NThiYTBiMmQ3MDRiZjliYTJjODBhNmNhM2Eu
LmNjNTkzYzYyMGM1NjYzOTgyYmUxMWY5ZDViZjYyOWU3ZGYwOWVkZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCkBAIC0yODAsNiArMjgwLDE4IEBAIE5vZGUqIFRyZWVTY29wZTo6Zm9jdXNl
ZE5vZGUoKQogICAgIHJldHVybiAwOwogfQogCit2b2lkIFRyZWVTY29wZTo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yb290Tm9kZSk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9wYXJlbnRUcmVlU2NvcGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZWxlbWVu
dHNCeUlkKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdlTWFwc0J5TmFtZSk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9sYWJlbHNCeUZvckF0dHJpYnV0ZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkpOworICAgIGluZm8uYWRkTWVtYmVyKG1fc2VsZWN0
aW9uKTsKK30KKwogc3RhdGljIHZvaWQgbGlzdFRyZWVTY29wZXMoTm9kZSogbm9kZSwgVmVjdG9y
PFRyZWVTY29wZSosIDU+JiB0cmVlU2NvcGVzKQogewogICAgIHdoaWxlICh0cnVlKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmgKaW5kZXggOWNhZTU0ZGU4ZGY3NzYyMDQ5NzM0NTUxMjQ0N2RmNDIyZWQ0
OTRiMS4uNGEwMzRhMmQxMmRhNjAxYTZiMjFkMjlmMTA0M2YzMzJlY2ZlYTQzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGUuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAKICAgICBJZFRhcmdldE9i
c2VydmVyUmVnaXN0cnkmIGlkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeSgpIGNvbnN0IHsgcmV0dXJu
ICptX2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5nZXQoKTsgfQogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVjdGVk
OgogICAgIGV4cGxpY2l0IFRyZWVTY29wZShDb250YWluZXJOb2RlKik7CiAgICAgdmlydHVhbCB+
VHJlZVNjb3BlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAppbmRleCA0MzdiZTA1MWExYWE1NjYxYzAzYWQ4MTA4MjMxZGI5Y2M3OGExMjQ0Li5j
ZjE2ZjQzMTA3NDdkNTA3NGUzZWViYTI3YWQ0NzU2Y2E2NDFlOTQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTQ5OCw0ICs0OTgsMTEg
QEAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogSFRNTEZvcm1Db250cm9sRWxlbWVudDo6ZW5jbG9z
aW5nRm9ybUNvbnRyb2xFbGVtZW50KE5vZGUKICAgICByZXR1cm4gMDsKIH0KIAordm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBMYWJlbGFi
bGVFbGVtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3ZhbGlkYXRpb25NZXNzYWdlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Y29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRl
eCAyNGRlOTc2NjljMzM5M2QxMzVlNDc0ZDIxNWE3NTI3MTdkNGI2ZTRlLi5iODhiMWIwOGI4Zjlj
ODFkNTMxZTU4YWU3Y2Q2YWM4ZDM0MWNhZmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaApAQCAtMTEyLDYgKzExMiw4IEBAIHB1YmxpYzoKICAgICB1
c2luZyBOb2RlOjpyZWY7CiAgICAgdXNpbmcgTm9kZTo6ZGVyZWY7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURFOwor
CiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBlMDJkZjI2ZmI3MmQ5OTgwNjBhMGRk
YmNiNGNjMDNjM2JmOTQxOGIyLi40NWQwYjNhMTJkZDEwMGU2YWI0MmVkNGY3ODkwMzAwOTVkYjVi
ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE5MDEs
NCArMTkwMSwxNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFJhbmdlVGV4dChjb25zdCBT
dHJpbmcmIHJlcGxhY2VtZW50LCB1bnNpZ25lZCBzdGFydCwgdQogICAgIEhUTUxUZXh0Rm9ybUNv
bnRyb2xFbGVtZW50OjpzZXRSYW5nZVRleHQocmVwbGFjZW1lbnQsIHN0YXJ0LCBlbmQsIHNlbGVj
dGlvbk1vZGUsIGVjKTsKIH0KIAordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlU
eXBlczo6RE9NKTsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cmVwb3J0TWVtb3J5
VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9uYW1lKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3ZhbHVlSWZEaXJ0eSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9z
dWdnZXN0ZWRWYWx1ZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnB1dFR5cGUpOworI2lmIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQorICAgIGluZm8uYWRkTWVtYmVyKG1fbGlzdEF0dHJpYnV0
ZVRhcmdldE9ic2VydmVyKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBlZjRkNzZlYTFhNTVkMDIxYzBjMzFlYWJh
OTEzM2VlMWQzMDEzYmUzLi5lMWQxNjgxZmQ3NzQyMWExNTE1YjRjZjRjNGZmZTQzYWQ4ZWIzOWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjkxLDYgKzI5MSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnQsIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UmFuZ2VUZXh0KGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnQsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBlbmQsIGNvbnN0IFN0cmluZyYgc2VsZWN0aW9uTW9kZSwgRXhjZXB0aW9uQ29kZSYp
IE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxJbnB1dEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kiwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cAppbmRleCA3YWFjZmNiNjc2OGJlZDAyZTA3NDljMDAwMjI4MWU5OWUzNjU2ZGNkLi5kNTJhODI1
NzEyNTY4MWMwNzI1ZmE3OWZiMDFkZGY5NjA0MjgwNDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtNjcyLDQgKzY3Miwx
MSBAQCBTdHJpbmcgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRpcmVjdGlvbkZvckZvcm1E
YXRhKCkgY29uc3QKICAgICByZXR1cm4gImx0ciI7CiB9CiAKK3ZvaWQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9i
amVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fdGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYmNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA5YTVmYTYxODE3MjljYWYxNTBlY2Yx
ZGVmM2E4OThiMDQ3OGFjODc0Li4xZmFmOGZjZjZhNGQ1NGE5OWJjMjBhODYyNzVjMGVhZWZkYjA5
ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5oCkBAIC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VGV4dEFzT2ZM
YXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChjb25zdCBTdHJpbmcmIHRleHQpIHsgbV90ZXh0QXNP
Zkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50ID0gdGV4dDsgfQogCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJvdGVjdGVkOgogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogICAgIGJvb2wgaXNQbGFjZWhv
bGRlckVtcHR5KCkgY29uc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>