<?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>129668</bug_id>
          
          <creation_ts>2014-03-04 01:17:25 -0800</creation_ts>
          <short_desc>Move Source/WebCore/html/canvas/ code to std::unique_ptr</short_desc>
          <delta_ts>2014-03-06 01:09:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>128007</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986725</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-04 01:17:25 -0800</bug_when>
    <thetext>Move Source/WebCore/html/canvas/ code to std::unique_ptr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986726</commentid>
    <comment_count>1</comment_count>
      <attachid>225752</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-04 01:19:02 -0800</bug_when>
    <thetext>Created attachment 225752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986736</commentid>
    <comment_count>2</comment_count>
      <attachid>225759</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-04 01:39:55 -0800</bug_when>
    <thetext>Created attachment 225759
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987245</commentid>
    <comment_count>3</comment_count>
      <attachid>225759</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-05 07:23:15 -0800</bug_when>
    <thetext>Comment on attachment 225759
Patch

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

&gt; Source/WebCore/html/canvas/OESVertexArrayObject.h:41
&gt; +    OESVertexArrayObject(WebGLRenderingContext*);

This should be explicit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987612</commentid>
    <comment_count>4</comment_count>
      <attachid>225759</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-06 01:09:18 -0800</bug_when>
    <thetext>Comment on attachment 225759
Patch

Clearing flags on attachment: 225759

Committed r165179: &lt;http://trac.webkit.org/changeset/165179&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>987613</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-03-06 01:09:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225752</attachid>
            <date>2014-03-04 01:19:02 -0800</date>
            <delta_ts>2014-03-04 01:39:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129668-20140304011900.patch</filename>
            <type>text/plain</type>
            <size>48353</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MDM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI5MmE1OGExYTNlODhh
ZWJmZTg0ZGU5YjNiYzE4MzcxMjFhM2VmMy4uYzFjMDVhNzIwMWY5Y2NkZWI5ODY1MGI4ZTliYmM2
MDg3ZDEzZWExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE0LTAzLTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzLyBjb2RlIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIFBhc3NP
d25QdHIgaW4gY29kZSB1bmRlciBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy8gdG8gc3RkOjp1
bmlxdWVfcHRyLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6fkhUTUxDYW52YXNFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KToKKyAgICAgICAg
KiBodG1sL0hUTUxDYW52YXNFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQU5HTEVJ
bnN0YW5jZWRBcnJheXMuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2Vk
QXJyYXlzLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50Lmg6CisgICAgICAgICogaHRtbC9jYW52
YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU1RleHR1cmVG
bG9hdC5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0Lmg6CisgICAg
ICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcDoKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIuaDoKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNUZXh0
dXJlSGFsZkZsb2F0Lmg6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhci5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExp
bmVhci5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcDoK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuY3BwOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RGVidWdSZW5kZXJlckluZm8uY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVidWdS
ZW5kZXJlckluZm8uaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5j
cHA6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5jcHA6CisgICAgICAgICogaHRtbC9jYW52
YXMvV2ViR0xEZXB0aFRleHR1cmUuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERyYXdC
dWZmZXJzLmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmg6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHA6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldEV4dGVuc2lvbik6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0Lmg6CisKIDIwMTQtMDMtMDMgIFNhbmdoeXVwIExlZSAgPHNoNTMubGVlQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIDphY3RpdmUgc3R5bGUgaXMgbm90IGNsZWFyZWQgd2hlbiBpdHMgZGlzcGxh
eSBwcm9wZXJ0eSBpcyBzZXQgdG8gbm9uZSBiZWZvcmUgbW91c2UgcmVsZWFzZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDIxNzBmMjE1NWUzYjI1YzBj
N2EzNDE2NTRhMjM5ZjYzMjkwOTU0ZmMuLjc0YzA3NWQwYjc4NDkyODQ1NTgwYjJiYTYxYmQxMGRh
ZTVlZTFhNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBA
IC0xMDQsNyArMTA0LDcgQEAgSFRNTENhbnZhc0VsZW1lbnQ6On5IVE1MQ2FudmFzRWxlbWVudCgp
CiAgICAgZm9yIChhdXRvIGl0ID0gbV9vYnNlcnZlcnMuYmVnaW4oKSwgZW5kID0gbV9vYnNlcnZl
cnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPmNhbnZhc0Rlc3Ryb3ll
ZCgqdGhpcyk7CiAKLSAgICBtX2NvbnRleHQuY2xlYXIoKTsgLy8gRW5zdXJlIHRoaXMgZ29lcyBh
d2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCisgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsgLy8g
RW5zdXJlIHRoaXMgZ29lcyBhd2F5IGJlZm9yZSB0aGUgSW1hZ2VCdWZmZXIuCiB9CiAKIHZvaWQg
SFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCkBAIC0yMDUsNyArMjA1LDcgQEAgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQoY29uc3QgU3Ry
aW5nJiB0eXBlLCBDYW52YXMKICAgICAgICAgICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBk
b2N1bWVudCgpLnNldHRpbmdzKCkpCiAgICAgICAgICAgICAgICAgdXNlc0Rhc2hiYXJkQ29tcGF0
aWJpbGl0eU1vZGUgPSBzZXR0aW5ncy0+dXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29tcGF0aWJpbGl0
eU1vZGUoKTsKICNlbmRpZgotICAgICAgICAgICAgbV9jb250ZXh0ID0gQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEOjpjcmVhdGUodGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSwgdXNlc0Rh
c2hiYXJkQ29tcGF0aWJpbGl0eU1vZGUpOworICAgICAgICAgICAgbV9jb250ZXh0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+KHRoaXMsIGRvY3VtZW50KCkuaW5R
dWlya3NNb2RlKCksIHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlNb2RlKTsKICNpZiBVU0UoSU9T
VVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FO
VkFTKQogICAgICAgICAgICAgLy8gTmVlZCB0byBtYWtlIHN1cmUgYSBSZW5kZXJMYXllciBhbmQg
Y29tcG9zaXRpbmcgbGF5ZXIgZ2V0IGNyZWF0ZWQgZm9yIHRoZSBDYW52YXMKICAgICAgICAgICAg
IHNldE5lZWRzU3R5bGVSZWNhbGMoU3ludGhldGljU3R5bGVDaGFuZ2UpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDZjZGFiMjZlMmM1MzI2ZDcwMjc1OWI1ZDk0
MjQ1MDY4ZmQ3MWZkMzYuLmRjMzc1YjkyNDU1NjkwN2FjZDNiMWQxMTBhZTMzZjA3ZGZlNmE3ZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KIAogI2lmIFVTRShDRykKQEAgLTE3MSw3ICsxNzIsNyBAQCBwcml2YXRlOgogCiAgICAg
SW50U2l6ZSBtX3NpemU7CiAKLSAgICBPd25QdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9j
b250ZXh0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0PiBtX2Nv
bnRleHQ7CiAKICAgICBib29sIG1fcmVuZGVyZXJJc0NhbnZhczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuY3BwCmluZGV4IGQ5MTZh
ODFkNzg5ZGI4MGVmYjFhNmViNzNmNGJlOWUxYzc2MWI2ZGMuLmMzYzhhMWYwYjJiZTY4Mjk4OTNj
OTliYjIyOWQ1ODY1YzA0MWZlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHAKQEAgLTQ4LDExICs0OCw2IEBAIFdlYkdMRXh0
ZW5zaW9uOjpFeHRlbnNpb25OYW1lIEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpnZXROYW1lKCkgY29u
c3QKICAgICByZXR1cm4gQU5HTEVJbnN0YW5jZWRBcnJheXNOYW1lOwogfQogCi1Pd25QdHI8QU5H
TEVJbnN0YW5jZWRBcnJheXM+IEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQU5HTEVJ
bnN0YW5jZWRBcnJheXMoY29udGV4dCkpOwotfQotCiBib29sIEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewogI2lmIFBMQVRG
T1JNKElPUykgfHwgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwOTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xF
SW5zdGFuY2VkQXJyYXlzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdMRUluc3Rh
bmNlZEFycmF5cy5oCmluZGV4IGY4NzEyNmZiYmQ2OTFiNzE0ZTRiZTk2NmFiZGYzNjRiYWE4MTdi
ZDEuLjIzYjRlNjIzZmM0ZTQzYTg5YWIzZDc5ODZmYWYyMDU4MmM1NGJiNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJheXMuaApAQCAtMjcs
NyArMjcsNiBAQAogI2RlZmluZSBBTkdMRUluc3RhbmNlZEFycmF5c19oCiAKICNpbmNsdWRlICJX
ZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtMzUsOCArMzQsOSBAQCBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ7CiAKIGNsYXNzIEFOR0xFSW5zdGFuY2VkQXJyYXlzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9u
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPEFOR0xFSW5zdGFuY2VkQXJyYXlzPiBjcmVh
dGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgZXhwbGljaXQgQU5HTEVJbnN0YW5jZWRB
cnJheXMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+QU5HTEVJbnN0YW5j
ZWRBcnJheXMoKTsKKwogICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Q7
CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CkBA
IC00NCw5ICs0NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWRBTkdM
RShHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXpl
aSBwcmltY291bnQpOwogICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEUoR0MzRGVu
dW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBsb25nIGxvbmcgb2Zmc2V0
LCBHQzNEc2l6ZWkgcHJpbWNvdW50KTsKICAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3JBTkdM
RShHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcik7Ci0KLXByaXZhdGU6Ci0gICAgQU5H
TEVJbnN0YW5jZWRBcnJheXMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oCmluZGV4IGJiMDczNmQwNzBmNmQyYTdiNTU5YmJkNjYy
MjRhMzg0ZDE4NDg1ZmIuLmRkNDdlMzBlZjIyMDQ1MTAyNjFiYjRiMmQxYWExNDg0M2QxZDg5M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oCkBAIC01OCwxMCArNTgsNyBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OwogCiBjbGFzcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQgOiBwdWJsaWMgQ2FudmFzUmVuZGVy
aW5nQ29udGV4dCwgcHVibGljIENhbnZhc1BhdGhNZXRob2RzIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRD4gY3JlYXRlKEhUTUxDYW52YXNFbGVt
ZW50KiBjYW52YXMsIGJvb2wgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJzZU1vZGUsIGJvb2wgdXNl
c0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoY2FudmFzLCB1c2VzQ1NTQ29tcGF0aWJp
bGl0eVBhcnNlTW9kZSwgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKSk7Ci0gICAgfQor
ICAgIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRChIVE1MQ2FudmFzRWxlbWVudCosIGJvb2wgdXNl
c0NTU0NvbXBhdGliaWxpdHlQYXJzZU1vZGUsIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxp
dHlNb2RlKTsKICAgICB2aXJ0dWFsIH5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQoKTsKIAogICAg
IGNvbnN0IENhbnZhc1N0eWxlJiBzdHJva2VTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRlKCku
bV9zdHJva2VTdHlsZTsgfQpAQCAtMjY5LDggKzI2Niw2IEBAIHByaXZhdGU6CiAgICAgICAgIENh
bnZhc0RpZERyYXdBcHBseUFsbCA9IDB4ZmZmZmZmZmYKICAgICB9OwogCi0gICAgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEKEhUTUxDYW52YXNFbGVtZW50KiwgYm9vbCB1c2VzQ1NTQ29tcGF0aWJp
bGl0eVBhcnNlTW9kZSwgYm9vbCB1c2VzRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwotCiAg
ICAgU3RhdGUmIG1vZGlmaWFibGVTdGF0ZSgpIHsgQVNTRVJUKCFtX3VucmVhbGl6ZWRTYXZlQ291
bnQpOyByZXR1cm4gbV9zdGF0ZVN0YWNrLmxhc3QoKTsgfQogICAgIGNvbnN0IFN0YXRlJiBzdGF0
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGVTdGFjay5sYXN0KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3Bp
Yy5jcHAKaW5kZXggOGFlMjQ5NDU2NzhlMTllYmJkYTU2ZWU2ZWFmNzAwY2ViZTliOTYyMS4uYWI4
ZjM2MjdjNTc2MzFmYjUwMTk0OWZmNTM0YmVkNzU4Y2Q3ZjZmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwCkBAIC00NSwxMSArNDUsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWM6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWNOYW1lOwogfQogCi1Pd25QdHI8RVhUVGV4dHVyZUZpbHRl
ckFuaXNvdHJvcGljPiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM6OmNyZWF0ZShXZWJHTFJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWMoY29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oCmluZGV4IDVl
NzZlYmIwMTE2ZDRhODgzMWE2YjU3ZDg3MDY5MDYzNGI2ZDc3NjYuLjgzM2M4MWQ0NDM0NDA5ZmJj
MzE1YWFhYmNhNDBkMmZhZGE3Y2M0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5oCkBAIC0yNywxOSArMjcs
MTUgQEAKICNkZWZpbmUgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljX2gKIAogI2luY2x1ZGUg
IldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgOiBwdWJs
aWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8RVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Ci0KKyAg
ICBleHBsaWNpdCBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMoV2ViR0xSZW5kZXJpbmdDb250
ZXh0Kik7CiAgICAgdmlydHVhbCB+RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKCk7Ci0gICAg
dmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotcHJpdmF0
ZToKLSAgICBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMoV2ViR0xSZW5kZXJpbmdDb250ZXh0
Kik7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5jcHAKaW5kZXggNjYwMjQxNTNhZmM3NDJhYTY0
YWQ4YmRkNGQ5NzQ4YmNjMTcwODMzMy4uODc1Zjk3MGIwOGZkZDUwYTY1YzYxMzhhYWQ0YTE3MjVm
ODNkODYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVu
dEluZGV4VWludC5jcHAKQEAgLTQ1LDExICs0NSw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNp
b25OYW1lIE9FU0VsZW1lbnRJbmRleFVpbnQ6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBP
RVNFbGVtZW50SW5kZXhVaW50TmFtZTsKIH0KIAotT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+
IE9FU0VsZW1lbnRJbmRleFVpbnQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNFbGVtZW50SW5kZXhVaW50KGNvbnRl
eHQpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdF
QkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudElu
ZGV4VWludC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWlu
dC5oCmluZGV4IDgzY2U1NmE4ZDczZGQ1YjNmOGJhMDFjNjQ2ZGUzNzk5YjUyZjgzZjcuLjY0ZmQ2
YzY3MTJiZjU3YjBiYTdiZDA3YTAxNjE0NjljMDU0MjlkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmgKQEAgLTI3LDE5ICsyNywxNSBA
QAogI2RlZmluZSBPRVNFbGVtZW50SW5kZXhVaW50X2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5z
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBPRVNFbGVtZW50SW5kZXhVaW50IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIGV4cGxpY2l0IE9FU0VsZW1lbnRJbmRleFVp
bnQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+T0VTRWxlbWVudEluZGV4
VWludCgpOwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLXByaXZhdGU6Ci0gICAgT0VTRWxlbWVudEluZGV4VWludChXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJy
aWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAppbmRleCAwZjJjODc2
Yzc1YWViNDExZGRlZjc2N2UyMWE0NDkyNjU2NjBkZjZiLi43NjAzYzc3NjJjNzRhYjA3YjlkZTUy
MTBmNmQ3MjhjMmUyM2FkYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcApAQCAtNDUsMTEgKzQ1LDYgQEAgV2ViR0xF
eHRlbnNpb246OkV4dGVuc2lvbk5hbWUgT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6Z2V0TmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOwogfQogCi1Pd25Q
dHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMoY29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmgKaW5kZXggYTIxZGZkODlj
MWI2MDg5ZDA4NmY3MWFmOTk0NDQzMTkxMDkwNzc1NS4uYjBhNDAxYTAzMWQxYTk0ODIyMmJlYjU1
ZmUyZGZlYTA2N2MzOTk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaApAQCAtMjcsMTkgKzI3LDE1IEBACiAjZGVmaW5lIE9F
U1N0YW5kYXJkRGVyaXZhdGl2ZXNfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKLSNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGlj
OgotICAgIHN0YXRpYyBPd25QdHI8T0VTU3RhbmRhcmREZXJpdmF0aXZlcz4gY3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgZXhwbGljaXQgT0VTU3RhbmRhcmREZXJpdmF0aXZl
cyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5PRVNTdGFuZGFyZERlcml2
YXRpdmVzKCk7Ci0gICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKIAotcHJpdmF0ZToKLSAgICBPRVNTdGFuZGFyZERlcml2YXRpdmVzKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qg
b3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAppbmRleCAyMjMxMzZjNDI3YzkwZGNi
YWY3OTBhN2EzNmVhMzRmMTA3NTg2MWE5Li42ZDM0YmQzOGY2MTc5MzRjNWFjN2U0MmJjNjIyYWQx
ODJkMDI4YjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0
dXJlRmxvYXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVG
bG9hdC5jcHAKQEAgLTQ1LDExICs0NSw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1l
IE9FU1RleHR1cmVGbG9hdDo6Z2V0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIE9FU1RleHR1cmVG
bG9hdE5hbWU7CiB9CiAKLU93blB0cjxPRVNUZXh0dXJlRmxvYXQ+IE9FU1RleHR1cmVGbG9hdDo6
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRv
cHRQdHIobmV3IE9FU1RleHR1cmVGbG9hdChjb250ZXh0KSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmgKaW5kZXggNmM2N2VhMTFiMzhhNWFmYWViOGQ4N2I5
MWFkYmU2M2ZkNmJmNjQxNy4uZWU2Zjk1NjhkMDhhMDFlZGZmZGU1MGNjYzEwNTlmMmNlODBiNDI0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmgKQEAg
LTI3LDE5ICsyNywxNSBAQAogI2RlZmluZSBPRVNUZXh0dXJlRmxvYXRfaAogCiAjaW5jbHVkZSAi
V2ViR0xFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIE9FU1RleHR1cmVGbG9hdCA6IHB1YmxpYyBXZWJHTEV4dGVu
c2lvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxPRVNUZXh0dXJlRmxvYXQ+IGNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIE9FU1RleHR1cmVGbG9hdChXZWJHTFJl
bmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5PRVNUZXh0dXJlRmxvYXQoKTsKLSAgICB2
aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRl
OgotICAgIE9FU1RleHR1cmVGbG9hdChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0
dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0TGluZWFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09F
U1RleHR1cmVGbG9hdExpbmVhci5jcHAKaW5kZXggZDkzNDkxNjA4OGVlNTk5NzIxNTdjNGUwZGY2
MWQ1MzNkMTFiYTgzYS4uOGNlNDgzM2I1Mjc3MDI1ZjkyZWYyYzcwMGM5Y2RmZDcwZjY1MWYxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0TGlu
ZWFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRM
aW5lYXIuY3BwCkBAIC00NCwxMSArNDQsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFt
ZSBPRVNUZXh0dXJlRmxvYXRMaW5lYXI6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBPRVNU
ZXh0dXJlRmxvYXRMaW5lYXJOYW1lOwogfQogCi1Pd25QdHI8T0VTVGV4dHVyZUZsb2F0TGluZWFy
PiBPRVNUZXh0dXJlRmxvYXRMaW5lYXI6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNUZXh0dXJlRmxvYXRMaW5lYXIo
Y29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0
dXJlRmxvYXRMaW5lYXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVG
bG9hdExpbmVhci5oCmluZGV4IDNlOWZlODdjYzM4Mjk1ZTI4MmMxZDk4ODBjMjI3ZTY0YzBkMTlh
ZWQuLjAxNThmZjE0ODQxZmYyYzBkZjRmNDQyZThmYjRhMDI2Nzk2YzA4NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdExpbmVhci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdExpbmVhci5oCkBAIC0y
NywxOSArMjcsMTUgQEAKICNkZWZpbmUgT0VTVGV4dHVyZUZsb2F0TGluZWFyX2gKIAogI2luY2x1
ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBPRVNUZXh0dXJlRmxvYXRMaW5lYXIgOiBwdWJsaWMg
V2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8T0VTVGV4dHVyZUZs
b2F0TGluZWFyPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Ci0KKyAgICBleHBsaWNp
dCBPRVNUZXh0dXJlRmxvYXRMaW5lYXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmly
dHVhbCB+T0VTVGV4dHVyZUZsb2F0TGluZWFyKCk7Ci0gICAgdmlydHVhbCBFeHRlbnNpb25OYW1l
IGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotcHJpdmF0ZToKLSAgICBPRVNUZXh0dXJlRmxv
YXRMaW5lYXIoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgdmlydHVhbCBFeHRlbnNpb25O
YW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVIYWxm
RmxvYXQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9h
dC5jcHAKaW5kZXggZmQyZTI1YmQyZmYyOTcwOTBiNjJkNmI4MTMwNzQ1ODBjODZjMjJlZC4uMjQ1
YjM5OGNmZjgxZWRmMWY4YzA4MjMzNGQyM2RjMWU1MDUxOTRkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5jcHAKQEAgLTQ1LDExICs0
NSw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIE9FU1RleHR1cmVIYWxmRmxvYXQ6
OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBPRVNUZXh0dXJlSGFsZkZsb2F0TmFtZTsKIH0K
IAotT3duUHRyPE9FU1RleHR1cmVIYWxmRmxvYXQ+IE9FU1RleHR1cmVIYWxmRmxvYXQ6OmNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBPRVNUZXh0dXJlSGFsZkZsb2F0KGNvbnRleHQpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdC5oCmluZGV4IGM4YWI5ZmViMTA5OGY2N2Jm
ZDljMmRmYjIzNjJkMjJiMWY4YTk5ZWUuLmJiNDJiNWMzZTIwM2NkZGFjNTE4ZjdlNmM4NWVjZGU0
ZjY1ZmE3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1
cmVIYWxmRmxvYXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJl
SGFsZkZsb2F0LmgKQEAgLTI3LDE5ICsyNywxNSBAQAogI2RlZmluZSBPRVNUZXh0dXJlSGFsZkZs
b2F0X2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBPRVNUZXh0dXJlSGFsZkZs
b2F0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRy
PE9FU1RleHR1cmVIYWxmRmxvYXQ+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQor
ICAgIE9FU1RleHR1cmVIYWxmRmxvYXQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmly
dHVhbCB+T0VTVGV4dHVyZUhhbGZGbG9hdCgpOwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBn
ZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Ci0gICAgT0VTVGV4dHVyZUhhbGZG
bG9hdChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUg
Z2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZs
b2F0TGluZWFyLmNwcAppbmRleCBlMmVjOGIyNTA1MzhiZmY1ZDk0Yjc4MjU2YzdmZDZhZmQzNDE2
MmMwLi4zMmRiNDk1NTJjODE2YjRmNDVkNDEwMzBkYWRiNzI0OTJiZjA0NTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGlu
ZWFyLmNwcApAQCAtNDQsMTEgKzQ0LDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUg
T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcjo6Z2V0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIE9F
U1RleHR1cmVIYWxmRmxvYXRMaW5lYXJOYW1lOwogfQogCi1Pd25QdHI8T0VTVGV4dHVyZUhhbGZG
bG9hdExpbmVhcj4gT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcjo6Y3JlYXRlKFdlYkdMUmVuZGVy
aW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXIoY29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyLmgKaW5kZXggMDczYjQ4YTlmM2Q4
OWFkNTA3NTA2NDY5ZmIwNmZlYzFkZjg5Y2VkYS4uYmI5NDg1ZDMzZGU3ZWNjMTQ2MjFmZGQwZDIz
N2YxYWNhYTE1NjY0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
VGV4dHVyZUhhbGZGbG9hdExpbmVhci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuaApAQCAtMjcsMTkgKzI3LDE1IEBACiAjZGVmaW5l
IE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXJfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24u
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24g
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4g
Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgT0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhcihXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5PRVNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyKCk7Ci0gICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBj
b25zdCBvdmVycmlkZTsKIAotcHJpdmF0ZToKLSAgICBPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFy
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXRO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAK
aW5kZXggNzcyMDEyYjE5NjllYWFhYzQ4ZWNlMzIzMzlkYWNhOGE5ZjhkNmE0My4uYzQyYzBiYjNl
M2I3MGMxMTNmMDM5NTZkNTcyZmZiYzM0YWViNzM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcApAQCAtNDcsMTEgKzQ3LDYg
QEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgT0VTVmVydGV4QXJyYXlPYmplY3Q6Omdl
dE5hbWUoKSBjb25zdAogICAgIHJldHVybiBPRVNWZXJ0ZXhBcnJheU9iamVjdE5hbWU7CiB9CiAK
LU93blB0cjxPRVNWZXJ0ZXhBcnJheU9iamVjdD4gT0VTVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBPRVNWZXJ0ZXhBcnJheU9iamVjdChjb250ZXh0KSk7Ci19Ci0KIFBhc3NSZWZQdHI8V2Vi
R0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gT0VTVmVydGV4QXJyYXlPYmplY3Q6OmNyZWF0ZVZlcnRl
eEFycmF5T0VTKCkKIHsKICAgICBpZiAobV9jb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaAppbmRl
eCBiOWY4NTk5MjkxNDI5YjM4NTM3OTUxNDE4ZmE4ZDcxMTk5YzVmYTIzLi45ZDk1ZjY2NGU2NmU3
MGQzZDg1ZmFlZjE0OWMxM2Q5YjUwMGM5YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmgKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lu
Y2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0z
OSwxOCArMzgsMTUgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgT0VTVmVy
dGV4QXJyYXlPYmplY3QgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8T0VTVmVydGV4QXJyYXlPYmplY3Q+IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqKTsKLQorICAgIE9FU1ZlcnRleEFycmF5T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dCopOwogICAgIHZpcnR1YWwgfk9FU1ZlcnRleEFycmF5T2JqZWN0KCk7CisKICAgICB2aXJ0dWFs
IEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIFBhc3NS
ZWZQdHI8V2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUz4gY3JlYXRlVmVydGV4QXJyYXlPRVMoKTsK
ICAgICB2b2lkIGRlbGV0ZVZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMq
KTsKICAgICBHQzNEYm9vbGVhbiBpc1ZlcnRleEFycmF5T0VTKFdlYkdMVmVydGV4QXJyYXlPYmpl
Y3RPRVMqKTsKICAgICB2b2lkIGJpbmRWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTKiwgRXhjZXB0aW9uQ29kZSYpOwotCi1wcml2YXRlOgotICAgIE9FU1ZlcnRleEFycmF5
T2JqZWN0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDLmNwcAppbmRleCA3MTg4MWJhMDk5MjA4OWNiNDBhNjVkOGFiZWExNTc3
MzJlZjAyOTA4Li43YTkxYzAzZmQ0NTRlNDVmMTIwZjdlMjI4OGQ2NzBkYzBlNjk2ZGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVRDLmNwcApAQCAtNTAsMTEgKzUwLDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lv
bk5hbWUgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6Z2V0TmFtZSgpIGNvbnN0CiAgICAgcmV0
dXJuIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVENOYW1lOwogfQogCi1Pd25QdHI8V2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQz4gV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6Y3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEMoY29udGV4dCkpOwotfQotCiBib29sIFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVEM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQp
CiB7CiAgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gY29udGV4dC0+Z3JhcGhpY3NDb250
ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oCmluZGV4IDZhOGQ4OWQ1ZGE5MDc2
YjZlNjhhYzMyZDc0YTJkOTE2NmZiZWQ1OTIuLjNmMTBjM2I0NDdhZWU3ZmVhYTZkZjU2MzhkNGY2
NmYxNmM5YTcxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
Q29tcHJlc3NlZFRleHR1cmVBVEMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDLmgKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQ19oCiAKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzUsMTUgKzM0LDEyIEBAIGNsYXNzIFdlYkdMVGV4dHVyZTsKIAogY2xhc3MgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDPiBjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7CisgICAgZXhwbGljaXQgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQyhXZWJH
TFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDKCk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
Kik7CiAKLSAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKCk7CiAgICAgdmly
dHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKLQotcHJpdmF0ZToK
LSAgICBXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRDKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKaW5kZXggZDA1
ZDQxNzhiNTZkMmY4MjFjM2IyODFlY2RkYjM5MWMxODhjMmJhNC4uNjEyNmFlYzNmNzJiMmMzNGQw
ZmI0MGQ4Yjg4NGNhOGNhOGVmYzlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwCkBAIC01MiwxMSAr
NTIsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEM6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVENOYW1lOwogfQogCi1Pd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPiBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQq
IGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTENvbXByZXNzZWRUZXh0
dXJlUFZSVEMoY29udGV4dCkpOwotfQotCiBib29sIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJU
Qzo6c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBFeHRl
bnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250ZXh0LT5ncmFwaGljc0NvbnRleHQzRCgpLT5nZXRF
eHRlbnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVEMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5oCmluZGV4IGYyMGUyZDI1ZGE3NDQ4YzkzNzk1M2Ux
Yzc5ZjkyYTJkZWQ1NDkzMTQuLmI4ZTcyNzE5NGNiNmExYjgyMGNiNTdhZWEyMzk0Mjk5NjFmYjMx
ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQy5oCkBAIC0yNywyMSArMjcsMTYgQEAKICNkZWZpbmUgV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDX2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDPiBj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgZXhwbGljaXQgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgfldl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQygpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVk
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCi0gICAgdmlydHVhbCB+V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVBWUlRDKCk7CiAgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25z
dCBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMo
V2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRU
ZXh0dXJlUzNUQy5jcHAKaW5kZXggYmNmMWEzMjY3ODYxYmUwMmQzMjZmZTEyMzVmM2JjZWM3NjFi
Mjg3NS4uYzVlMmNlZWY2NzQ4ZDY3M2YwMTAwYWI1YjE3NjM3OTkzZmQ1YzczZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDLmNwcApAQCAtNTIsMTEgKzUyLDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5h
bWUgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVy
biBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQ05hbWU7CiB9CiAKLU93blB0cjxXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQz4gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OmNyZWF0ZShXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyhjb250ZXh0KSk7Ci19Ci0KIGJvb2wgV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRl
eHQpCiB7CiAgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gY29udGV4dC0+Z3JhcGhpY3ND
b250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmgKaW5kZXggYzZjOWVkYjQ1
ZDYzMjZjZmIyMjUyNzJhOTVhMDM3YjIwNjMxOTI3Ny4uYzkyNTU2MTUyMThlODZiZGQ0NDM1YTlj
Y2IyMWI0ZTMxY2Q0NzFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVm
aW5lIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDX2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5z
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC0zNSwxNSArMzQsMTIgQEAgY2xhc3MgV2ViR0xUZXh0dXJlOwogCiBjbGFzcyBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4gY3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIGV4cGxpY2l0IFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVTM1RDKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgfldlYkdMQ29tcHJl
c3NlZFRleHR1cmVTM1RDKCk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0ZWQoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNU
QygpOwogICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0KLXByaXZhdGU6Ci0gICAgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCmluZGV4
IDJmZTVmMTcxZDZhNjEyMzBhYTFhNmM2ODA1OTUzMDQ2ZWUwMTcyNDcuLmU5NWMwODlkZjYwOWZl
NTQ1ZjE5ZjhiNDg2NzI3NWU5ZDA4MTU4YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uY3BwCkBAIC00NywxMSArNDcsNiBA
QCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpn
ZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mb05hbWU7CiB9
CiAKLU93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBXZWJHTERlYnVnUmVuZGVyZXJJbmZv
OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhjb250ZXh0KSk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaAppbmRleCA0
NDIyZjg0ZGVjODZiMzg4ZGU5OGYwYzIxNDE0MGRjMDdmOWNlYzAxLi5kNWU0ZjBlMzliODRkNWVi
MWQxZTVjNjdlZGNmZTAyZmQwNjU0OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVm
aW5lIFdlYkdMRGVidWdSZW5kZXJlckluZm9faAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24u
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM4LDEzICszNywxMCBAQCBwdWJsaWM6CiAgICAgICAgIFVOTUFTS0VEX1JFTkRFUkVSX1dF
QkdMID0gMHg5MjQ2CiAgICAgfTsKIAotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgZXhwbGljaXQg
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0
dWFsIH5XZWJHTERlYnVnUmVuZGVyZXJJbmZvKCk7Ci0gICAgdmlydHVhbCBFeHRlbnNpb25OYW1l
IGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotcHJpdmF0ZToKLSAgICBXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgRXh0ZW5zaW9u
TmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hh
ZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5j
cHAKaW5kZXggMGMwMjgyNjVjZWE5YjJiZWJlYjE5MTBhODBkZTlmMTExODRjMGI0NC4uODI1MGVl
MDY1NWYxNjIyMTc4ZDA1OTkyZmRmNjYzZDRhNTAzZTVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcApAQCAtNDksMTEgKzQ5LDYgQEAg
V2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldE5hbWUo
KSBjb25zdAogICAgIHJldHVybiBXZWJHTERlYnVnU2hhZGVyc05hbWU7CiB9CiAKLU93blB0cjxX
ZWJHTERlYnVnU2hhZGVycz4gV2ViR0xEZWJ1Z1NoYWRlcnM6OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTERlYnVn
U2hhZGVycyhjb250ZXh0KSk7Ci19Ci0KIFN0cmluZyBXZWJHTERlYnVnU2hhZGVyczo6Z2V0VHJh
bnNsYXRlZFNoYWRlclNvdXJjZShXZWJHTFNoYWRlciogc2hhZGVyLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBVTlVTRURfUEFSQU0oZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKaW5kZXggOTYxZjQ4OGNlNGQyMDFmYWRkN2EzNWY5YTY0
ZDFjNjNjM2QxNzkwMy4uYmY5MjQzMDZkMWYwYjIxMjEwZTFmODAzODJjYjI1MTY4MjcxMzVkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5oCkBA
IC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFdlYkdMRGVidWdTaGFkZXJzX2gKIAogI2luY2x1ZGUg
IldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC0zNywxNSArMzYsMTIgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKIAogY2xhc3MgV2ViR0xEZWJ1Z1NoYWRlcnMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24g
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIGV4cGxpY2l0IFdlYkdMRGVidWdTaGFkZXJz
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogICAgIHZpcnR1YWwgfldlYkdMRGVidWdTaGFkZXJz
KCk7CisKICAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgU3RyaW5nIGdldFRyYW5zbGF0ZWRTaGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqLCBF
eGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6Ci0gICAgV2ViR0xEZWJ1Z1NoYWRlcnMoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5jcHAKaW5kZXggNzFh
OGRhN2Q0MjQyNzQ5ODY1NzVhMjBlN2I3NWVhYzY3MTk1NmQzYi4uMzc5NTUwNmE1MjBlZjg1YjI4
MjAxOGZkOWYwYjI0NjYyMWVjNDRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xEZXB0aFRleHR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcApAQCAtNDcsMTEgKzQ3LDYgQEAgV2ViR0xFeHRlbnNp
b246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZXB0aFRleHR1cmU6OmdldE5hbWUoKSBjb25zdAogICAg
IHJldHVybiBXZWJHTERlcHRoVGV4dHVyZU5hbWU7CiB9CiAKLU93blB0cjxXZWJHTERlcHRoVGV4
dHVyZT4gV2ViR0xEZXB0aFRleHR1cmU6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNv
bnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTERlcHRoVGV4dHVyZShjb250
ZXh0KSk7Ci19Ci0KIGJvb2wgV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZChHcmFwaGljc0Nv
bnRleHQzRCogY29udGV4dCkKIHsKICAgICBFeHRlbnNpb25zM0QqIGV4dGVuc2lvbnMgPSBjb250
ZXh0LT5nZXRFeHRlbnNpb25zKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlcHRoVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xEZXB0aFRleHR1cmUuaAppbmRleCA4Njg3YzI1NDMxYTk3NTMxMTU1MDQ0MGVlOTgwNjI0NDA0
Yzc5OGYxLi43MjcxMWIwMTNhNWY5MzgzNzhkYWE2ZTc5ZjU2NjQ3N2RjZDUzMDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmgKQEAgLTI3LDIx
ICsyNywxNyBAQAogI2RlZmluZSBXZWJHTERlcHRoVGV4dHVyZV9oCiAKICNpbmNsdWRlICJXZWJH
TEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xEZXB0aFRleHR1cmUgOiBwdWJsaWMgV2ViR0xFeHRlbnNp
b24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xEZXB0aFRleHR1cmU+IGNyZWF0
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBXZWJHTERlcHRoVGV4dHVy
ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJHTERlcHRoVGV4dHVy
ZSgpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKEdyYXBoaWNzQ29udGV4dDNEKik7CiAK
LSAgICB2aXJ0dWFsIH5XZWJHTERlcHRoVGV4dHVyZSgpOwogICAgIHZpcnR1YWwgRXh0ZW5zaW9u
TmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgV2ViR0xEZXB0
aFRleHR1cmUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERyYXdC
dWZmZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMu
Y3BwCmluZGV4IGZjYTg0MDQ5NjQ2ZmMxODYzNDNiNmY0MzY4ZDcyYzg4OWI5OWFjMTcuLjdiM2Mw
NDdlODlmM2JiYjYxNGZlNDBiOThhYmQ3YzRlYTBiNDExZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuY3BwCkBAIC00NiwxMSArNDYsNiBAQCBX
ZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJHTERyYXdCdWZmZXJzOjpnZXROYW1lKCkg
Y29uc3QKICAgICByZXR1cm4gV2ViR0xFeHRlbnNpb246OldlYkdMRHJhd0J1ZmZlcnNOYW1lOwog
fQogCi1Pd25QdHI8V2ViR0xEcmF3QnVmZmVycz4gV2ViR0xEcmF3QnVmZmVyczo6Y3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFdlYkdMRHJhd0J1ZmZlcnMoY29udGV4dCkpOwotfQotCiAvLyBzdGF0aWMKIGJvb2wgV2ViR0xE
cmF3QnVmZmVyczo6c3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRHJhd0J1ZmZlcnMuaAppbmRleCA1
NjkzYzFiYTI1MWEzNzU3YTA4MWI3MmVkMDliYTVhYTQwMTYzZWYwLi4xZTE4MTVjOGVlN2MyMWY2
YzIyMDg4MzdjYTA2NTc5YzI4M2ZjNTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xEcmF3QnVmZmVycy5oCkBAIC0yNywyNCArMjcsMjEgQEAKICNkZWZpbmUgV2ViR0xE
cmF3QnVmZmVyc19oCiAKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xEcmF3
QnVmZmVycyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93
blB0cjxXZWJHTERyYXdCdWZmZXJzPiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Cisg
ICAgZXhwbGljaXQgV2ViR0xEcmF3QnVmZmVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAg
ICB2aXJ0dWFsIH5XZWJHTERyYXdCdWZmZXJzKCk7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIH5XZWJHTERyYXdCdWZm
ZXJzKCk7CiAgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZHJhd0J1ZmZlcnNXRUJHTChjb25zdCBWZWN0b3I8R0MzRGVudW0+JiBi
dWZmZXJzKTsKIAogcHJpdmF0ZToKLSAgICBXZWJHTERyYXdCdWZmZXJzKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCopOwotCiAgICAgc3RhdGljIGJvb2wgc2F0aXNmaWVzV2ViR0xSZXF1aXJlbWVudHMo
V2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCmluZGV4IDlmNGUwYjAxZTk4YmFkZjAxYWYwMWEy
MjE3MTJjYzVjYTc0YTQ0ZTkuLjkxMzA3Nzk3YTE4MzA1YmU0ZTE1MGQ0NWIyNTFiMGMxZTUwNzg3
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQu
Y3BwCkBAIC00NywxMSArNDcsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJH
TExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gV2ViR0xMb3NlQ29udGV4
dE5hbWU7CiB9CiAKLU93blB0cjxXZWJHTExvc2VDb250ZXh0PiBXZWJHTExvc2VDb250ZXh0Ojpj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9w
dFB0cihuZXcgV2ViR0xMb3NlQ29udGV4dChjb250ZXh0KSk7Ci19Ci0KIHZvaWQgV2ViR0xMb3Nl
Q29udGV4dDo6bG9zZUNvbnRleHQoKQogewogICAgIG1fY29udGV4dC0+Zm9yY2VMb3N0Q29udGV4
dChXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlN5bnRoZXRpY0xvc3RDb250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAppbmRleCBlZGJhMTRhN2M4
YmQzYzMyNTFlNDY3YmQ1NDdjZDVmMzRlM2U5M2EyLi5jZmMzODE0YzM3MWYwODZjOTY3NTQ3N2Vi
NTNlNDA2MTllOTlhM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTExvc2VDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xM
b3NlQ29udGV4dC5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFdlYkdMTG9zZUNvbnRleHRf
aAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDE2ICszNCwxMyBAQCBjbGFzcyBX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAKIGNsYXNzIFdlYkdMTG9zZUNvbnRleHQgOiBwdWJsaWMg
V2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xMb3NlQ29u
dGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgZXhwbGljaXQgV2Vi
R0xMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5XZWJH
TExvc2VDb250ZXh0KCk7CisKICAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBsb3NlQ29udGV4dCgpOwogICAgIHZvaWQgcmVzdG9y
ZUNvbnRleHQoKTsKLQotcHJpdmF0ZToKLSAgICBXZWJHTExvc2VDb250ZXh0KFdlYkdMUmVuZGVy
aW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXgg
YmQxNWQ0YmNkMjY4ODdjYzFmOGY2NWEwOWViZDkwNjJkMjhkYTA0Mi4uMDBkZjFhMDk0ODg0ZjUw
MTBkYWY0YWMyOTg2ZGJkMzNlN2JkMGQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC0zODcsNyArMzg3LDcgQEAg
cHJpdmF0ZToKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQqIG1fY29udGV4dDsKIH07CiAKLU93
blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRl
KEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMqIGF0dHJz
KQorc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gV2ViR0xSZW5kZXJpbmdD
b250ZXh0OjpjcmVhdGUoSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcywgV2ViR0xDb250ZXh0QXR0
cmlidXRlcyogYXR0cnMpCiB7CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gY2FudmFzLT5kb2N1
bWVudCgpOwogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LmZyYW1lKCk7CkBAIC00MzcsOSAr
NDM3LDkgQEAgT3duUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gV2ViR0xSZW5kZXJpbmdDb250
ZXh0OjpjcmVhdGUoSFRNTENhbnZhc0VsZW1lbnQqIGMKIAogICAgIGlmIChpc1BlbmRpbmdQb2xp
Y3lSZXNvbHV0aW9uKSB7CiAgICAgICAgIExPRyhXZWJHTCwgIkNyZWF0ZSBhIFdlYkdMIGNvbnRl
eHQgdGhhdCBsb29rcyByZWFsLCBidXQgd2lsbCByZXF1aXJlIGEgcG9saWN5IHJlc29sdXRpb24g
aWYgdXNlZC4iKTsKLSAgICAgICAgT3duUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gcmVuZGVy
aW5nQ29udGV4dCA9IGFkb3B0UHRyKG5ldyBXZWJHTFJlbmRlcmluZ0NvbnRleHQoY2FudmFzLCBh
dHRyaWJ1dGVzKSk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+IHJlbmRlcmluZ0NvbnRleHQobmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dChjYW52YXMsIGF0
dHJpYnV0ZXMpKTsKICAgICAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7
Ci0gICAgICAgIHJldHVybiByZW5kZXJpbmdDb250ZXh0LnJlbGVhc2UoKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bW92ZShyZW5kZXJpbmdDb250ZXh0KTsKICAgICB9CiAKICAgICBIb3N0V2luZG93
KiBob3N0V2luZG93ID0gZG9jdW1lbnQudmlldygpLT5yb290KCktPmhvc3RXaW5kb3coKTsKQEAg
LTQ1NCwxMCArNDU0LDEwIEBAIE93blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVu
ZGVyaW5nQ29udGV4dDo6Y3JlYXRlKEhUTUxDYW52YXNFbGVtZW50KiBjCiAgICAgaWYgKGV4dGVu
c2lvbnMtPnN1cHBvcnRzKCJHTF9FWFRfZGVidWdfbWFya2VyIikpCiAgICAgICAgIGV4dGVuc2lv
bnMtPnB1c2hHcm91cE1hcmtlckVYVCgiV2ViR0xSZW5kZXJpbmdDb250ZXh0Iik7CiAKLSAgICBP
d25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiByZW5kZXJpbmdDb250ZXh0ID0gYWRvcHRQdHIo
bmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dChjYW52YXMsIGNvbnRleHQsIGF0dHJpYnV0ZXMpKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiByZW5kZXJpbmdDb250
ZXh0KG5ldyBXZWJHTFJlbmRlcmluZ0NvbnRleHQoY2FudmFzLCBjb250ZXh0LCBhdHRyaWJ1dGVz
KSk7CiAgICAgcmVuZGVyaW5nQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CiAKLSAgICByZXR1
cm4gcmVuZGVyaW5nQ29udGV4dC5yZWxlYXNlKCk7CisgICAgcmV0dXJuIHN0ZDo6bW92ZShyZW5k
ZXJpbmdDb250ZXh0KTsKIH0KIAogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHQoSFRNTENhbnZhc0VsZW1lbnQqIHBhc3NlZENhbnZhcywgR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcykKQEAgLTI0MDAsNyArMjQwMCw3IEBAIFdlYkdMRXh0
ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IG5hbWUpCiAgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIikpIHsKICAgICAgICAgaWYgKCFtX2V4
dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYykgewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX0VYVF90ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ry
b3BpYyIpOwotICAgICAgICAgICAgbV9leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMgPSBFWFRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWM6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIG1fZXh0
VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljID0gc3RkOjptYWtlX3VuaXF1ZTxFWFRUZXh0dXJlRmls
dGVyQW5pc290cm9waWM+KHRoaXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX2V4dFRl
eHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5nZXQoKTsKICAgICB9CkBAIC0yNDA4LDcgKzI0MDgsNyBA
QCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29u
c3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+
c3VwcG9ydHMoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpKSB7CiAgICAgICAgIGlmICgh
bV9vZXNTdGFuZGFyZERlcml2YXRpdmVzKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7
Ci0gICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMgPSBPRVNTdGFuZGFyZERlcml2
YXRpdmVzOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX29lc1N0YW5kYXJkRGVyaXZhdGl2
ZXMgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+KHRoaXMpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXMuZ2V0KCk7CiAg
ICAgfQpAQCAtMjQxNiw3ICsyNDE2LDcgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9mbG9hdCIp
KSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlRmxvYXQpIHsKICAgICAgICAgICAgIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9h
dCIpOwotICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXQgPSBPRVNUZXh0dXJlRmxvYXQ6OmNy
ZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gc3RkOjptYWtlX3Vu
aXF1ZTxPRVNUZXh0dXJlRmxvYXQ+KHRoaXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X29lc1RleHR1cmVGbG9hdC5nZXQoKTsKICAgICB9CkBAIC0yNDI0LDcgKzI0MjQsNyBAQCBXZWJH
TEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBuYW1lKQogICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9y
dHMoIkdMX09FU190ZXh0dXJlX2Zsb2F0X2xpbmVhciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNU
ZXh0dXJlRmxvYXRMaW5lYXIpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKTsKLSAgICAg
ICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyID0gT0VTVGV4dHVyZUZsb2F0TGluZWFyOjpj
cmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdExpbmVhciA9IHN0ZDo6
bWFrZV91bmlxdWU8T0VTVGV4dHVyZUZsb2F0TGluZWFyPih0aGlzKTsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQpAQCAtMjQz
Miw3ICsyNDMyLDcgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0
RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0IikpIHsKICAg
ICAgICAgaWYgKCFtX29lc1RleHR1cmVIYWxmRmxvYXQpIHsKICAgICAgICAgICAgIG1fY29udGV4
dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zs
b2F0Iik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQgPSBPRVNUZXh0dXJlSGFs
ZkZsb2F0OjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXQg
PSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1RleHR1cmVIYWxmRmxvYXQ+KHRoaXMpOwogICAgICAgICB9
CiAgICAgICAgIHJldHVybiBtX29lc1RleHR1cmVIYWxmRmxvYXQuZ2V0KCk7CiAgICAgfQpAQCAt
MjQ0MCw3ICsyNDQwLDcgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgJiYgbV9jb250ZXh0LT5n
ZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfdGV4dHVyZV9oYWxmX2Zsb2F0X2xpbmVh
ciIpKSB7CiAgICAgICAgIGlmICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyKSB7CiAgICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VT
X3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKTsKLSAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhh
bGZGbG9hdExpbmVhciA9IE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI6OmNyZWF0ZSh0aGlzKTsK
KyAgICAgICAgICAgIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhciA9IHN0ZDo6bWFrZV91bmlx
dWU8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4odGhpcyk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhci5nZXQoKTsKICAgICB9CkBAIC0yNDQ4
LDcgKzI0NDgsNyBAQCBXZWJHTEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRF
eHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQogICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0IikpIHsKICAg
ICAgICAgaWYgKCFtX29lc1ZlcnRleEFycmF5T2JqZWN0KSB7CiAgICAgICAgICAgICBtX2NvbnRl
eHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3ZlcnRleF9hcnJheV9v
YmplY3QiKTsKLSAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBPRVNWZXJ0ZXhB
cnJheU9iamVjdDo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV9vZXNWZXJ0ZXhBcnJheU9i
amVjdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VTVmVydGV4QXJyYXlPYmplY3Q+KHRoaXMpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAg
IH0KQEAgLTI0NTYsNjQgKzI0NTYsNjQgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5n
Q29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgJiYgbV9j
b250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9PRVNfZWxlbWVudF9pbmRleF91
aW50IikpIHsKICAgICAgICAgaWYgKCFtX29lc0VsZW1lbnRJbmRleFVpbnQpIHsKICAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9PRVNfZWxl
bWVudF9pbmRleF91aW50Iik7Ci0gICAgICAgICAgICBtX29lc0VsZW1lbnRJbmRleFVpbnQgPSBP
RVNFbGVtZW50SW5kZXhVaW50OjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX29lc0VsZW1l
bnRJbmRleFVpbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU0VsZW1lbnRJbmRleFVpbnQ+KHRoaXMp
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBtX29lc0VsZW1lbnRJbmRleFVpbnQuZ2V0KCk7
CiAgICAgfQogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfbG9zZV9jb250
ZXh0IikpIHsKICAgICAgICAgaWYgKCFtX3dlYmdsTG9zZUNvbnRleHQpCi0gICAgICAgICAgICBt
X3dlYmdsTG9zZUNvbnRleHQgPSBXZWJHTExvc2VDb250ZXh0OjpjcmVhdGUodGhpcyk7CisgICAg
ICAgICAgICBtX3dlYmdsTG9zZUNvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMTG9zZUNv
bnRleHQ+KHRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgpOwog
ICAgIH0KICAgICBpZiAoKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfV0VCR0xfY29t
cHJlc3NlZF90ZXh0dXJlX2F0YyIpKQogICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJl
QVRDOjpzdXBwb3J0ZWQodGhpcykpIHsKICAgICAgICAgaWYgKCFtX3dlYmdsQ29tcHJlc3NlZFRl
eHR1cmVBVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEMgPSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX3dlYmds
Q29tcHJlc3NlZFRleHR1cmVBVEMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBVEM+KHRoaXMpOwogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
QVRDLmdldCgpOwogICAgIH0KICAgICBpZiAoKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJL
SVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjIikpCiAgICAgICAgICYmIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVQVlJUQzo6c3VwcG9ydGVkKHRoaXMpKSB7CiAgICAgICAgIGlmICghbV93
ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMpCi0gICAgICAgICAgICBtX3dlYmdsQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQyA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQzo6Y3JlYXRlKHRoaXMp
OworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEMgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4odGhpcyk7CiAgICAgfQogICAgIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlX3MzdGMi
KQogICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQzo6c3VwcG9ydGVkKHRoaXMp
KSB7CiAgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQykKLSAgICAgICAg
ICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJl
UzNUQzo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
UzNUQyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+KHRoaXMp
OwogICAgICAgICByZXR1cm4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUzNUQy5nZXQoKTsKICAg
ICB9CiAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9kZXB0aF90ZXh0dXJl
IikKICAgICAgICAgJiYgV2ViR0xEZXB0aFRleHR1cmU6OnN1cHBvcnRlZChncmFwaGljc0NvbnRl
eHQzRCgpKSkgewogICAgICAgICBpZiAoIW1fd2ViZ2xEZXB0aFRleHR1cmUpIHsKICAgICAgICAg
ICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVkKCJHTF9DSFJPTUlV
TV9kZXB0aF90ZXh0dXJlIik7Ci0gICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0gV2Vi
R0xEZXB0aFRleHR1cmU6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIG1fd2ViZ2xEZXB0aFRl
eHR1cmUgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVwdGhUZXh0dXJlPih0aGlzKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV93ZWJnbERlcHRoVGV4dHVyZS5nZXQoKTsKICAgICB9CiAg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9kcmF3X2J1ZmZlcnMiKSAmJiBz
dXBwb3J0c0RyYXdCdWZmZXJzKCkpIHsKICAgICAgICAgaWYgKCFtX3dlYmdsRHJhd0J1ZmZlcnMp
IHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5lbnN1cmVFbmFibGVk
KCJHTF9FWFRfZHJhd19idWZmZXJzIik7Ci0gICAgICAgICAgICBtX3dlYmdsRHJhd0J1ZmZlcnMg
PSBXZWJHTERyYXdCdWZmZXJzOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX3dlYmdsRHJh
d0J1ZmZlcnMgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRHJhd0J1ZmZlcnM+KHRoaXMpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBtX3dlYmdsRHJhd0J1ZmZlcnMuZ2V0KCk7CiAgICAgfQog
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIp
ICYmIEFOR0xFSW5zdGFuY2VkQXJyYXlzOjpzdXBwb3J0ZWQodGhpcykpIHsKICAgICAgICAgaWYg
KCFtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpOwot
ICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IEFOR0xFSW5zdGFuY2VkQXJyYXlz
OjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzID0gc3Rk
OjptYWtlX3VuaXF1ZTxBTkdMRUluc3RhbmNlZEFycmF5cz4odGhpcyk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMuZ2V0KCk7CiAgICAgfQogICAgIGlm
IChhbGxvd1ByaXZpbGVnZWRFeHRlbnNpb25zKCkpIHsKICAgICAgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19yZW5kZXJlcl9pbmZvIikpIHsKICAgICAgICAgICAg
IGlmICghbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvKQotICAgICAgICAgICAgICAgIG1fd2ViZ2xE
ZWJ1Z1JlbmRlcmVySW5mbyA9IFdlYkdMRGVidWdSZW5kZXJlckluZm86OmNyZWF0ZSh0aGlzKTsK
KyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5kZXJlckluZm8gPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYkdMRGVidWdSZW5kZXJlckluZm8+KHRoaXMpOwogICAgICAgICAgICAgcmV0dXJuIG1f
d2ViZ2xEZWJ1Z1JlbmRlcmVySW5mby5nZXQoKTsKICAgICAgICAgfQogICAgICAgICBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2RlYnVnX3NoYWRlcnMiKQogICAgICAgICAgICAg
JiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9BTkdMRV90cmFuc2xh
dGVkX3NoYWRlcl9zb3VyY2UiKSkgewogICAgICAgICAgICAgaWYgKCFtX3dlYmdsRGVidWdTaGFk
ZXJzKQotICAgICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMgPSBXZWJHTERlYnVnU2hh
ZGVyczo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgICAgIG1fd2ViZ2xEZWJ1Z1NoYWRlcnMg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkdMRGVidWdTaGFkZXJzPih0aGlzKTsKICAgICAgICAgICAg
IHJldHVybiBtX3dlYmdsRGVidWdTaGFkZXJzLmdldCgpOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApp
bmRleCA2OTM5MGU4M2NiYmJhMWE4NWE4NmM5NTgzYWNkYWEyYjZkZWQyY2Y3Li4xYjJhMTg5YzM3
NDk2MzNkMjA4YThiOTdjOWM2MDI5OTE2NmY4YjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaApAQCAtMzMsNyArMzMsNiBAQAog
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJX
ZWJHTEdldEluZm8uaCIKLQogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDxydW50aW1lL0Zs
b2F0MzJBcnJheS5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSW50MzJBcnJheS5oPgpAQCAtODQsNyAr
ODMsNyBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQgOiBwdWJsaWMgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCwgcHVibGljIEFjdGl2ZURP
TU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRl
eHQ+IGNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCosIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMqKTsK
KyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gY3JlYXRl
KEhUTUxDYW52YXNFbGVtZW50KiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyopOwogICAgIHZpcnR1
YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dCgpOwogCiAgICAgdmlydHVhbCBib29sIGlzM2QoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC01MzMsMjMgKzUzMiwyMyBAQCBwcml2
YXRlOgogICAgIGJvb2wgaXNDb250ZXh0TG9zdE9yUGVuZGluZygpOwogCiAgICAgLy8gRW5hYmxl
ZCBleHRlbnNpb24gb2JqZWN0cy4KLSAgICBPd25QdHI8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljPiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYzsKLSAgICBPd25QdHI8T0VTVGV4dHVy
ZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKLSAgICBPd25QdHI8T0VTVGV4dHVyZUZsb2F0TGlu
ZWFyPiBtX29lc1RleHR1cmVGbG9hdExpbmVhcjsKLSAgICBPd25QdHI8T0VTVGV4dHVyZUhhbGZG
bG9hdD4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0OwotICAgIE93blB0cjxPRVNUZXh0dXJlSGFsZkZs
b2F0TGluZWFyPiBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXI7Ci0gICAgT3duUHRyPE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXM+IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlczsKLSAgICBPd25QdHI8
T0VTVmVydGV4QXJyYXlPYmplY3Q+IG1fb2VzVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgT3duUHRy
PE9FU0VsZW1lbnRJbmRleFVpbnQ+IG1fb2VzRWxlbWVudEluZGV4VWludDsKLSAgICBPd25QdHI8
V2ViR0xMb3NlQ29udGV4dD4gbV93ZWJnbExvc2VDb250ZXh0OwotICAgIE93blB0cjxXZWJHTERl
YnVnUmVuZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm87Ci0gICAgT3duUHRyPFdl
YkdMRGVidWdTaGFkZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJzOwotICAgIE93blB0cjxXZWJHTENv
bXByZXNzZWRUZXh0dXJlQVRDPiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEM7Ci0gICAgT3du
UHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
UFZSVEM7Ci0gICAgT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPiBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVTM1RDOwotICAgIE93blB0cjxXZWJHTERlcHRoVGV4dHVyZT4gbV93ZWJn
bERlcHRoVGV4dHVyZTsKLSAgICBPd25QdHI8V2ViR0xEcmF3QnVmZmVycz4gbV93ZWJnbERyYXdC
dWZmZXJzOwotICAgIE93blB0cjxBTkdMRUluc3RhbmNlZEFycmF5cz4gbV9hbmdsZUluc3RhbmNl
ZEFycmF5czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGlj
PiBtX2V4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VT
VGV4dHVyZUZsb2F0PiBtX29lc1RleHR1cmVGbG9hdDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VT
VGV4dHVyZUZsb2F0TGluZWFyPiBtX29lc1RleHR1cmVGbG9hdExpbmVhcjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8T0VTVGV4dHVyZUhhbGZGbG9hdD4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0OworICAg
IHN0ZDo6dW5pcXVlX3B0cjxPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyPiBtX29lc1RleHR1cmVI
YWxmRmxvYXRMaW5lYXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9FU1N0YW5kYXJkRGVyaXZhdGl2
ZXM+IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8T0VTVmVy
dGV4QXJyYXlPYmplY3Q+IG1fb2VzVmVydGV4QXJyYXlPYmplY3Q7CisgICAgc3RkOjp1bmlxdWVf
cHRyPE9FU0VsZW1lbnRJbmRleFVpbnQ+IG1fb2VzRWxlbWVudEluZGV4VWludDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViR0xMb3NlQ29udGV4dD4gbV93ZWJnbExvc2VDb250ZXh0OworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdSZW5kZXJl
ckluZm87CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMRGVidWdTaGFkZXJzPiBtX3dlYmdsRGVi
dWdTaGFkZXJzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
PiBtX3dlYmdsQ29tcHJlc3NlZFRleHR1cmVBVEM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVQVlJUQz4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlUFZSVEM7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPiBtX3dlYmdsQ29t
cHJlc3NlZFRleHR1cmVTM1RDOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTERlcHRoVGV4dHVy
ZT4gbV93ZWJnbERlcHRoVGV4dHVyZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xEcmF3QnVm
ZmVycz4gbV93ZWJnbERyYXdCdWZmZXJzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBTkdMRUluc3Rh
bmNlZEFycmF5cz4gbV9hbmdsZUluc3RhbmNlZEFycmF5czsKIAogICAgIC8vIEhlbHBlcnMgZm9y
IGdldFBhcmFtZXRlciBhbmQgb3RoZXJzCiAgICAgV2ViR0xHZXRJbmZvIGdldEJvb2xlYW5QYXJh
bWV0ZXIoR0MzRGVudW0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225759</attachid>
            <date>2014-03-04 01:39:55 -0800</date>
            <delta_ts>2014-03-06 01:09:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129668-20140304013952.patch</filename>
            <type>text/plain</type>
            <size>48345</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1MDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDliNjc3YjM2MDFlY2Vk
ZDY3NmYyOGRiYjUyNTM1NGEwYjI0NzM0Mi4uMWU4ZDVmMGJkN2MxZjA3MDA4OWFiOGIyNTVmNGYy
OTdlNmFkYzI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE0LTAzLTA0ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzLyBjb2RlIHRvIHN0ZDo6dW5pcXVlX3B0cgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NjY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB1c2VzIG9mIE93blB0
ciBhbmQgUGFzc093blB0ciBpbiBjb2RlIHVuZGVyIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
LyB0byBzdGQ6OnVuaXF1ZV9wdHIuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50Ojp+SFRNTENhbnZhc0Vs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRleHQp
OgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMvQU5H
TEVJbnN0YW5jZWRBcnJheXMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5p
c290cm9waWMuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlz
b3Ryb3BpYy5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuY3Bw
OgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmNwcDoKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9PRVNTdGFuZGFyZERlcml2YXRpdmVzLmg6CisgICAgICAgICogaHRtbC9jYW52YXMv
T0VTVGV4dHVyZUZsb2F0LmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxv
YXQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIuY3BwOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdExpbmVhci5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL09FU1RleHR1cmVIYWxmRmxvYXQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyLmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9PRVNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlP
YmplY3QuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0Lmg6
CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHA6Cisg
ICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5oOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHA6CisgICAgICAg
ICogaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmg6CisgICAgICAgICog
aHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOgorICAgICAgICAqIGh0
bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHA6CisgICAgICAgICogaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmNwcDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5o
OgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcDoKKyAgICAgICAg
KiBodG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMRHJhd0J1ZmZlcnMuY3BwOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMRHJhd0J1
ZmZlcnMuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcDoKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdM
UmVuZGVyaW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKwogMjAxNC0wMy0wNCAgSHlvd29uIEtpbSAgPGh3MTAwOC5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgTW92ZSBFdmFzR0xDb250ZXh0IGFuZCBFdmFzR0xTdXJm
YWNlIGZpbGVzIGludG8gdGhlIGVmbCBjb21tb24gZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAppbmRleCAyMTcwZjIxNTVlM2IyNWMwYzdhMzQxNjU0
YTIzOWY2MzI5MDk1NGZjLi43NGMwNzVkMGI3ODQ5Mjg0NTU4MGIyYmE2MWJkMTBkYWU1ZWUxYTQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTA0LDcg
KzEwNCw3IEBAIEhUTUxDYW52YXNFbGVtZW50Ojp+SFRNTENhbnZhc0VsZW1lbnQoKQogICAgIGZv
ciAoYXV0byBpdCA9IG1fb2JzZXJ2ZXJzLmJlZ2luKCksIGVuZCA9IG1fb2JzZXJ2ZXJzLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICgqaXQpLT5jYW52YXNEZXN0cm95ZWQoKnRoaXMp
OwogCi0gICAgbV9jb250ZXh0LmNsZWFyKCk7IC8vIEVuc3VyZSB0aGlzIGdvZXMgYXdheSBiZWZv
cmUgdGhlIEltYWdlQnVmZmVyLgorICAgIG1fY29udGV4dCA9IG51bGxwdHI7IC8vIEVuc3VyZSB0
aGlzIGdvZXMgYXdheSBiZWZvcmUgdGhlIEltYWdlQnVmZmVyLgogfQogCiB2b2lkIEhUTUxDYW52
YXNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpAQCAtMjA1LDcgKzIwNSw3IEBAIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KGNvbnN0IFN0cmluZyYgdHlw
ZSwgQ2FudmFzCiAgICAgICAgICAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQo
KS5zZXR0aW5ncygpKQogICAgICAgICAgICAgICAgIHVzZXNEYXNoYmFyZENvbXBhdGliaWxpdHlN
b2RlID0gc2V0dGluZ3MtPnVzZXNEYXNoYm9hcmRCYWNrd2FyZENvbXBhdGliaWxpdHlNb2RlKCk7
CiAjZW5kaWYKLSAgICAgICAgICAgIG1fY29udGV4dCA9IENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6Y3JlYXRlKHRoaXMsIGRvY3VtZW50KCkuaW5RdWlya3NNb2RlKCksIHVzZXNEYXNoYmFyZENv
bXBhdGliaWxpdHlNb2RlKTsKKyAgICAgICAgICAgIG1fY29udGV4dCA9IHN0ZDo6bWFrZV91bmlx
dWU8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPih0aGlzLCBkb2N1bWVudCgpLmluUXVpcmtzTW9k
ZSgpLCB1c2VzRGFzaGJhcmRDb21wYXRpYmlsaXR5TW9kZSk7CiAjaWYgVVNFKElPU1VSRkFDRV9D
QU5WQVNfQkFDS0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAg
ICAgICAgICAgIC8vIE5lZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0
aW5nIGxheWVyIGdldCBjcmVhdGVkIGZvciB0aGUgQ2FudmFzCiAgICAgICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuaAppbmRleCA2Y2RhYjI2ZTJjNTMyNmQ3MDI3NTliNWQ5NDI0NTA2OGZk
NzFmZDM2Li5kYzM3NWI5MjQ1NTY5MDdhY2QzYjFkMTEwYWUzM2YwN2RmZTZhN2Q5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJJ
bnRTaXplLmgiCisjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
ICNpZiBVU0UoQ0cpCkBAIC0xNzEsNyArMTcyLDcgQEAgcHJpdmF0ZToKIAogICAgIEludFNpemUg
bV9zaXplOwogCi0gICAgT3duUHRyPENhbnZhc1JlbmRlcmluZ0NvbnRleHQ+IG1fY29udGV4dDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2FudmFzUmVuZGVyaW5nQ29udGV4dD4gbV9jb250ZXh0Owog
CiAgICAgYm9vbCBtX3JlbmRlcmVySXNDYW52YXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcAppbmRleCBkOTE2YTgxZDc4OWRi
ODBlZmIxYTZlYjczZjRiZTllMWM3NjFiNmRjLi5jM2M4YTFmMGIyYmU2ODI5ODkzYzk5YmIyMjlk
NTg2NWMwNDFmZTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdM
RUluc3RhbmNlZEFycmF5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5H
TEVJbnN0YW5jZWRBcnJheXMuY3BwCkBAIC00OCwxMSArNDgsNiBAQCBXZWJHTEV4dGVuc2lvbjo6
RXh0ZW5zaW9uTmFtZSBBTkdMRUluc3RhbmNlZEFycmF5czo6Z2V0TmFtZSgpIGNvbnN0CiAgICAg
cmV0dXJuIEFOR0xFSW5zdGFuY2VkQXJyYXlzTmFtZTsKIH0KIAotT3duUHRyPEFOR0xFSW5zdGFu
Y2VkQXJyYXlzPiBBTkdMRUluc3RhbmNlZEFycmF5czo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEFOR0xFSW5zdGFuY2Vk
QXJyYXlzKGNvbnRleHQpKTsKLX0KLQogYm9vbCBBTkdMRUluc3RhbmNlZEFycmF5czo6c3VwcG9y
dGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKIHsKICNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9BTkdMRUluc3RhbmNl
ZEFycmF5cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQU5HTEVJbnN0YW5jZWRBcnJh
eXMuaAppbmRleCBmODcxMjZmYmJkNjkxYjcxNGU0YmU5NjZhYmRmMzY0YmFhODE3YmQxLi4yM2I0
ZTYyM2ZjNGU0M2E4OWFiM2Q3OTg2ZmFmMjA1ODJjNTRiYjU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9BTkdMRUluc3RhbmNlZEFycmF5cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0FOR0xFSW5zdGFuY2VkQXJyYXlzLmgKQEAgLTI3LDcgKzI3LDYg
QEAKICNkZWZpbmUgQU5HTEVJbnN0YW5jZWRBcnJheXNfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRl
bnNpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTM1LDggKzM0LDkgQEAgY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwogCiBj
bGFzcyBBTkdMRUluc3RhbmNlZEFycmF5cyA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIE93blB0cjxBTkdMRUluc3RhbmNlZEFycmF5cz4gY3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCopOworICAgIGV4cGxpY2l0IEFOR0xFSW5zdGFuY2VkQXJyYXlzKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOwogICAgIHZpcnR1YWwgfkFOR0xFSW5zdGFuY2VkQXJyYXlz
KCk7CisKICAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwogCiAgICAg
c3RhdGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwpAQCAtNDQsOSAr
NDQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoR0MzRGVu
dW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJpbWNv
dW50KTsKICAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFKEdDM0RlbnVtIG1vZGUs
IEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgbG9uZyBsb25nIG9mZnNldCwgR0MzRHNp
emVpIHByaW1jb3VudCk7CiAgICAgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoR0MzRHVp
bnQgaW5kZXgsIEdDM0R1aW50IGRpdmlzb3IpOwotCi1wcml2YXRlOgotICAgIEFOR0xFSW5zdGFu
Y2VkQXJyYXlzKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaAppbmRleCBiYjA3MzZkMDcwZjZkMmE3YjU1OWJiZDY2MjI0YTM4NGQx
ODQ4NWZiLi5kZDQ3ZTMwZWYyMjA0NTEwMjYxYmI0YjJkMWFhMTQ4NDNkMWQ4OTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaApAQCAtNTgsMTAgKzU4LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xh
c3MgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEIDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQsIHB1YmxpYyBDYW52YXNQYXRoTWV0aG9kcyB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0
cjxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ+IGNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCogY2Fu
dmFzLCBib29sIHVzZXNDU1NDb21wYXRpYmlsaXR5UGFyc2VNb2RlLCBib29sIHVzZXNEYXNoYm9h
cmRDb21wYXRpYmlsaXR5TW9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKGNhbnZhcywgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJz
ZU1vZGUsIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSkpOwotICAgIH0KKyAgICBDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQoSFRNTENhbnZhc0VsZW1lbnQqLCBib29sIHVzZXNDU1NDb21w
YXRpYmlsaXR5UGFyc2VNb2RlLCBib29sIHVzZXNEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7
CiAgICAgdmlydHVhbCB+Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEKCk7CiAKICAgICBjb25zdCBD
YW52YXNTdHlsZSYgc3Ryb2tlU3R5bGUoKSBjb25zdCB7IHJldHVybiBzdGF0ZSgpLm1fc3Ryb2tl
U3R5bGU7IH0KQEAgLTI2OSw4ICsyNjYsNiBAQCBwcml2YXRlOgogICAgICAgICBDYW52YXNEaWRE
cmF3QXBwbHlBbGwgPSAweGZmZmZmZmZmCiAgICAgfTsKIAotICAgIENhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRChIVE1MQ2FudmFzRWxlbWVudCosIGJvb2wgdXNlc0NTU0NvbXBhdGliaWxpdHlQYXJz
ZU1vZGUsIGJvb2wgdXNlc0Rhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlKTsKLQogICAgIFN0YXRl
JiBtb2RpZmlhYmxlU3RhdGUoKSB7IEFTU0VSVCghbV91bnJlYWxpemVkU2F2ZUNvdW50KTsgcmV0
dXJuIG1fc3RhdGVTdGFjay5sYXN0KCk7IH0KICAgICBjb25zdCBTdGF0ZSYgc3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX3N0YXRlU3RhY2subGFzdCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwCmlu
ZGV4IDhhZTI0OTQ1Njc4ZTE5ZWJiZGE1NmVlNmVhZjcwMGNlYmU5Yjk2MjEuLmFiOGYzNjI3YzU3
NjMxZmI1MDE5NDlmZjUzNGJlZDc1OGNkN2Y2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL0VYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmNwcApAQCAt
NDUsMTEgKzQ1LDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljOjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljTmFtZTsKIH0KIAotT3duUHRyPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ry
b3BpYz4gRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljKGNvbnRleHQpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaAppbmRleCA1ZTc2ZWJiMDEx
NmQ0YTg4MzFhNmI1N2Q4NzA2OTA2MzRiNmQ3NzY2Li44MzNjODFkNDQzNDQwOWZiYzMxNWFhYWJj
YTQwZDJmYWRhN2NjNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9F
WFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9FWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuaApAQCAtMjcsMTkgKzI3LDE1IEBACiAj
ZGVmaW5lIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY19oCiAKICNpbmNsdWRlICJXZWJHTEV4
dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljIDogcHVibGljIFdlYkdM
RXh0ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPEVYVFRleHR1cmVGaWx0ZXJB
bmlzb3Ryb3BpYz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgZXhwbGlj
aXQgRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwog
ICAgIHZpcnR1YWwgfkVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYygpOwotICAgIHZpcnR1YWwg
RXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Ci0gICAg
RVhUVGV4dHVyZUZpbHRlckFuaXNvdHJvcGljKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAg
IHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU0VsZW1lbnRJbmRleFVpbnQuY3BwCmluZGV4IDY2MDI0MTUzYWZjNzQyYWE2NGFkOGJkZDRk
OTc0OGJjYzE3MDgzMzMuLjg3NWY5NzBiMDhmZGQ1MGE2NWM2MTM4YWFkNGExNzI1ZjgzZDg2MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVp
bnQuY3BwCkBAIC00NSwxMSArNDUsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBP
RVNFbGVtZW50SW5kZXhVaW50OjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gT0VTRWxlbWVu
dEluZGV4VWludE5hbWU7CiB9CiAKLU93blB0cjxPRVNFbGVtZW50SW5kZXhVaW50PiBPRVNFbGVt
ZW50SW5kZXhVaW50OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewot
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgT0VTRWxlbWVudEluZGV4VWludChjb250ZXh0KSk7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU0VsZW1lbnRJbmRleFVpbnQuaAppbmRl
eCA4M2NlNTZhOGQ3M2RkNWIzZjhiYTAxYzY0NmRlMzc5OWI1MmY4M2Y3Li42NGZkNmM2NzEyYmY1
N2IwYmE3YmQwN2EwMTYxNDY5YzA1NDI5ZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNFbGVtZW50SW5kZXhVaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTRWxlbWVudEluZGV4VWludC5oCkBAIC0yNywxOSArMjcsMTUgQEAKICNkZWZp
bmUgT0VTRWxlbWVudEluZGV4VWludF9oCiAKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgT0VTRWxlbWVudEluZGV4VWludCA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIE93blB0cjxPRVNFbGVtZW50SW5kZXhVaW50PiBjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Kik7Ci0KKyAgICBleHBsaWNpdCBPRVNFbGVtZW50SW5kZXhVaW50KFdlYkdM
UmVuZGVyaW5nQ29udGV4dCopOwogICAgIHZpcnR1YWwgfk9FU0VsZW1lbnRJbmRleFVpbnQoKTsK
LSAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogCi1w
cml2YXRlOgotICAgIE9FU0VsZW1lbnRJbmRleFVpbnQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7
CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKaW5kZXggMGYyYzg3NmM3NWFlYjQx
MWRkZWY3NjdlMjFhNDQ5MjY1NjYwZGY2Yi4uNzYwM2M3NzYyYzc0YWIwN2I5ZGU1MjEwZjZkNzI4
YzJlMjNhZGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTU3Rh
bmRhcmREZXJpdmF0aXZlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VT
U3RhbmRhcmREZXJpdmF0aXZlcy5jcHAKQEAgLTQ1LDExICs0NSw2IEBAIFdlYkdMRXh0ZW5zaW9u
OjpFeHRlbnNpb25OYW1lIE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM6OmdldE5hbWUoKSBjb25zdAog
ICAgIHJldHVybiBPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZTsKIH0KIAotT3duUHRyPE9FU1N0
YW5kYXJkRGVyaXZhdGl2ZXM+IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM6OmNyZWF0ZShXZWJHTFJl
bmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNT
dGFuZGFyZERlcml2YXRpdmVzKGNvbnRleHQpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oCmluZGV4IGEyMWRmZDg5YzFiNjA4OWQw
ODZmNzFhZjk5NDQ0MzE5MTA5MDc3NTUuLmIwYTQwMWEwMzFkMWE5NDgyMjJiZWI1NWZlMmRmZWEw
NjdjMzk5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1N0YW5k
YXJkRGVyaXZhdGl2ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNTdGFu
ZGFyZERlcml2YXRpdmVzLmgKQEAgLTI3LDE5ICsyNywxNSBAQAogI2RlZmluZSBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzX2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBPRVNTdGFu
ZGFyZERlcml2YXRpdmVzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgT3duUHRyPE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+IGNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqKTsKLQorICAgIGV4cGxpY2l0IE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+T0VTU3RhbmRhcmREZXJpdmF0aXZlcygp
OwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
LXByaXZhdGU6Ci0gICAgT0VTU3RhbmRhcmREZXJpdmF0aXZlcyhXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRl
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU1RleHR1cmVGbG9hdC5jcHAKaW5kZXggMjIzMTM2YzQyN2M5MGRjYmFmNzkwYTdh
MzZlYTM0ZjEwNzU4NjFhOS4uNmQzNGJkMzhmNjE3OTM0YzVhYzdlNDJiYzYyMmFkMTgyZDAyOGIz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuY3Bw
CkBAIC00NSwxMSArNDUsNiBAQCBXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBPRVNUZXh0
dXJlRmxvYXQ6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBPRVNUZXh0dXJlRmxvYXROYW1l
OwogfQogCi1Pd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBPRVNUZXh0dXJlRmxvYXQ6OmNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBPRVNUZXh0dXJlRmxvYXQoY29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L09FU1RleHR1cmVGbG9hdC5oCmluZGV4IDZjNjdlYTExYjM4YTVhZmFlYjhkODdiOTFhZGJlNjNm
ZDZiZjY0MTcuLmVlNmY5NTY4ZDA4YTAxZWRmZmRlNTBjY2MxMDU5ZjJjZTgwYjQyNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdC5oCkBAIC0yNywxOSAr
MjcsMTUgQEAKICNkZWZpbmUgT0VTVGV4dHVyZUZsb2F0X2gKIAogI2luY2x1ZGUgIldlYkdMRXh0
ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBPRVNUZXh0dXJlRmxvYXQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewog
cHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8T0VTVGV4dHVyZUZsb2F0PiBjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7Ci0KKyAgICBPRVNUZXh0dXJlRmxvYXQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0Kik7CiAgICAgdmlydHVhbCB+T0VTVGV4dHVyZUZsb2F0KCk7Ci0gICAgdmlydHVhbCBF
eHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAotcHJpdmF0ZToKLSAgICBP
RVNUZXh0dXJlRmxvYXQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgdmlydHVhbCBFeHRl
bnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1
cmVGbG9hdExpbmVhci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJl
RmxvYXRMaW5lYXIuY3BwCmluZGV4IGQ5MzQ5MTYwODhlZTU5OTcyMTU3YzRlMGRmNjFkNTMzZDEx
YmE4M2EuLjhjZTQ4MzNiNTI3NzAyNWY5MmVmMmM3MDBjOWNkZmQ3MGY2NTFmMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVGbG9hdExpbmVhci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0TGluZWFyLmNw
cApAQCAtNDQsMTEgKzQ0LDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgT0VTVGV4
dHVyZUZsb2F0TGluZWFyOjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gT0VTVGV4dHVyZUZs
b2F0TGluZWFyTmFtZTsKIH0KIAotT3duUHRyPE9FU1RleHR1cmVGbG9hdExpbmVhcj4gT0VTVGV4
dHVyZUZsb2F0TGluZWFyOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQot
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgT0VTVGV4dHVyZUZsb2F0TGluZWFyKGNvbnRleHQp
KTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdM
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0
TGluZWFyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5l
YXIuaAppbmRleCAzZTlmZTg3Y2MzODI5NWUyODJjMWQ5ODgwYzIyN2U2NGMwZDE5YWVkLi4wMTU4
ZmYxNDg0MWZmMmMwZGY0ZjQ0MmU4ZmI0YTAyNjc5NmMwODcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXRMaW5lYXIuaApAQCAtMjcsMTkgKzI3
LDE1IEBACiAjZGVmaW5lIE9FU1RleHR1cmVGbG9hdExpbmVhcl9oCiAKICNpbmNsdWRlICJXZWJH
TEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgT0VTVGV4dHVyZUZsb2F0TGluZWFyIDogcHVibGljIFdlYkdMRXh0
ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPE9FU1RleHR1cmVGbG9hdExpbmVh
cj4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCisgICAgZXhwbGljaXQgT0VTVGV4
dHVyZUZsb2F0TGluZWFyKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogICAgIHZpcnR1YWwgfk9F
U1RleHR1cmVGbG9hdExpbmVhcigpOwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Ci0gICAgT0VTVGV4dHVyZUZsb2F0TGluZWFy
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXRO
YW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZsb2F0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwCmlu
ZGV4IGZkMmUyNWJkMmZmMjk3MDkwYjYyZDZiODEzMDc0NTgwYzg2YzIyZWQuLjI0NWIzOThjZmY4
MWVkZjFmOGMwODIzMzRkMjNkYzFlNTA1MTk0ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuY3BwCkBAIC00NSwxMSArNDUsNiBAQCBX
ZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBPRVNUZXh0dXJlSGFsZkZsb2F0OjpnZXROYW1l
KCkgY29uc3QKICAgICByZXR1cm4gT0VTVGV4dHVyZUhhbGZGbG9hdE5hbWU7CiB9CiAKLU93blB0
cjxPRVNUZXh0dXJlSGFsZkZsb2F0PiBPRVNUZXh0dXJlSGFsZkZsb2F0OjpjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgT0VT
VGV4dHVyZUhhbGZGbG9hdChjb250ZXh0KSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL09FU1RleHR1cmVIYWxmRmxvYXQuaAppbmRleCBjOGFiOWZlYjEwOThmNjdiZmQ5YzJkZmIy
MzYyZDIyYjFmOGE5OWVlLi5iYjQyYjVjM2UyMDNjZGRhYzUxOGY3ZTZjODVlY2RlNGY2NWZhNzlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlSGFsZkZs
b2F0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9h
dC5oCkBAIC0yNywxOSArMjcsMTUgQEAKICNkZWZpbmUgT0VTVGV4dHVyZUhhbGZGbG9hdF9oCiAK
ICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgT0VTVGV4dHVyZUhhbGZGbG9hdCA6IHB1
YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIE93blB0cjxPRVNUZXh0
dXJlSGFsZkZsb2F0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Ci0KKyAgICBPRVNU
ZXh0dXJlSGFsZkZsb2F0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogICAgIHZpcnR1YWwgfk9F
U1RleHR1cmVIYWxmRmxvYXQoKTsKLSAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgp
IGNvbnN0IG92ZXJyaWRlOwogCi1wcml2YXRlOgotICAgIE9FU1RleHR1cmVIYWxmRmxvYXQoV2Vi
R0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUo
KSBjb25zdCBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVh
ci5jcHAKaW5kZXggZTJlYzhiMjUwNTM4YmZmNWQ5NGI3ODI1NmM3ZmQ2YWZkMzQxNjJjMC4uMzJk
YjQ5NTUyYzgxNmI0ZjQ1ZDQxMDMwZGFkYjcyNDkyYmYwNDU3YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5jcHAK
QEAgLTQ0LDExICs0NCw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIE9FU1RleHR1
cmVIYWxmRmxvYXRMaW5lYXI6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBPRVNUZXh0dXJl
SGFsZkZsb2F0TGluZWFyTmFtZTsKIH0KIAotT3duUHRyPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5l
YXI+IE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBPRVNUZXh0dXJlSGFsZkZs
b2F0TGluZWFyKGNvbnRleHQpKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhci5oCmluZGV4IDA3M2I0OGE5ZjNkODlhZDUwNzUw
NjQ2OWZiMDZmZWMxZGY4OWNlZGEuLmJiOTQ4NWQzM2RlN2VjYzE0NjIxZmRkMGQyMzdmMWFjYWEx
NTY2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1RleHR1cmVI
YWxmRmxvYXRMaW5lYXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyLmgKQEAgLTI3LDE5ICsyNywxNSBAQAogI2RlZmluZSBPRVNUZXh0
dXJlSGFsZkZsb2F0TGluZWFyX2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBP
RVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXI+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIE9FU1RleHR1cmVIYWxmRmxvYXRMaW5lYXIo
V2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+T0VTVGV4dHVyZUhhbGZGbG9h
dExpbmVhcigpOwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKLXByaXZhdGU6Ci0gICAgT0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcihXZWJHTFJl
bmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwCmluZGV4IDc3
MjAxMmIxOTY5ZWFhYWM0OGVjZTMyMzM5ZGFjYThhOWY4ZDZhNDMuLmM0MmMwYmIzZTNiNzBjMTEz
ZjAzOTU2ZDU3MmZmYmMzNGFlYjczNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKQEAgLTQ3LDExICs0Nyw2IEBAIFdlYkdM
RXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIE9FU1ZlcnRleEFycmF5T2JqZWN0OjpnZXROYW1lKCkg
Y29uc3QKICAgICByZXR1cm4gT0VTVmVydGV4QXJyYXlPYmplY3ROYW1lOwogfQogCi1Pd25QdHI8
T0VTVmVydGV4QXJyYXlPYmplY3Q+IE9FU1ZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgT0VT
VmVydGV4QXJyYXlPYmplY3QoY29udGV4dCkpOwotfQotCiBQYXNzUmVmUHRyPFdlYkdMVmVydGV4
QXJyYXlPYmplY3RPRVM+IE9FU1ZlcnRleEFycmF5T2JqZWN0OjpjcmVhdGVWZXJ0ZXhBcnJheU9F
UygpCiB7CiAgICAgaWYgKG1fY29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL09FU1ZlcnRleEFycmF5T2JqZWN0LmgKaW5kZXggYjlmODU5
OTI5MTQyOWIzODUzNzk1MTQxOGZhOGQ3MTE5OWM1ZmEyMy4uOWQ5NWY2NjRlNjZlNzBkM2Q4NWZh
ZWYxNDljMTNkOWI1MDBjOWMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlICJH
cmFwaGljc1R5cGVzM0QuaCIKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzksMTggKzM4
LDE1IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNsYXNzIE9FU1ZlcnRleEFycmF5
T2JqZWN0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3du
UHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7
Ci0KKyAgICBPRVNWZXJ0ZXhBcnJheU9iamVjdChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKICAg
ICB2aXJ0dWFsIH5PRVNWZXJ0ZXhBcnJheU9iamVjdCgpOworCiAgICAgdmlydHVhbCBFeHRlbnNp
b25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICBQYXNzUmVmUHRyPFdl
YkdMVmVydGV4QXJyYXlPYmplY3RPRVM+IGNyZWF0ZVZlcnRleEFycmF5T0VTKCk7CiAgICAgdm9p
ZCBkZWxldGVWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKik7CiAgICAg
R0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheU9FUyhXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTKik7
CiAgICAgdm9pZCBiaW5kVmVydGV4QXJyYXlPRVMoV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUyos
IEV4Y2VwdGlvbkNvZGUmKTsKLQotcHJpdmF0ZToKLSAgICBPRVNWZXJ0ZXhBcnJheU9iamVjdChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFUQy5jcHAKaW5kZXggNzE4ODFiYTA5OTIwODljYjQwYTY1ZDhhYmVhMTU3NzMyZWYwMjkw
OC4uN2E5MWMwM2ZkNDU0ZTQ1ZjEyMGY3ZTIyODhkNjcwZGMwZTY5NmRlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFU
Qy5jcHAKQEAgLTUwLDExICs1MCw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OmdldE5hbWUoKSBjb25zdAogICAgIHJldHVybiBXZWJH
TENvbXByZXNzZWRUZXh0dXJlQVRDTmFtZTsKIH0KIAotT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBVEM+IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEM6OmNyZWF0ZShXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVRDKGNvbnRleHQpKTsKLX0KLQogYm9vbCBXZWJHTENvbXByZXNzZWRUZXh0
dXJlQVRDOjpzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewogICAg
IEV4dGVuc2lvbnMzRCogZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNEKCkt
PmdldEV4dGVuc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMuaAppbmRleCA2YThkODlkNWRhOTA3NmI2ZTY4YWMz
MmQ3NGEyZDkxNjZmYmVkNTkyLi4zZjEwYzNiNDQ3YWVlN2ZlYWE2ZGY1NjM4ZDRmNjZmMTZjOWE3
MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNz
ZWRUZXh0dXJlQVRDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFUQy5oCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBVENfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDE1ICsz
NCwxMiBAQCBjbGFzcyBXZWJHTFRleHR1cmU7CiAKIGNsYXNzIFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVBVEMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25Q
dHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4
dCopOworICAgIGV4cGxpY2l0IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBVEMoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQygpOwog
CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCi0g
ICAgdmlydHVhbCB+V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQygpOwogICAgIHZpcnR1YWwgRXh0
ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZUFUQyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEMuY3BwCmluZGV4IGQwNWQ0MTc4YjU2
ZDJmODIxYzNiMjgxZWNkZGIzOTFjMTg4YzJiYTQuLjYxMjZhZWMzZjcyYjJjMzRkMGZiNDBkOGI4
ODRjYThjYThlZmM5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDLmNwcApAQCAtNTIsMTEgKzUyLDYgQEAg
V2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
OjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
TmFtZTsKIH0KIAotT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0
KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRD
KGNvbnRleHQpKTsKLX0KLQogYm9vbCBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OnN1cHBv
cnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCiB7CiAgICAgRXh0ZW5zaW9uczNE
KiBleHRlbnNpb25zID0gY29udGV4dC0+Z3JhcGhpY3NDb250ZXh0M0QoKS0+Z2V0RXh0ZW5zaW9u
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVBWUlRDLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMuaAppbmRleCBmMjBlMmQyNWRhNzQ0OGM5Mzc5NTNlMWM3OWY5MmEy
ZGVkNTQ5MzE0Li5iOGU3MjcxOTRjYjZhMWI4MjBjYjU3YWVhMjM5NDI5OTYxZmIzMWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJl
UFZSVEMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEMuaApAQCAtMjcsMjEgKzI3LDE2IEBACiAjZGVmaW5lIFdlYkdMQ29tcHJlc3Nl
ZFRleHR1cmVQVlJUQ19oCiAKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVBWUlRDIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgT3duUHRyPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVQVlJUQz4gY3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIGV4cGxpY2l0IFdlYkdMQ29tcHJlc3NlZFRleHR1
cmVQVlJUQyhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUFZSVEMoKTsKIAogICAgIHN0YXRpYyBib29sIHN1cHBvcnRlZChXZWJHTFJl
bmRlcmluZ0NvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgfldlYkdMQ29tcHJlc3NlZFRleHR1cmVQ
VlJUQygpOwogICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLXByaXZhdGU6Ci0gICAgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVBWUlRDKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuY3BwCmluZGV4IGJjZjFhMzI2Nzg2MWJlMDJkMzI2ZmUxMjM1ZjNiY2VjNzYxYjI4NzUuLmM1
ZTJjZWVmNjc0OGQ2NzNmMDEwMGFiNWIxNzYzNzk5M2ZkNWM3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5j
cHAKQEAgLTUyLDExICs1Miw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdM
Q29tcHJlc3NlZFRleHR1cmVTM1RDOjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4gV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVENOYW1lOwogfQogCi1Pd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4
dHVyZVMzVEM+IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDOjpjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMoY29udGV4dCkpOwotfQotCiBib29sIFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDOjpzdXBwb3J0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewog
ICAgIEV4dGVuc2lvbnMzRCogZXh0ZW5zaW9ucyA9IGNvbnRleHQtPmdyYXBoaWNzQ29udGV4dDNE
KCktPmdldEV4dGVuc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oCmluZGV4IGM2YzllZGI0NWQ2MzI2Y2Zi
MjI1MjcyYTk1YTAzN2IyMDYzMTkyNzcuLmM5MjU1NjE1MjE4ZTg2YmRkNDQzNWE5Y2NiMjFiNGUz
MWNkNDcxY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQ19oCiAKICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzUsMTUgKzM0LDEyIEBAIGNsYXNzIFdlYkdMVGV4dHVyZTsKIAogY2xhc3MgV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0
YXRpYyBPd25QdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQyhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIH5XZWJHTENvbXByZXNzZWRUZXh0
dXJlUzNUQygpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOwogCi0gICAgdmlydHVhbCB+V2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMoKTsKICAg
ICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotCi1wcml2
YXRlOgotICAgIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDKFdlYkdMUmVuZGVyaW5nQ29udGV4
dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAppbmRleCAyZmU1ZjE3
MWQ2YTYxMjMwYWExYTZjNjgwNTk1MzA0NmVlMDE3MjQ3Li5lOTVjMDg5ZGY2MDlmZTU0NWYxOWY4
YjQ4NjcyNzVlOWQwODE1OGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmNwcApAQCAtNDcsMTEgKzQ3LDYgQEAgV2ViR0xF
eHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Z2V0TmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuIFdlYkdMRGVidWdSZW5kZXJlckluZm9OYW1lOwogfQogCi1Pd25Q
dHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gV2ViR0xEZWJ1Z1JlbmRlcmVySW5mbzo6Y3JlYXRl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFdlYkdMRGVidWdSZW5kZXJlckluZm8oY29udGV4dCkpOwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgKaW5kZXggNDQyMmY4NGRl
Yzg2YjM4OGRlOThmMGMyMTQxNDBkYzA3ZjljZWMwMS4uZDVlNGYwZTM5Yjg0ZDVlYjFkMWU1YzY3
ZWRjZmUwMmZkMDY1NDlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRGVidWdSZW5kZXJlckluZm8uaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBXZWJH
TERlYnVnUmVuZGVyZXJJbmZvX2gKIAogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCwx
MyArMzcsMTAgQEAgcHVibGljOgogICAgICAgICBVTk1BU0tFRF9SRU5ERVJFUl9XRUJHTCA9IDB4
OTI0NgogICAgIH07CiAKLSAgICBzdGF0aWMgT3duUHRyPFdlYkdMRGVidWdSZW5kZXJlckluZm8+
IGNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIGV4cGxpY2l0IFdlYkdMRGVi
dWdSZW5kZXJlckluZm8oV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+V2Vi
R0xEZWJ1Z1JlbmRlcmVySW5mbygpOwotICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1l
KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLXByaXZhdGU6Ci0gICAgV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
byhXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuY3BwCmluZGV4
IDBjMDI4MjY1Y2VhOWIyYmViZWIxOTEwYTgwZGU5ZjExMTg0YzBiNDQuLjgyNTBlZTA2NTVmMTYy
MjE3OGQwNTk5MmZkZjY2M2Q0YTUwM2U1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5jcHAKQEAgLTQ5LDExICs0OSw2IEBAIFdlYkdMRXh0
ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdMRGVidWdTaGFkZXJzOjpnZXROYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gV2ViR0xEZWJ1Z1NoYWRlcnNOYW1lOwogfQogCi1Pd25QdHI8V2ViR0xEZWJ1
Z1NoYWRlcnM+IFdlYkdMRGVidWdTaGFkZXJzOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZWJ1Z1NoYWRlcnMo
Y29udGV4dCkpOwotfQotCiBTdHJpbmcgV2ViR0xEZWJ1Z1NoYWRlcnM6OmdldFRyYW5zbGF0ZWRT
aGFkZXJTb3VyY2UoV2ViR0xTaGFkZXIqIHNoYWRlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgVU5VU0VEX1BBUkFNKGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMRGVidWdTaGFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlYnVnU2hhZGVycy5oCmluZGV4IDk2MWY0ODhjZTRkMjAxZmFkZDdhMzVmOWE2NGQxYzYzYzNk
MTc5MDMuLmJmOTI0MzA2ZDFmMGIyMTIxMGUxZjgwMzgyY2IyNTE2ODI3MTM1ZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaApAQCAtMjcsNyAr
MjcsNiBAQAogI2RlZmluZSBXZWJHTERlYnVnU2hhZGVyc19oCiAKICNpbmNsdWRlICJXZWJHTEV4
dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMzcsMTUgKzM2LDEyIEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAK
IGNsYXNzIFdlYkdMRGVidWdTaGFkZXJzIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBjcmVhdGUoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Kik7Ci0KKyAgICBleHBsaWNpdCBXZWJHTERlYnVnU2hhZGVycyhXZWJHTFJl
bmRlcmluZ0NvbnRleHQqKTsKICAgICB2aXJ0dWFsIH5XZWJHTERlYnVnU2hhZGVycygpOworCiAg
ICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IFN0cmluZyBnZXRUcmFuc2xhdGVkU2hhZGVyU291cmNlKFdlYkdMU2hhZGVyKiwgRXhjZXB0aW9u
Q29kZSYpOwotCi1wcml2YXRlOgotICAgIFdlYkdMRGVidWdTaGFkZXJzKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuY3BwCmluZGV4IDcxYThkYTdkNDI0
Mjc0OTg2NTc1YTIwZTdiNzVlYWM2NzE5NTZkM2IuLjM3OTU1MDZhNTIwZWY4NWIyODIwMThmZDlm
MGIyNDY2MjFlYzQ0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRGVwdGhUZXh0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TERlcHRoVGV4dHVyZS5jcHAKQEAgLTQ3LDExICs0Nyw2IEBAIFdlYkdMRXh0ZW5zaW9uOjpFeHRl
bnNpb25OYW1lIFdlYkdMRGVwdGhUZXh0dXJlOjpnZXROYW1lKCkgY29uc3QKICAgICByZXR1cm4g
V2ViR0xEZXB0aFRleHR1cmVOYW1lOwogfQogCi1Pd25QdHI8V2ViR0xEZXB0aFRleHR1cmU+IFdl
YkdMRGVwdGhUZXh0dXJlOjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQot
ewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViR0xEZXB0aFRleHR1cmUoY29udGV4dCkpOwot
fQotCiBib29sIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQpCiB7CiAgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gY29udGV4dC0+Z2V0
RXh0ZW5zaW9ucygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xEZXB0aFRleHR1cmUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRGVwdGhU
ZXh0dXJlLmgKaW5kZXggODY4N2MyNTQzMWE5NzUzMTE1NTA0NDBlZTk4MDYyNDQwNGM3OThmMS4u
NzI3MTFiMDEzYTVmOTM4Mzc4ZGFhNmU3OWY1NjY0NzdkY2Q1MzA2MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERlcHRoVGV4dHVyZS5oCkBAIC0yNywyMSArMjcsMTcg
QEAKICNkZWZpbmUgV2ViR0xEZXB0aFRleHR1cmVfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNp
b24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFdlYkdMRGVwdGhUZXh0dXJlIDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPFdlYkdMRGVwdGhUZXh0dXJlPiBjcmVhdGUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7CisgICAgZXhwbGljaXQgV2ViR0xEZXB0aFRleHR1cmUoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Kik7CisgICAgdmlydHVhbCB+V2ViR0xEZXB0aFRleHR1cmUoKTsKIAog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRlZChHcmFwaGljc0NvbnRleHQzRCopOwogCi0gICAgdmly
dHVhbCB+V2ViR0xEZXB0aFRleHR1cmUoKTsKICAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIFdlYkdMRGVwdGhUZXh0dXJl
KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xEcmF3QnVmZmVycy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmNwcAppbmRl
eCBmY2E4NDA0OTY0NmZjMTg2MzQzYjZmNDM2OGQ3MmM4ODliOTlhYzE3Li43YjNjMDQ3ZTg5ZjNi
YmI2MTRmZTQwYjk4YWJkN2M0ZWEwYjQxMWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmNwcApAQCAtNDYsMTEgKzQ2LDYgQEAgV2ViR0xFeHRl
bnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xEcmF3QnVmZmVyczo6Z2V0TmFtZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIFdlYkdMRXh0ZW5zaW9uOjpXZWJHTERyYXdCdWZmZXJzTmFtZTsKIH0KIAotT3du
UHRyPFdlYkdMRHJhd0J1ZmZlcnM+IFdlYkdMRHJhd0J1ZmZlcnM6OmNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJHTERy
YXdCdWZmZXJzKGNvbnRleHQpKTsKLX0KLQogLy8gc3RhdGljCiBib29sIFdlYkdMRHJhd0J1ZmZl
cnM6OnN1cHBvcnRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTERyYXdCdWZmZXJzLmgKaW5kZXggNTY5M2MxYmEy
NTFhMzc1N2EwODFiNzJlZDA5YmE1YWE0MDE2M2VmMC4uMWUxODE1YzhlZTdjMjFmNmMyMjA4ODM3
Y2EwNjU3OWMyODNmYzU1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xEcmF3QnVmZmVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
RHJhd0J1ZmZlcnMuaApAQCAtMjcsMjQgKzI3LDIxIEBACiAjZGVmaW5lIFdlYkdMRHJhd0J1ZmZl
cnNfaAogCiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMRHJhd0J1ZmZlcnMg
OiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2Vi
R0xEcmF3QnVmZmVycz4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOworICAgIGV4cGxp
Y2l0IFdlYkdMRHJhd0J1ZmZlcnMoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgdmlydHVh
bCB+V2ViR0xEcmF3QnVmZmVycygpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydGVkKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCopOwogCi0gICAgdmlydHVhbCB+V2ViR0xEcmF3QnVmZmVycygpOwog
ICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGRyYXdCdWZmZXJzV0VCR0woY29uc3QgVmVjdG9yPEdDM0RlbnVtPiYgYnVmZmVycyk7
CiAKIHByaXZhdGU6Ci0gICAgV2ViR0xEcmF3QnVmZmVycyhXZWJHTFJlbmRlcmluZ0NvbnRleHQq
KTsKLQogICAgIHN0YXRpYyBib29sIHNhdGlzZmllc1dlYkdMUmVxdWlyZW1lbnRzKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTExvc2VDb250ZXh0LmNwcAppbmRleCA5ZjRlMGIwMWU5OGJhZGYwMWFmMDFhMjIxNzEyY2M1
Y2E3NGE0NGU5Li45MTMwNzc5N2ExODMwNWJlNGUxNTBkNDViMjUxYjBjMWU1MDc4NzEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcApAQCAt
NDcsMTEgKzQ3LDYgQEAgV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViR0xMb3NlQ29u
dGV4dDo6Z2V0TmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIFdlYkdMTG9zZUNvbnRleHROYW1lOwog
fQogCi1Pd25QdHI8V2ViR0xMb3NlQ29udGV4dD4gV2ViR0xMb3NlQ29udGV4dDo6Y3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFdlYkdMTG9zZUNvbnRleHQoY29udGV4dCkpOwotfQotCiB2b2lkIFdlYkdMTG9zZUNvbnRleHQ6
Omxvc2VDb250ZXh0KCkKIHsKICAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xS
ZW5kZXJpbmdDb250ZXh0OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmgKaW5kZXggZWRiYTE0YTdjOGJkM2MzMjUx
ZTQ2N2JkNTQ3Y2Q1ZjM0ZTNlOTNhMi4uY2ZjMzgxNGMzNzFmMDg2Yzk2NzU0NzdlYjUzZTQwNjE5
ZTk5YTNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3Nl
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuaApAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBXZWJHTExvc2VDb250ZXh0X2gKIAogI2lu
Y2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSwxNiArMzQsMTMgQEAgY2xhc3MgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0OwogCiBjbGFzcyBXZWJHTExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0
ZW5zaW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgT3duUHRyPFdlYkdMTG9zZUNvbnRleHQ+IGNy
ZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQorICAgIGV4cGxpY2l0IFdlYkdMTG9zZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAgICAgdmlydHVhbCB+V2ViR0xMb3NlQ29u
dGV4dCgpOworCiAgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKIAogICAgIHZvaWQgbG9zZUNvbnRleHQoKTsKICAgICB2b2lkIHJlc3RvcmVDb250ZXh0
KCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViR0xMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IGJkMTVkNGJj
ZDI2ODg3Y2MxZjhmNjVhMDllYmQ5MDYyZDI4ZGEwNDIuLjAwZGYxYTA5NDg4NGY1MDEwZGFmNGFj
Mjk4NmRiZDMzZTdiZDBkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMzg3LDcgKzM4Nyw3IEBAIHByaXZhdGU6
CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBtX2NvbnRleHQ7CiB9OwogCi1Pd25QdHI8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0PiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZShIVE1MQ2Fu
dmFzRWxlbWVudCogY2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKiBhdHRycykKK3N0ZDo6
dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
Y3JlYXRlKEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMq
IGF0dHJzKQogewogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGNhbnZhcy0+ZG9jdW1lbnQoKTsK
ICAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOwpAQCAtNDM3LDkgKzQzNyw5IEBA
IE93blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Y3Jl
YXRlKEhUTUxDYW52YXNFbGVtZW50KiBjCiAKICAgICBpZiAoaXNQZW5kaW5nUG9saWN5UmVzb2x1
dGlvbikgewogICAgICAgICBMT0coV2ViR0wsICJDcmVhdGUgYSBXZWJHTCBjb250ZXh0IHRoYXQg
bG9va3MgcmVhbCwgYnV0IHdpbGwgcmVxdWlyZSBhIHBvbGljeSByZXNvbHV0aW9uIGlmIHVzZWQu
Iik7Ci0gICAgICAgIE93blB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IHJlbmRlcmluZ0NvbnRl
eHQgPSBhZG9wdFB0cihuZXcgV2ViR0xSZW5kZXJpbmdDb250ZXh0KGNhbnZhcywgYXR0cmlidXRl
cykpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiByZW5k
ZXJpbmdDb250ZXh0KG5ldyBXZWJHTFJlbmRlcmluZ0NvbnRleHQoY2FudmFzLCBhdHRyaWJ1dGVz
KSk7CiAgICAgICAgIHJlbmRlcmluZ0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgICAg
ICByZXR1cm4gcmVuZGVyaW5nQ29udGV4dC5yZWxlYXNlKCk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1vdmUocmVuZGVyaW5nQ29udGV4dCk7CiAgICAgfQogCiAgICAgSG9zdFdpbmRvdyogaG9zdFdp
bmRvdyA9IGRvY3VtZW50LnZpZXcoKS0+cm9vdCgpLT5ob3N0V2luZG93KCk7CkBAIC00NTQsMTAg
KzQ1NCwxMCBAQCBPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OmNyZWF0ZShIVE1MQ2FudmFzRWxlbWVudCogYwogICAgIGlmIChleHRlbnNpb25zLT5z
dXBwb3J0cygiR0xfRVhUX2RlYnVnX21hcmtlciIpKQogICAgICAgICBleHRlbnNpb25zLT5wdXNo
R3JvdXBNYXJrZXJFWFQoIldlYkdMUmVuZGVyaW5nQ29udGV4dCIpOwogCi0gICAgT3duUHRyPFdl
YkdMUmVuZGVyaW5nQ29udGV4dD4gcmVuZGVyaW5nQ29udGV4dCA9IGFkb3B0UHRyKG5ldyBXZWJH
TFJlbmRlcmluZ0NvbnRleHQoY2FudmFzLCBjb250ZXh0LCBhdHRyaWJ1dGVzKSk7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dD4gcmVuZGVyaW5nQ29udGV4dChuZXcg
V2ViR0xSZW5kZXJpbmdDb250ZXh0KGNhbnZhcywgY29udGV4dCwgYXR0cmlidXRlcykpOwogICAg
IHJlbmRlcmluZ0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwogCi0gICAgcmV0dXJuIHJlbmRl
cmluZ0NvbnRleHQucmVsZWFzZSgpOworICAgIHJldHVybiBzdGQ6Om1vdmUocmVuZGVyaW5nQ29u
dGV4dCk7CiB9CiAKIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
KEhUTUxDYW52YXNFbGVtZW50KiBwYXNzZWRDYW52YXMsIEdyYXBoaWNzQ29udGV4dDNEOjpBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCkBAIC0yNDAwLDcgKzI0MDAsNyBAQCBXZWJHTEV4dGVuc2lvbiog
V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBuYW1lKQog
ICAgICAgICAmJiBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+c3VwcG9ydHMoIkdMX0VYVF90
ZXh0dXJlX2ZpbHRlcl9hbmlzb3Ryb3BpYyIpKSB7CiAgICAgICAgIGlmICghbV9leHRUZXh0dXJl
RmlsdGVyQW5pc290cm9waWMpIHsKICAgICAgICAgICAgIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLT5lbnN1cmVFbmFibGVkKCJHTF9FWFRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMiKTsK
LSAgICAgICAgICAgIG1fZXh0VGV4dHVyZUZpbHRlckFuaXNvdHJvcGljID0gRVhUVGV4dHVyZUZp
bHRlckFuaXNvdHJvcGljOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX2V4dFRleHR1cmVG
aWx0ZXJBbmlzb3Ryb3BpYyA9IHN0ZDo6bWFrZV91bmlxdWU8RVhUVGV4dHVyZUZpbHRlckFuaXNv
dHJvcGljPih0aGlzKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9leHRUZXh0dXJlRmls
dGVyQW5pc290cm9waWMuZ2V0KCk7CiAgICAgfQpAQCAtMjQwOCw3ICsyNDA4LDcgQEAgV2ViR0xF
eHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRz
KCJHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMiKSkgewogICAgICAgICBpZiAoIW1fb2VzU3Rh
bmRhcmREZXJpdmF0aXZlcykgewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPmVuc3VyZUVuYWJsZWQoIkdMX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpOwotICAgICAg
ICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gT0VTU3RhbmRhcmREZXJpdmF0aXZlczo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzID0gc3Rk
OjptYWtlX3VuaXF1ZTxPRVNTdGFuZGFyZERlcml2YXRpdmVzPih0aGlzKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzLmdldCgpOwogICAgIH0KQEAg
LTI0MTYsNyArMjQxNiw3IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfZmxvYXQiKSkgewogICAg
ICAgICBpZiAoIW1fb2VzVGV4dHVyZUZsb2F0KSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdl
dEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXQiKTsKLSAg
ICAgICAgICAgIG1fb2VzVGV4dHVyZUZsb2F0ID0gT0VTVGV4dHVyZUZsb2F0OjpjcmVhdGUodGhp
cyk7CisgICAgICAgICAgICBtX29lc1RleHR1cmVGbG9hdCA9IHN0ZDo6bWFrZV91bmlxdWU8T0VT
VGV4dHVyZUZsb2F0Pih0aGlzKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNUZXh0
dXJlRmxvYXQuZ2V0KCk7CiAgICAgfQpAQCAtMjQyNCw3ICsyNDI0LDcgQEAgV2ViR0xFeHRlbnNp
b24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgbmFt
ZSkKICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9P
RVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKSkgewogICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUZs
b2F0TGluZWFyKSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5z
dXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBt
X29lc1RleHR1cmVGbG9hdExpbmVhciA9IE9FU1RleHR1cmVGbG9hdExpbmVhcjo6Y3JlYXRlKHRo
aXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5p
cXVlPE9FU1RleHR1cmVGbG9hdExpbmVhcj4odGhpcyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIG1fb2VzVGV4dHVyZUZsb2F0TGluZWFyLmdldCgpOwogICAgIH0KQEAgLTI0MzIsNyArMjQz
Miw3IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lv
bihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9u
cygpLT5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNUZXh0dXJlSGFsZkZsb2F0KSB7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmdldEV4
dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdCIpOwot
ICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gT0VTVGV4dHVyZUhhbGZGbG9hdDo6
Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV9vZXNUZXh0dXJlSGFsZkZsb2F0ID0gc3RkOjpt
YWtlX3VuaXF1ZTxPRVNUZXh0dXJlSGFsZkZsb2F0Pih0aGlzKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0LmdldCgpOwogICAgIH0KQEAgLTI0NDAsNyAr
MjQ0MCw3IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVu
c2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICYmIG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSkgewog
ICAgICAgICBpZiAoIW1fb2VzVGV4dHVyZUhhbGZGbG9hdExpbmVhcikgewogICAgICAgICAgICAg
bV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX09FU190ZXh0dXJl
X2hhbGZfZmxvYXRfbGluZWFyIik7Ci0gICAgICAgICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXRM
aW5lYXIgPSBPRVNUZXh0dXJlSGFsZkZsb2F0TGluZWFyOjpjcmVhdGUodGhpcyk7CisgICAgICAg
ICAgICBtX29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE9FU1Rl
eHR1cmVIYWxmRmxvYXRMaW5lYXI+KHRoaXMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X29lc1RleHR1cmVIYWxmRmxvYXRMaW5lYXIuZ2V0KCk7CiAgICAgfQpAQCAtMjQ0OCw3ICsyNDQ4
LDcgQEAgV2ViR0xFeHRlbnNpb24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2V0RXh0ZW5zaW9u
KGNvbnN0IFN0cmluZyYgbmFtZSkKICAgICAgICAgJiYgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPnN1cHBvcnRzKCJHTF9PRVNfdmVydGV4X2FycmF5X29iamVjdCIpKSB7CiAgICAgICAgIGlm
ICghbV9vZXNWZXJ0ZXhBcnJheU9iamVjdCkgewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCktPmVuc3VyZUVuYWJsZWQoIkdMX09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0Iik7
Ci0gICAgICAgICAgICBtX29lc1ZlcnRleEFycmF5T2JqZWN0ID0gT0VTVmVydGV4QXJyYXlPYmpl
Y3Q6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIG1fb2VzVmVydGV4QXJyYXlPYmplY3QgPSBz
dGQ6Om1ha2VfdW5pcXVlPE9FU1ZlcnRleEFycmF5T2JqZWN0Pih0aGlzKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9CkBAIC0y
NDU2LDY0ICsyNDU2LDY0IEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6
OmdldEV4dGVuc2lvbihjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgICYmIG1fY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX2VsZW1lbnRfaW5kZXhfdWludCIpKSB7
CiAgICAgICAgIGlmICghbV9vZXNFbGVtZW50SW5kZXhVaW50KSB7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfT0VTX2VsZW1lbnRfaW5k
ZXhfdWludCIpOwotICAgICAgICAgICAgbV9vZXNFbGVtZW50SW5kZXhVaW50ID0gT0VTRWxlbWVu
dEluZGV4VWludDo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV9vZXNFbGVtZW50SW5kZXhV
aW50ID0gc3RkOjptYWtlX3VuaXF1ZTxPRVNFbGVtZW50SW5kZXhVaW50Pih0aGlzKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gbV9vZXNFbGVtZW50SW5kZXhVaW50LmdldCgpOwogICAgIH0K
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2xvc2VfY29udGV4dCIpKSB7
CiAgICAgICAgIGlmICghbV93ZWJnbExvc2VDb250ZXh0KQotICAgICAgICAgICAgbV93ZWJnbExv
c2VDb250ZXh0ID0gV2ViR0xMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAg
bV93ZWJnbExvc2VDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTExvc2VDb250ZXh0Pih0
aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xMb3NlQ29udGV4dC5nZXQoKTsKICAgICB9CiAg
ICAgaWYgKChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2NvbXByZXNzZWRf
dGV4dHVyZV9hdGMiKSkKICAgICAgICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQzo6c3Vw
cG9ydGVkKHRoaXMpKSB7CiAgICAgICAgIGlmICghbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRD
KQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDID0gV2ViR0xDb21wcmVz
c2VkVGV4dHVyZUFUQzo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV93ZWJnbENvbXByZXNz
ZWRUZXh0dXJlQVRDID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTENvbXByZXNzZWRUZXh0dXJlQVRD
Pih0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZUFUQy5nZXQo
KTsKICAgICB9CiAgICAgaWYgKChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdM
X2NvbXByZXNzZWRfdGV4dHVyZV9wdnJ0YyIpKQogICAgICAgICAmJiBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlUFZSVEM6OnN1cHBvcnRlZCh0aGlzKSkgewogICAgICAgICBpZiAoIW1fd2ViZ2xDb21w
cmVzc2VkVGV4dHVyZVBWUlRDKQotICAgICAgICAgICAgbV93ZWJnbENvbXByZXNzZWRUZXh0dXJl
UFZSVEMgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM6OmNyZWF0ZSh0aGlzKTsKKyAgICAg
ICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDID0gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJHTENvbXByZXNzZWRUZXh0dXJlUFZSVEM+KHRoaXMpOwogICAgIH0KICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjIikKICAgICAg
ICAgJiYgV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OnN1cHBvcnRlZCh0aGlzKSkgewogICAg
ICAgICBpZiAoIW1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMpCi0gICAgICAgICAgICBtX3dl
YmdsQ29tcHJlc3NlZFRleHR1cmVTM1RDID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEM6OmNy
ZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMgPSBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDPih0aGlzKTsKICAgICAg
ICAgcmV0dXJuIG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVMzVEMuZ2V0KCk7CiAgICAgfQogICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZGVwdGhfdGV4dHVyZSIpCiAgICAg
ICAgICYmIFdlYkdMRGVwdGhUZXh0dXJlOjpzdXBwb3J0ZWQoZ3JhcGhpY3NDb250ZXh0M0QoKSkp
IHsKICAgICAgICAgaWYgKCFtX3dlYmdsRGVwdGhUZXh0dXJlKSB7CiAgICAgICAgICAgICBtX2Nv
bnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfQ0hST01JVU1fZGVwdGhf
dGV4dHVyZSIpOwotICAgICAgICAgICAgbV93ZWJnbERlcHRoVGV4dHVyZSA9IFdlYkdMRGVwdGhU
ZXh0dXJlOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX3dlYmdsRGVwdGhUZXh0dXJlID0g
c3RkOjptYWtlX3VuaXF1ZTxXZWJHTERlcHRoVGV4dHVyZT4odGhpcyk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIG1fd2ViZ2xEZXB0aFRleHR1cmUuZ2V0KCk7CiAgICAgfQogICAgIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCR0xfZHJhd19idWZmZXJzIikgJiYgc3VwcG9ydHNE
cmF3QnVmZmVycygpKSB7CiAgICAgICAgIGlmICghbV93ZWJnbERyYXdCdWZmZXJzKSB7CiAgICAg
ICAgICAgICBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+ZW5zdXJlRW5hYmxlZCgiR0xfRVhU
X2RyYXdfYnVmZmVycyIpOwotICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJzID0gV2ViR0xE
cmF3QnVmZmVyczo6Y3JlYXRlKHRoaXMpOworICAgICAgICAgICAgbV93ZWJnbERyYXdCdWZmZXJz
ID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJHTERyYXdCdWZmZXJzPih0aGlzKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gbV93ZWJnbERyYXdCdWZmZXJzLmdldCgpOwogICAgIH0KICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiKSAmJiBBTkdM
RUluc3RhbmNlZEFycmF5czo6c3VwcG9ydGVkKHRoaXMpKSB7CiAgICAgICAgIGlmICghbV9hbmds
ZUluc3RhbmNlZEFycmF5cykgewogICAgICAgICAgICAgbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2luc3RhbmNlZF9hcnJheXMiKTsKLSAgICAgICAg
ICAgIG1fYW5nbGVJbnN0YW5jZWRBcnJheXMgPSBBTkdMRUluc3RhbmNlZEFycmF5czo6Y3JlYXRl
KHRoaXMpOworICAgICAgICAgICAgbV9hbmdsZUluc3RhbmNlZEFycmF5cyA9IHN0ZDo6bWFrZV91
bmlxdWU8QU5HTEVJbnN0YW5jZWRBcnJheXM+KHRoaXMpOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBtX2FuZ2xlSW5zdGFuY2VkQXJyYXlzLmdldCgpOwogICAgIH0KICAgICBpZiAoYWxsb3dQ
cml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShu
YW1lLCAiV0VCR0xfZGVidWdfcmVuZGVyZXJfaW5mbyIpKSB7CiAgICAgICAgICAgICBpZiAoIW1f
d2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbykKLSAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdSZW5k
ZXJlckluZm8gPSBXZWJHTERlYnVnUmVuZGVyZXJJbmZvOjpjcmVhdGUodGhpcyk7CisgICAgICAg
ICAgICAgICAgbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJH
TERlYnVnUmVuZGVyZXJJbmZvPih0aGlzKTsKICAgICAgICAgICAgIHJldHVybiBtX3dlYmdsRGVi
dWdSZW5kZXJlckluZm8uZ2V0KCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGVxdWFsSWdub3Jp
bmdDYXNlKG5hbWUsICJXRUJHTF9kZWJ1Z19zaGFkZXJzIikKICAgICAgICAgICAgICYmIG1fY29u
dGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygiR0xfQU5HTEVfdHJhbnNsYXRlZF9zaGFk
ZXJfc291cmNlIikpIHsKICAgICAgICAgICAgIGlmICghbV93ZWJnbERlYnVnU2hhZGVycykKLSAg
ICAgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gV2ViR0xEZWJ1Z1NoYWRlcnM6OmNy
ZWF0ZSh0aGlzKTsKKyAgICAgICAgICAgICAgICBtX3dlYmdsRGVidWdTaGFkZXJzID0gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJHTERlYnVnU2hhZGVycz4odGhpcyk7CiAgICAgICAgICAgICByZXR1cm4g
bV93ZWJnbERlYnVnU2hhZGVycy5nZXQoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggNjkz
OTBlODNjYmJiYTFhODVhODZjOTU4M2FjZGFhMmI2ZGVkMmNmNy4uMWIyYTE4OWMzNzQ5NjMzZDIw
OGE4Yjk3YzljNjAyOTkxNjZmOGIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJ
bmZvLmgiCi0KICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8cnVudGltZS9GbG9hdDMyQXJy
YXkuaD4KICNpbmNsdWRlIDxydW50aW1lL0ludDMyQXJyYXkuaD4KQEAgLTg0LDcgKzgzLDcgQEAg
dHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0
IDogcHVibGljIENhbnZhc1JlbmRlcmluZ0NvbnRleHQsIHB1YmxpYyBBY3RpdmVET01PYmplY3Qg
ewogcHVibGljOgotICAgIHN0YXRpYyBPd25QdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0PiBjcmVh
dGUoSFRNTENhbnZhc0VsZW1lbnQqLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHQ+IGNyZWF0ZShIVE1MQ2Fu
dmFzRWxlbWVudCosIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMqKTsKICAgICB2aXJ0dWFsIH5XZWJH
TFJlbmRlcmluZ0NvbnRleHQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpczNkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTMzLDIzICs1MzIsMjMgQEAgcHJpdmF0ZToKICAg
ICBib29sIGlzQ29udGV4dExvc3RPclBlbmRpbmcoKTsKIAogICAgIC8vIEVuYWJsZWQgZXh0ZW5z
aW9uIG9iamVjdHMuCi0gICAgT3duUHRyPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4gbV9l
eHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWM7Ci0gICAgT3duUHRyPE9FU1RleHR1cmVGbG9hdD4g
bV9vZXNUZXh0dXJlRmxvYXQ7Ci0gICAgT3duUHRyPE9FU1RleHR1cmVGbG9hdExpbmVhcj4gbV9v
ZXNUZXh0dXJlRmxvYXRMaW5lYXI7Ci0gICAgT3duUHRyPE9FU1RleHR1cmVIYWxmRmxvYXQ+IG1f
b2VzVGV4dHVyZUhhbGZGbG9hdDsKLSAgICBPd25QdHI8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVh
cj4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0TGluZWFyOwotICAgIE93blB0cjxPRVNTdGFuZGFyZERl
cml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7Ci0gICAgT3duUHRyPE9FU1ZlcnRl
eEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OwotICAgIE93blB0cjxPRVNFbGVt
ZW50SW5kZXhVaW50PiBtX29lc0VsZW1lbnRJbmRleFVpbnQ7Ci0gICAgT3duUHRyPFdlYkdMTG9z
ZUNvbnRleHQ+IG1fd2ViZ2xMb3NlQ29udGV4dDsKLSAgICBPd25QdHI8V2ViR0xEZWJ1Z1JlbmRl
cmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvOwotICAgIE93blB0cjxXZWJHTERlYnVn
U2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVyczsKLSAgICBPd25QdHI8V2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFUQz4gbV93ZWJnbENvbXByZXNzZWRUZXh0dXJlQVRDOwotICAgIE93blB0cjxXZWJH
TENvbXByZXNzZWRUZXh0dXJlUFZSVEM+IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOwot
ICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4gbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUzNUQzsKLSAgICBPd25QdHI8V2ViR0xEZXB0aFRleHR1cmU+IG1fd2ViZ2xEZXB0aFRl
eHR1cmU7Ci0gICAgT3duUHRyPFdlYkdMRHJhd0J1ZmZlcnM+IG1fd2ViZ2xEcmF3QnVmZmVyczsK
LSAgICBPd25QdHI8QU5HTEVJbnN0YW5jZWRBcnJheXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7
CisgICAgc3RkOjp1bmlxdWVfcHRyPEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz4gbV9leHRU
ZXh0dXJlRmlsdGVyQW5pc290cm9waWM7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9FU1RleHR1cmVG
bG9hdD4gbV9vZXNUZXh0dXJlRmxvYXQ7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9FU1RleHR1cmVG
bG9hdExpbmVhcj4gbV9vZXNUZXh0dXJlRmxvYXRMaW5lYXI7CisgICAgc3RkOjp1bmlxdWVfcHRy
PE9FU1RleHR1cmVIYWxmRmxvYXQ+IG1fb2VzVGV4dHVyZUhhbGZGbG9hdDsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8T0VTVGV4dHVyZUhhbGZGbG9hdExpbmVhcj4gbV9vZXNUZXh0dXJlSGFsZkZsb2F0
TGluZWFyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29l
c1N0YW5kYXJkRGVyaXZhdGl2ZXM7CisgICAgc3RkOjp1bmlxdWVfcHRyPE9FU1ZlcnRleEFycmF5
T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxPRVNF
bGVtZW50SW5kZXhVaW50PiBtX29lc0VsZW1lbnRJbmRleFVpbnQ7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkdMTG9zZUNvbnRleHQ+IG1fd2ViZ2xMb3NlQ29udGV4dDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViR0xEZWJ1Z1JlbmRlcmVySW5mbz4gbV93ZWJnbERlYnVnUmVuZGVyZXJJbmZvOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTERlYnVnU2hhZGVycz4gbV93ZWJnbERlYnVnU2hhZGVy
czsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xDb21wcmVzc2VkVGV4dHVyZUFUQz4gbV93ZWJn
bENvbXByZXNzZWRUZXh0dXJlQVRDOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTENvbXByZXNz
ZWRUZXh0dXJlUFZSVEM+IG1fd2ViZ2xDb21wcmVzc2VkVGV4dHVyZVBWUlRDOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQz4gbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlUzNUQzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xEZXB0aFRleHR1cmU+IG1fd2Vi
Z2xEZXB0aFRleHR1cmU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkdMRHJhd0J1ZmZlcnM+IG1f
d2ViZ2xEcmF3QnVmZmVyczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QU5HTEVJbnN0YW5jZWRBcnJh
eXM+IG1fYW5nbGVJbnN0YW5jZWRBcnJheXM7CiAKICAgICAvLyBIZWxwZXJzIGZvciBnZXRQYXJh
bWV0ZXIgYW5kIG90aGVycwogICAgIFdlYkdMR2V0SW5mbyBnZXRCb29sZWFuUGFyYW1ldGVyKEdD
M0RlbnVtKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>