<?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>255258</bug_id>
          
          <creation_ts>2023-04-10 15:59:23 -0700</creation_ts>
          <short_desc>Drop Element::parseAttribute()</short_desc>
          <delta_ts>2023-12-18 05:08:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=255383</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=257692</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=257485</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=258020</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>255382</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbarton</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>heycam</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youssefdevelops</cc>
    
    <cc>y_soliman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1947767</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 15:59:23 -0700</bug_when>
    <thetext>Drop Element::parseAttribute() and use attributeChanged() consistently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947768</commentid>
    <comment_count>1</comment_count>
      <attachid>465837</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 15:59:46 -0700</bug_when>
    <thetext>Created attachment 465837
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947779</commentid>
    <comment_count>2</comment_count>
      <attachid>465838</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 16:30:10 -0700</bug_when>
    <thetext>Created attachment 465838
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947783</commentid>
    <comment_count>3</comment_count>
      <attachid>465839</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 16:46:35 -0700</bug_when>
    <thetext>Created attachment 465839
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947802</commentid>
    <comment_count>4</comment_count>
      <attachid>465840</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 18:28:29 -0700</bug_when>
    <thetext>Created attachment 465840
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947833</commentid>
    <comment_count>5</comment_count>
      <attachid>465842</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-10 20:55:47 -0700</bug_when>
    <thetext>Created attachment 465842
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1947938</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2023-04-11 09:17:51 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/12614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948033</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-04-11 15:28:58 -0700</bug_when>
    <thetext>Committed 262844@main (46ecab837eb9): &lt;https://commits.webkit.org/262844@main&gt;

Reviewed commits have been landed. Closing PR #12614 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948034</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-04-11 15:29:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/107905769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1948432</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-04-12 21:11:14 -0700</bug_when>
    <thetext>Regressed: Bug 255383 – REGRESSION(262844@main): css3/filters/reference-filter-change-repaint.html is randomly failing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959910</commentid>
    <comment_count>10</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2023-06-05 10:09:21 -0700</bug_when>
    <thetext>Regressed: Bug 257692 - [LBSE] REGRESSION: Transform repainting/relayout broken</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1959916</commentid>
    <comment_count>11</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2023-06-05 10:40:39 -0700</bug_when>
    <thetext>Regressed: REGRESSION(262844@main): svg/dynamic-updates/SVGFE* tests no longer react on changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1968018</commentid>
    <comment_count>12</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-07-25 06:50:29 -0700</bug_when>
    <thetext>*** Bug 244822 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2000379</commentid>
    <comment_count>13</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2023-12-18 05:08:16 -0800</bug_when>
    <thetext>*** Bug 244631 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465837</attachid>
            <date>2023-04-10 15:59:46 -0700</date>
            <delta_ts>2023-04-10 16:30:10 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_parseAttribute_func.patch</filename>
            <type>text/plain</type>
            <size>224693</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYzgzYjU4ZTIyMGQuLjUwODQxM2YyMGFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6
aXNJbnRlcmFjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjppbnRlcmFjdGl2ZUF0dHIpOwogfQogCi12b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTW9kZWxFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRy
KQogICAgICAgICBzb3VyY2VzQ2hhbmdlZCgpOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21vZGVsUGxheWVyKQogICAgICAgICAgICAg
bV9tb2RlbFBsYXllci0+c2V0SW50ZXJhY3Rpb25FbmFibGVkKGlzSW50ZXJhY3RpdmUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IGY0OGMzY2NlYWQ5NS4uNzAzNGIxODRiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdE
b2N1bWVudCkgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICAvLyBTdHlsZWRFbGVtZW50CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBiNGVmN2VmN2U3MjguLjc3NjY3ZGEyOGYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjA5NSw4ICsyMDk1LDYgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHBhcnNlQXR0cmlidXRlKG5hbWUsIG5ld1ZhbHVlKTsKLQog
ICAgIGRvY3VtZW50KCkuaW5jRE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChVTkxJS0VMWShp
c0RlZmluZWRDdXN0b21FbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNWViYjg2Zjk5
MjgwLi4zODg3OWU4NTk3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzA2LDkgKzMwNiw4IEBA
IHB1YmxpYzoKICAgICAgICAgTW9kaWZpZWRCeUNsb25pbmcKICAgICB9OwogCi0gICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBj
aGFuZ2VkIG9yIHJlbW92ZWQuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgeyB9
CiAKICAgICAvLyBPbmx5IGNhbGxlZCBieSB0aGUgcGFyc2VyIGltbWVkaWF0ZWx5IGFmdGVyIGVs
ZW1lbnQgY29uc3RydWN0aW9uLgogICAgIHZvaWQgcGFyc2VyU2V0QXR0cmlidXRlcyhTcGFuPGNv
bnN0IEF0dHJpYnV0ZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGQ4
ODY5MDZjZDAxMS4uZTAzZWE2ZDI1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC05NSw2ICs5NSw3IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlZEVsZW1l
bnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKQEAgLTEwMyw4ICsxMDQsNiBAQCB2
b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0KIAogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjppbmxpbmVTdHlsZUNTU09NV3JhcHBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDBlNGU0ZDhlYTI4ZC4uOGY3
MGUzMmMyN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjM0LDggKzIzNCwxMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9v
bCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aQogICAgIEhUTUxFbGVt
ZW50OjpzZXRBY3RpdmUoZG93biwgaW52YWxpZGF0aW9uU2NvcGUpOwogfQogCi12b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2Fz
TGluayA9IGlzTGluaygpOwogICAgICAgICBzZXRJc0xpbmsoIXZhbHVlLmlzTnVsbCgpICYmICFz
aG91bGRQcm9oaWJpdExpbmtzKHRoaXMpKTsKQEAgLTI0OCw4ICsyNTAsNiBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaQogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPmxv
YWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGRvY3VtZW50KCkuY29tcGxldGVVUkwocGFyc2Vk
VVJMKS5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbmFtZUF0dHIgfHwgbmFtZSA9PSB0aXRsZUF0dHIpIHsKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAg
ICAgICAvLyBVcGRhdGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBh
dHRyaWJ1dGVzIHZhbHVlcyBhcmUgc3VwcG9ydGVkLgogICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
X3MpOwpAQCAtMjY1LDggKzI2NSw2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAg
IGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDUxMjRmMWIxMDI1ZC4u
MmZjZDZlODhiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBA
IC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmNwcAppbmRleCA3NTUzOGQ1YTJmM2UuLjUyMWE5NThjNDk1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8SFRNTEFyZWFFbGVt
ZW50PiBIVE1MQXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc2hhcGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImRlZmF1bHQiX3MpKQpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRBdHRy
KSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OmludmFs
aWRhdGVDYWNoZWRSZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5k
ZXggMDMyYWFiN2YxMGMyLi43YTNjNTFlZTc4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxB
cmVhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggYWQzYjM3
NDIyZjk5Li5lOWQxZTQ4ZjFiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dGFjaG1lbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8SFRNTEltYWdlRWxl
bWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjplbmNsb3NpbmdJbWFnZUVsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBhY3Rpb25BdHRyIHx8IG5hbWUg
PT0gc3VidGl0bGVBdHRyKCkgfHwgbmFtZSA9PSB0aXRsZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0
cikgewogICAgICAgICBpZiAobV9pbm5lckxlZ2FjeUF0dGFjaG1lbnQpCkBAIC00NjUsNyArNDY1
LDcgQEAgdm9pZCBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmlu
ZygpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gYWN0
aW9uQXR0cikgewogICAgICAgICBpZiAobV9hY3Rpb25UZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCmluZGV4IGU3NmQ5OTNiN2VmMS4uMGQw
Y2Q3ZTg0NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAK
aW5kZXggODA5YjZiMDNlNDNkLi42YzliNjM4YzNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCBSZWY8SFRNTEJhc2VFbGVtZW50
PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCYXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxCYXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gaHJlZkF0dHIgfHwgbmFtZSA9PSB0YXJnZXRBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NCYXNlRWxlbWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgSFRN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MQmFzZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA1OTlhMmI5M2FmNGEuLjliNDM1YThlN2MwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAK
aW5kZXggOGZkM2VjMGI2ZWIzLi5hNmQ3OGVhZjc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShj
b25zdAogICAgIHJldHVybiBldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSwgbWFwKTsKIH0KIAotdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHZsaW5rQXR0ciB8fCBuYW1lID09IGFsaW5rQXR0ciB8fCBu
YW1lID09IGxpbmtBdHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkQ29sb3IgPSBwYXJzZUxlZ2Fj
eUNvbG9yVmFsdWUodmFsdWUpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTEJvZHlFbGVtZW50OjppbnNl
cnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKaW5kZXggMzVmMTEzNmY3YjlkLi45ZWI5MGJlNDg3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5k
ZXggMzcxNTI1OWM4ZTU1Li43MDIwZDBjODgxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCdXR0b25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAg
IFR5cGUgb2xkVHlwZSA9IG1fdHlwZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEhUTUxCdXR0
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgICAgICAgICAgICAgIGZvcm0oKS0+cmVzZXREZWZhdWx0QnV0dG9uKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggNDY4OTk3MjE4MTEyLi42NzY4OWZhNDY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGYzODZkMWVkNjJmOC4uNmQ2MzE4NTBlZWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTY3LDExICsxNjcs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQo
KTsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBhNDA2M2VlODgyYmUuLmU3NTViMDhl
NTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTU3LDcg
KzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgdm9pZCBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAwOTU3MTcwYTY4YS4uZmI0MmIyM2NkOWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3Vt
bWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlT
bG90LmdldCgpOwogfQogCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxEZXRhaWxzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gb3BlbkF0dHIpIHsKICAgICAgICAgYm9vbCBvbGRWYWx1
ZSA9IG1faXNPcGVuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgICAgICBtX2lzVG9nZ2xlRXZlbnRUYXNrUXVldWVkID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggOGM3MzdhZDA3ZmM1Li41ZDY4
MmQwMTIyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKICAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGNmZjRiNzY5MDBlNi4uNGI4ZGJk
MzRkZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY5LDggKzM2OSwx
MCBAQCBib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25z
dAogICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKCp0aGlzLCBQ
YWdlSXNFZGl0YWJsZTo6Tm8pICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgZGlyQXR0cmlidXRlQ2hh
bmdlZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApp
bmRleCA1ZWJmZjNlYmVmOTQuLjYxNjhmY2FjZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGx5Qm9yZGVy
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
Tm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSAsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCAzMDE3
YTAzYTQ4MmIuLmFlN2RkZTY0MzI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC05NSw4ICs5NSw5IEBAIHN0YXRpYyBib29sIGhhc1R5cGVPclNyYyhjb25z
dCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKICAgICByZXR1cm4gZW1iZWQuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0cikgfHwgZW1iZWQuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKTsKIH0KIAotdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlw
ZSA9IHZhbHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoaXMgYW5kIEhUTUxPYmplY3RFbGVtZW50J3MgY29ycmVzcG9uZGluZwpAQCAtMTE0LDggKzEx
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
ICFoYXNUeXBlT3JTcmMoKnRoaXMpKQogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8QXRvbVN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxB
dG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCmluZGV4IGQxNmU2NzdhMGNiOC4uY2QxZGQ2NmJkYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggODQ5ODgxMDFlNDAzLi5k
ZmQxMmM0ODBlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21Db250cm9sRWxl
bWVudHNBbmNlc3RvckRpc2FibGVkU3RhdGVVbmRlcihIVE1MRWxlbWVudCYgc3RhCiAgICAgfQog
fQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRmllbGRT
ZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBib29sIG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlID0gaGFzRGlzYWJsZWRBdHRyaWJ1dGUoKTsK
IAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmICho
YXNEaXNhYmxlZEF0dHJpYnV0ZSgpICE9IG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlKSB7CiAgICAg
ICAgIGlmIChoYXNEaXNhYmxlZEF0dHJpYnV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCBkNjcxZjg2ODUxMmQuLjJhY2I2OTU3YzUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOWZkZjYxYjRmYWZm
Li5lYjc1NjkzNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFp
CiAgICAgY2hlY2tBbmRQb3NzaWJseUNsb3NlUG9wb3ZlclN0YWNrKCk7CiB9CiAKLXZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5ld1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHBvcG92ZXJ0YXJnZXRBdHRyKQogICAgICAgICBjaGVja0Fu
ZFBvc3NpYmx5Q2xvc2VQb3BvdmVyU3RhY2soKTsKICAgICBlbHNlIHsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMmU3NDhjMjVmOTUwLi40NzhkODY2MzEwMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCAyOTViMzhjNTJmZDUuLmZjMmJkNWUwMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpy
ZXNldExpc3RlZEZvcm1Db250cm9sRWxlbWVudHMoKQogICAgICAgICBjb250cm9sLT5yZXNldCgp
OwogfQogCi12b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gYWN0aW9uQXR0cikgewogICAgICAgICBtX2F0dHJpYnV0ZXMucGFyc2VBY3Rpb24o
dmFsdWUpOwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAg
ICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJbmRl
eFdpdGhGb3JtQXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJhbmdlU3RhcnQs
IHVuc2lnbmVkIHJhbmdlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggNGQ4MTBmNDYzNjU3Li44ZjFlOWIwN2IxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9u
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA2
NThiMTRiZjMxMjQuLjljYTBkNzk3YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIGludCBIVE1MRnJhbWVFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEhUTUxGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRnJhbWVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBmcmFtZWJvcmRlckF0
dHIpIHsKICAgICAgICAgbV9mcmFtZUJvcmRlciA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZh
bHVlX29yKDApOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAg
cmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjZDg3Yzg1NDk2
MGMuLjZlNGNiODllMmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwogICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1fZnJhbWVCb3Jk
ZXIgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0IHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggY2QyNDQ5M2M3
ZDBlLi42YjM4NTc5ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6b3BlblVSTChMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdAog
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSgq
dGhpcywgbV9mcmFtZVVSTCwgZnJhbWVOYW1lLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjZG9jQXR0cikgewogICAgICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVMKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gc3JjQXR0ciAmJiAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihzcmNkb2NBdHRyKSkKICAgICAgICAgc2V0TG9jYXRpb24oc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggZDM0NWYzYjAxNjZjLi43YzcxODQwOTkzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBjYW5Mb2FkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRv
QW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCAzMjVhOWJiZDA3NDMuLjIxYzgwNzc5MDJlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC04Myw4ICs4MywxMCBAQCB2b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gcm93c0F0dHIpIHsKICAgICAgICAgLy8g
RklYTUU6IFdoYXQgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIHdoZW4gcmVtb3ZpbmcgdGhpcyBh
dHRyaWJ1dGU/CiAgICAgICAgIC8vIFdoeSBub3QgdHJlYXQgaXQgdGhlIHNhbWUgd2F5IHdlIHRy
ZWF0IHNldHRpbmcgaXQgdG8gdGhlIGVtcHR5IHN0cmluZz8KQEAgLTE0NywxMiArMTQ5LDggQEAg
dm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9CiAKICAgICBhdXRvJiBldmVudE5hbWUgPSBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShu
YW1lKTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgeworICAgIGlmICghZXZlbnROYW1l
LmlzTnVsbCgpKQogICAgICAgICBkb2N1bWVudCgpLnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lLCBuYW1lLCB2YWx1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKIH0KIAogYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKaW5kZXggMzdmZjFiMGY2OWIxLi45YjZlMTViYTdjNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZh
dGU6CiAgICAgY29uc3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZUhUTUxGcmFtZVNldEVsZW1lbnQg
PSBDcmVhdGVIVE1MRWxlbWVudCB8IE5vZGVGbGFnOjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3M7CiAgICAgSFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggNDE4ZTA3MjVhYjY0Li5mMGY2NTA0NjJiNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQg
SFRNTElGcmFtZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
Ci12b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHNhbmRib3hBdHRyKSB7CiAgICAgICAgIGlmIChtX3NhbmRib3gpCkBAIC0xMTgsNyAr
MTE4LDcgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgICAgIGxvYWREZWZlcnJl
ZEZyYW1lKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZyYW1lRWxl
bWVudEJhc2U6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCBmYTY1Y2E0YjM1YTkuLjg1YjQxZWNmMWRmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBw
cml2YXRlOgogICAgIEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwog
ICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI1
NzFlOGQ1N2NkZi4uMTRiY2EyNmUyZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKQEAgLTMyOSwyMyArMzI5LDEwIEBAIHN0YXRpYyBDcm9zc09yaWdpblN0YXRl
IHBhcnNlQ3Jvc3NvcmlnaW5TdGF0ZShjb25zdCBBdG9tU3RyaW5nJiBjcm9zc29yaWdpblZhbHVl
CiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3Nzb3JpZ2luVmFs
dWUsICJ1c2UtY3JlZGVudGlhbHMiX3MpID8gVXNlQ3JlZGVudGlhbHMgOiBBbm9ueW1vdXM7CiB9
CiAKLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhU
TUxJbWFnZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewotICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdW
YWx1ZSwgcmVhc29uKTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAKLSAgICBpZiAo
bmFtZSA9PSByZWZlcnJlcnBvbGljeUF0dHIgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLnJlZmVy
cmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gb2xkUmVmZXJyZXJQ
b2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG9sZFZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJj
ZTo6UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0
eVN0cmluZyk7Ci0gICAgICAgIGF1dG8gbmV3UmVmZXJyZXJQb2xpY3kgPSBwYXJzZVJlZmVycmVy
UG9saWN5KG5ld1ZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQb2xpY3lBdHRy
aWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0gICAgICAgIGlm
IChvbGRSZWZlcnJlclBvbGljeSAhPSBuZXdSZWZlcnJlclBvbGljeSkKLSAgICAgICAgICAgIG1f
aW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2
YW50TXV0YXRpb246Olllcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNyb3Nzb3JpZ2luQXR0
cikgewotICAgICAgICBpZiAocGFyc2VDcm9zc29yaWdpblN0YXRlKG9sZFZhbHVlKSAhPSBwYXJz
ZUNyb3Nzb3JpZ2luU3RhdGUobmV3VmFsdWUpKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+
dXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoUmVsZXZhbnRNdXRhdGlvbjo6
WWVzKTsKLSAgICB9Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAg
ICAgaWYgKG5hbWUgPT0gYWx0QXR0cikgewogICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJl
bmRlcmVyKCkpKQogICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcigp
KS51cGRhdGVBbHRUZXh0KCk7CkBAIC0zNjQsMzEgKzM1MSwzNyBAQCB2b2lkIEhUTUxJbWFnZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbgogICAgICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5kTW9kZTo6Tm9ybWFsOwog
ICAgICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcih2YWx1ZSwgbV9jb21w
b3NpdGVPcGVyYXRvciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2NvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgfSBlbHNlIGlmIChpc0ltYWdlTWVudUVuYWJsZWQoKSkgewotICAgICAgICBJ
bWFnZUNvbnRyb2xzTWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKLSNlbmRpZgogICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24g
bmVlZGVkIGZvciBlYWdlciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6
eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUodmFsdWUpKQogICAgICAgICAgICAgbG9hZERlZmVycmVk
SW1hZ2UoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewot
ICAgICAgICAgICAgYm9vbCB3aWxsSGF2ZU5hbWUgPSAhdmFsdWUuaXNFbXB0eSgpOwotICAgICAg
ICAgICAgaWYgKG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1l
ICYmIGlzQ29ubmVjdGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50
Pihkb2N1bWVudCgpKSkgewotICAgICAgICAgICAgICAgIEhUTUxEb2N1bWVudCYgZG9jdW1lbnQg
PSBkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KHRoaXMtPmRvY3VtZW50KCkpOwotICAgICAgICAgICAg
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIWlkLmlzRW1wdHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHdpbGxIYXZlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmFkZERvY3VtZW50TmFtZWRJdGVtKCppZC5pbXBsKCksICp0aGlzKTsKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
cmVtb3ZlRG9jdW1lbnROYW1lZEl0ZW0oKmlkLmltcGwoKSwgKnRoaXMpOwotICAgICAgICAgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVmZXJyZXJwb2xpY3lBdHRyICYmIGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5yZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAg
ICAgICBhdXRvIG9sZFJlZmVycmVyUG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShvbGRWYWx1
ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9v
cihSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICBhdXRvIG5ld1JlZmVycmVy
UG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeSh2YWx1ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6
OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBvbGljeTo6RW1wdHlT
dHJpbmcpOworICAgICAgICBpZiAob2xkUmVmZXJyZXJQb2xpY3kgIT0gbmV3UmVmZXJyZXJQb2xp
Y3kpCisgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5n
UHJldmlvdXNFcnJvcihSZWxldmFudE11dGF0aW9uOjpZZXMpOworICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBjcm9zc29yaWdpbkF0dHIpIHsKKyAgICAgICAgaWYgKHBhcnNlQ3Jvc3NvcmlnaW5TdGF0
ZShvbGRWYWx1ZSkgIT0gcGFyc2VDcm9zc29yaWdpblN0YXRlKHZhbHVlKSkKKyAgICAgICAgICAg
IG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJl
bGV2YW50TXV0YXRpb246Olllcyk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7
CisgICAgICAgIGJvb2wgd2lsbEhhdmVOYW1lID0gIXZhbHVlLmlzRW1wdHkoKTsKKyAgICAgICAg
aWYgKG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlz
Q29ubmVjdGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1
bWVudCgpKSkgeworICAgICAgICAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PEhUTUxEb2N1bWVudD4odGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBjb25zdCBBdG9t
U3RyaW5nJiBpZCA9IGdldElkQXR0cmlidXRlKCk7CisgICAgICAgICAgICBpZiAoIWlkLmlzRW1w
dHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
d2lsbEhhdmVOYW1lKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGREb2N1bWVudE5h
bWVkSXRlbSgqaWQuaW1wbCgpLCAqdGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbSgqaWQuaW1wbCgp
LCAqdGhpcyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2hhZE5hbWVCZWZvcmVBdHRy
aWJ1dGVDaGFuZ2VkID0gd2lsbEhhdmVOYW1lOwogICAgICAgICB9Ci0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1faGFkTmFtZUJlZm9y
ZUF0dHJpYnV0ZUNoYW5nZWQgPSB3aWxsSGF2ZU5hbWU7CiAgICAgfQorCisjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCisgICAgaWYgKGlzSW1hZ2VNZW51RW5hYmxlZCgpKQorICAgICAgICBJ
bWFnZUNvbnRyb2xzTWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKKyNlbmRpZgogfQog
CiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmxvYWREZWZlcnJlZEltYWdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYWUyNWRkZjUxNzQwLi5mMzZjOWVhN2RjN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xODUsNyArMTg1LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEZvcm1JbnRlcm5hbChSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiYmKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5l
d1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVy
cmlkZTsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xs
ZWN0RXh0cmFTdHlsZUZvclByZXNlbnRhdGlvbmFsSGludHMoTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggZWFkZmQ2MTU4MzAyLi5mZGU3ZTFlNmViNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIGlubGluZSB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUoKQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9
CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIEFTU0VS
VChtX2lucHV0VHlwZSk7CiAgICAgUmVmIHByb3RlY3RlZElucHV0VHlwZSB7ICptX2lucHV0VHlw
ZSB9OwpAQCAtNzI5LDcgKzcyOSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAg
IHJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3VwKCk7CiAgICAgICAgIG1fbmFtZSA9IHZhbHVlOwog
ICAgICAgICBhZGRUb1JhZGlvQnV0dG9uR3JvdXAoKTsKLSAgICAgICAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0gZWxzZSBpZiAobmFtZSA9
PSBhdXRvY29tcGxldGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh2YWx1ZSwgIm9mZiJfcykpIHsKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlID0g
T2ZmOwpAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgfQog
I2VuZGlmCiAgICAgZWxzZQotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiAKICAgICBtX2lucHV0VHlwZS0+YXR0cmlidXRlQ2hhbmdlZChu
YW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNmM3ZjJl
NTYwYTM5Li5lNzY3NzMwYTQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0zNzgsNyArMzc4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIGZpbmFsOwogICAgIHZvaWQgcGFyc2VyRGlkU2V0QXR0cmlidXRlcygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKaW5kZXggZDk1N2VkNGIxMzk1Li5jYmRjMmI5
MjJlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkz
LDEzIEBAIHZvaWQgSFRNTExJRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTExJRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxMSUVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09
IHZhbHVlQXR0cikgewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc0xp
c3RJdGVtKCkpCiAgICAgICAgICAgICBwYXJzZVZhbHVlKHZhbHVlKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxMSUVsZW1lbnQ6OmRpZEF0
dGFjaFJlbmRlcmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCmluZGV4IGZiOThl
MDc5MTExNi4uMzY5Njg4YjU3MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaApA
QCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgYXV0byBDcmVh
dGVIVE1MTElFbGVtZW50ID0gQ3JlYXRlSFRNTEVsZW1lbnQgfCBOb2RlRmxhZzo6SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzOwogICAgIEhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZDRiNDEyNWUxMGIwLi41OTJkNzNhNTUzMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2
b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVkKQogICAg
IH0KIH0KIAotdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlm
IChuYW1lID09IHJlbEF0dHIpIHsKICAgICAgICAgYXV0byBwYXJzZWRSZWwgPSBMaW5rUmVsQXR0
cmlidXRlKGRvY3VtZW50KCksIHZhbHVlKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUodmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIEhUTUxM
aW5rRWxlbWVudDo6c2hvdWxkTG9hZExpbmsoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKaW5kZXggZjVhYmM1N2U2N2Q0Li5mOGMyYTRkN2IwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgUmVxdWVz
dFByaW9yaXR5IGZldGNoUHJpb3JpdHlIaW50KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgYm9vbCBzaG91bGRMb2FkTGlu
aygpIGZpbmFsOwogICAgIHZvaWQgcHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBF
bGVtZW50LmNwcAppbmRleCBjZDA0M2YyNWIwOWUuLjA0ZGU2ZGYxOTA1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKQEAgLTg0LDE1ICs4NCwxNyBAQCBIVE1MSW1hZ2VF
bGVtZW50KiBIVE1MTWFwRWxlbWVudDo6aW1hZ2VFbGVtZW50KCkKICAgICByZXR1cm4gdHJlZVNj
b3BlKCkuaW1hZ2VFbGVtZW50QnlVc2VtYXAoKm1fbmFtZS5pbXBsKCkpOwogfQogCi12b2lkIEhU
TUxNYXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1hcEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIHNlZW1zIHdyb25nIGZvciBYTUwgZG9j
dW1lbnRzLgogICAgIC8vIEVpdGhlciB0aGUgaWQgb3IgbmFtZSB3aWxsIGJlIHVzZWQgZGVwZW5k
aW5nIG9uIHRoZSBvcmRlciB0aGUgYXR0cmlidXRlcyBhcmUgcGFyc2VkLgogCiAgICAgaWYgKG5h
bWUgPT0gSFRNTE5hbWVzOjppZEF0dHIgfHwgbmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKSB7
CiAgICAgICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6aWRBdHRyKSB7CiAgICAgICAgICAgICAv
LyBDYWxsIGJhc2UgY2xhc3Mgc28gdGhhdCBoYXNJRCBiaXQgZ2V0cyBzZXQuCi0gICAgICAgICAg
ICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNI
VE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEw
NCwxMSArMTA2LDcgQEAgdm9pZCBIVE1MTWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgbV9uYW1lID0g
V1RGTW92ZShtYXBOYW1lKTsKICAgICAgICAgaWYgKGlzSW5UcmVlU2NvcGUoKSkKICAgICAgICAg
ICAgIHRyZWVTY29wZSgpLmFkZEltYWdlTWFwKCp0aGlzKTsKLQotICAgICAgICByZXR1cm47CiAg
ICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0K
IAogUmVmPEhUTUxDb2xsZWN0aW9uPiBIVE1MTWFwRWxlbWVudDo6YXJlYXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4IDdmN2VjZTVmZmRhMy4uM2E0MWY2YjkxNzhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2Vz
dG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dC5jcHAKaW5kZXggMTBkNmEwNmYxM2E5Li5hMTc4MWY1OTIzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudC5jcHAKQEAgLTE0OSw5ICsxNDksOSBAQCB2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdgogICAg
ICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5yZW1vdmVkRnJvbUFuY2Vz
dG9yKHJlbW92YWxUeXBlLCBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKIH0KIAotdm9pZCBIVE1M
TWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTWF5
YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChpc0Zvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudCgpKQogICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnRVbnNhZmUoKS5wYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQuaAppbmRleCAwMjljMzdhZmUwODEuLmNiZmQxMDRiODM2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dC5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRp
bmdOb2RlKCkgZmluYWw7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYs
IERvY3VtZW50JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxU
eXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgZmluYWw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZDYzNzAyYzBm
ODkuLjc0MzAyOWRiZjVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC03NzEsMTcgKzc3MSw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNJbnRlcmFj
dGl2ZUNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBjb250cm9scygpOwogfQogCi12b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxlc3N2aWRl
b3BsYXliYWNrZGlzYWJsZWRBdHRyKQotICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChuZXdWYWx1ZSAhPSBudWxsQXRvbSgpKTsKLSAgICBlbHNl
Ci0jZW5kaWYKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOwotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBpZEF0dHIpCiAgICAgICAgIG1faWQg
PSB2YWx1ZTsKQEAgLTgyMyw4ICs4MTMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAg
ICAgICAgaWYgKG1fbWVkaWFTZXNzaW9uKQogICAgICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNs
aWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoZmFsc2UpOwogICAgIH0KKyNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorICAgIGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxl
c3N2aWRlb3BsYXliYWNrZGlzYWJsZWRBdHRyKQorICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRX
aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCh2YWx1ZSAhPSBudWxsQXRvbSgpKTsKKyNlbmRp
ZgogICAgIGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGE0NTk2ZjgzYjYyNS4uNTVjODNlZDFjZDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjQ3LDggKzY0Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50
KCk7CiAKLSAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4o
KSBvdmVycmlkZTsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCmluZGV4IGNlNzE5MWY1YzM4MS4u
YTMwODZkZjNkN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCkBA
IC02MywxMCArNjMsMTAgQEAgdm9pZCBIVE1MTWVudUVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUgdHlwZSwgQ29udGFpbmVyTm9kZSYgYW5jZXMKICAgICB9CiB9CiAKLXZv
aWQgSFRNTE1lbnVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1lbnVFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSAhPSB0
eXBlQXR0ciB8fCAhZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lbnVJdGVtRWxlbWVudEVuYWJsZWQo
KSkgewotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgYm9vbCB3YXNUb3VjaEJhck1lbnUgPSBtX2lzVG91Y2hCYXJNZW51OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKaW5kZXggMjA1YjhmNTJjNDk1Li4yNjMyYTRiMjUwOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBw
cml2YXRlOgogCiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5j
ZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVt
b3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIGJvb2wgbV9pc1RvdWNo
QmFyTWVudTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXgg
MmIwZDBiM2E4ZTQ1Li41ZjE0YmYyN2MyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5jcHAKQEAgLTkzLDI0ICs5MywxNiBAQCBjb25zdCBDb2xvciYgSFRNTE1ldGFFbGVt
ZW50Ojpjb250ZW50Q29sb3IoKQogICAgIHJldHVybiAqbV9jb250ZW50Q29sb3I7CiB9CiAKLXZv
aWQgSFRNTE1ldGFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdW
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIHJlYXNvbikKK3ZvaWQgSFRNTE1ldGFF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBI
VE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJl
YXNvbik7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCi0gICAgaWYgKCFpc0luRG9j
dW1lbnRUcmVlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuYW1lID09IG5hbWVBdHRy
KSB7Ci0gICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShvbGRWYWx1ZSwg
InRoZW1lLWNvbG9yIl9zKSAmJiAhZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmV3VmFs
dWUsICJ0aGVtZS1jb2xvciJfcykpCi0gICAgICAgICAgICBkb2N1bWVudCgpLm1ldGFFbGVtZW50
VGhlbWVDb2xvckNoYW5nZWQoKnRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi12
b2lkIEhUTUxNZXRhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUgPT0gbmFtZUF0
dHIpIHsKICAgICAgICAgcHJvY2VzcygpOworICAgICAgICBpZiAoaXNJbkRvY3VtZW50VHJlZSgp
KSB7CisgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFs
dWUsICJ0aGVtZS1jb2xvciJfcykgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZh
bHVlLCAidGhlbWUtY29sb3IiX3MpKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCkubWV0YUVs
ZW1lbnRUaGVtZUNvbG9yQ2hhbmdlZCgqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTMwLDggKzEyMiw2IEBAIHZvaWQgSFRNTE1ldGFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAg
ICAgICAgIHByb2Nlc3MoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIE5vZGU6Okluc2VydGVkSW50
b0FuY2VzdG9yUmVzdWx0IEhUTUxNZXRhRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVk
VHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDFiMTI3MDdiNGI2
Yy4uNGZiMTUwZTRhYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAg
LTQ2LDcgKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJl
Y3RseSkgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKICAgICB2b2lkIHJlbW92
ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDE5NTMyZTNmYTI3OC4uMGI4
MzgxZTFlYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAg
LTcxLDEyICs3MSwxMiBAQCBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuICFpczxSZW5kZXJN
ZXRlcj4ocmVuZGVyZXIoKSkgJiYgSFRNTEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY2hpbGQpOwogfQogCi12b2lkIEhUTUxNZXRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MTWV0ZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIgfHwgbmFtZSA9PSBtaW5BdHRyIHx8IG5hbWUg
PT0gbWF4QXR0ciB8fCBuYW1lID09IGxvd0F0dHIgfHwgbmFtZSA9PSBoaWdoQXR0ciB8fCBuYW1l
ID09IG9wdGltdW1BdHRyKQogICAgICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKICAgICBl
bHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogZG91YmxlIEhUTUxNZXRlckVs
ZW1lbnQ6Om1pbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmlu
ZGV4IDYxZjQwZmQ3ZTE5MS4uYTBlN2ZhN2ZjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCmluZGV4IDQ0ZjkxYWNlYjYzZC4u
ZjFjMGRkMzY2YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAK
QEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW0KICAgICAgICAgSFRNTEVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTE9MaXN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxPTGlzdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IHN0YXJ0QXR0cikgewogICAgICAgICBpbnQgb2xkU3RhcnQgPSBz
dGFydCgpOwpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgICAg
ICBtX2lzUmV2ZXJzZWQgPSByZXZlcnNlZDsKICAgICAgICAgUmVuZGVyTGlzdEl0ZW06OnVwZGF0
ZUl0ZW1WYWx1ZXNGb3JPcmRlcmVkTGlzdCgqdGhpcyk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhU
TUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpzZXRTdGFydEZv
ckJpbmRpbmdzKGludCBzdGFydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgK
aW5kZXggODNkYzBiOTY5ZWQzLi5hNzJjNTg0MzY2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGl0ZW1Db3VudCgpIGNvbnN0OwogCi0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBiODZl
NzdhZWViNDguLjJkZjc0MzI5ZDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAKQEAgLTEwMCw4ICsxMDAsMTAgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEK
ICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKTsKKwogICAgIGJvb2wgaW52YWxpZGF0ZVJlbmRlcmVyID0gZmFsc2U7CiAg
ICAgYm9vbCBuZWVkc1dpZGdldFVwZGF0ZSA9IGZhbHNlOwogCkBAIC0xMTcsMTAgKzExOSw4IEBA
IHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNsYXNzaWRB
dHRyKSB7CiAgICAgICAgIGludmFsaWRhdGVSZW5kZXJlciA9IHRydWU7CiAgICAgICAgIG5lZWRz
V2lkZ2V0VXBkYXRlID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfSBlbHNlCiAgICAg
ICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAg
fQogCiAgICAgaWYgKG5lZWRzV2lkZ2V0VXBkYXRlKSB7CiAgICAgICAgIHNldE5lZWRzV2lkZ2V0
VXBkYXRlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4
IDg4YzdiYzA4ZDNjZC4uNzVhYjFlYWY4ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBpbnQgZGVmYXVs
dFRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA2ZjA0ZTUwZWJkY2IuLjg1ZTVh
ZDU2ZGY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
CkBAIC05MSw5ICs5MSw5IEBAIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgSFRNTEVsZW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZChjaGFuZ2UpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICByZWNhbGNTZWxlY3RPcHRp
b25zKCk7CiAKICAgICBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggZTI1MTk1ZDIyNTk2Li5mMzg4ZWI1MWEw
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00NCw3
ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdDsKICAgICBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA0Mjc3MDQyMjcyOTMuLjQ0N2I3YTEz
NDc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE3
Myw3ICsxNzMsNyBAQCBpbnQgSFRNTE9wdGlvbkVsZW1lbnQ6OmluZGV4KCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxPcHRpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0
dHIpIHsKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAg
ICAvLyBoYXMgbm8gZWZmZWN0IG9uIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuCiAg
ICAgICAgIHNldFNlbGVjdGVkU3RhdGUoIXZhbHVlLmlzTnVsbCgpKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6
OnZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRl
eCA3NmE3Yzk2MTE4ODYuLjMzNmMyNzg1NmE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBtYXRjaGVzRGVmYXVsdFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIGFjY2Vzc0tleUFj
dGlvbihib29sKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3V0cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50
LmNwcAppbmRleCA5MmQzZmYyNGExYTQuLmZjNWMxZGVjY2NjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKQEAgLTcwLDExICs3MCwxMSBAQCBib29sIEhUTUxP
dXRwdXRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKICAgICByZXR1cm4gSFRNTEVsZW1l
bnQ6OnN1cHBvcnRzRm9jdXMoKTsKIH0KIAotdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIEhUTUxPdXRwdXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIgJiYgbV9m
b3JUb2tlbnMpCiAgICAgICAgIG1fZm9yVG9rZW5zLT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVD
aGFuZ2VkKHZhbHVlKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CiB9CiAKIHZvaWQgSFRNTE91dHB1dEVsZW1lbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCBiZDhjNmE4YjUxY2IuLmU3N2NjOTU4ZjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtNTQsNyArNTQsOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CisKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAwOTBk
OTAzYTdmNTIuLjQwZWFjNDlhNmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFJlbmRlclByb2dyZXNzKiBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpyZW5kZXJQcm9ncmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclByb2dyZXNzPihkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdXNlckFnZW50U2hh
ZG93Um9vdCgpKS5maXJzdCgpLT5yZW5kZXJlcigpKTsKIH0KIAotdm9pZCBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRy
KSB7CiAgICAgICAgIHVwZGF0ZURldGVybWluYXRlU3RhdGUoKTsKQEAgLTg1LDcgKzg1LDcgQEAg
dm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWF4QXR0cikK
ICAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1M
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQXR0YWNo
UmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5k
ZXggM2JiNDhmNzU5MTBhLi41NWFhODNjZmNmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICAgICBS
ZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3MoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
MDQ3NjMzYWQ2YzJlLi5iYzQxNDVlYTc1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCkBAIC02NSwxNCArNjUsMTQgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgU2NyaXB0
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0cikKICAg
ICAgICAgaGFuZGxlU291cmNlQXR0cmlidXRlKHZhbHVlKTsKICAgICBlbHNlIGlmIChuYW1lID09
IGFzeW5jQXR0cikKICAgICAgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKICAgICBlbHNlCi0g
ICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0
b3JSZXN1bHQgSFRNTFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlv
blR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMzFlOTEwMzI0MTA5
Li5iNTQ4ZGZhYmI4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgK
QEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJz
ZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0Fu
Y2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGRp
ZEZpbmlzaEluc2VydGluZ05vZGUoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCBkOWVhZjE0MzcyZjYuLmZiZGJkZjk2ZDJmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCBib29s
IEhUTUxTZWxlY3RFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmCiAgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc2l6ZUF0
dHIpIHsKICAgICAgICAgdW5zaWduZWQgb2xkU2l6ZSA9IG1fc2l6ZTsKQEAgLTMxMCw3ICszMTAs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0
aXBsZUF0dHIpCiAgICAgICAgIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUodmFsdWUpOwogICAgIGVs
c2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogaW50IEhUTUxTZWxlY3RFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDc1OWRhZjJiODZkOS4uZWViMWQ2
MTM5ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMzQs
NyArMTM0LDggQEAgcHJpdmF0ZToKICAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJv
bFN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBGb3JtQ29udHJvbFN0YXRlJikgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CisKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKaW5kZXggM2YzNTVmYTZjZjQ1Li5jYWNk
ODI2MTgzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBA
IC0xNTEsMTUgKzE1MSwxOCBAQCB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpzdG9wKCkKICAgICBj
YW5jZWxQZW5kaW5nRXJyb3JFdmVudCgpOwogfQogCi12b2lkIEhUTUxTb3VyY2VFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09
IHNyY3NldEF0dHIgfHwgbmFtZSA9PSBzaXplc0F0dHIgfHwgbmFtZSA9PSBtZWRpYUF0dHIgfHwg
bmFtZSA9PSB0eXBlQXR0cikgewogICAgICAgICBpZiAobmFtZSA9PSBtZWRpYUF0dHIpCiAgICAg
ICAgICAgICBtX2NhY2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlID0gc3RkOjpudWxsb3B0OwogICAg
ICAgICBSZWZQdHIgcGFyZW50ID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAobV9zaG91bGRD
YWxsU291cmNlc0NoYW5nZWQgJiYgcGFyZW50KQogICAgICAgICAgICAgZG93bmNhc3Q8SFRNTFBp
Y3R1cmVFbGVtZW50PigqcGFyZW50KS5zb3VyY2VzQ2hhbmdlZCgpOworICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKSB7CisgICAgICAgIGlmIChS
ZWZQdHIgcGFyZW50ID0gcGFyZW50Tm9kZSgpOyBpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVu
dCkpCisgICAgICAgICAgICBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNv
dXJjZURpbWVuc2lvbkF0dHJpYnV0ZXNDaGFuZ2VkKCp0aGlzKTsKICAgICB9CiAjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpCiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0ciB8fCAgbmFtZSA9PSB0eXBl
QXR0cikgewpAQCAtMTc5LDEzICsxODIsNCBAQCBjb25zdCBNUTo6TWVkaWFRdWVyeUxpc3QmIEhU
TUxTb3VyY2VFbGVtZW50OjpwYXJzZWRNZWRpYUF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdQogICAg
IHJldHVybiBtX2NhY2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlLnZhbHVlKCk7CiB9CiAKLXZvaWQg
SFRNTFNvdXJjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1Zh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotICAgIGlmIChuYW1l
ID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpIHsKLSAgICAgICAgaWYgKFJlZlB0
ciBwYXJlbnQgPSBwYXJlbnROb2RlKCk7IGlzPEhUTUxQaWN0dXJlRWxlbWVudD4ocGFyZW50KSkK
LSAgICAgICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNl
RGltZW5zaW9uQXR0cmlidXRlc0NoYW5nZWQoKnRoaXMpOwotICAgIH0KLSAgICBIVE1MRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7Ci19
Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCBmZTZmNDBk
MTIyM2QuLmVlNDJlYjU0YzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuaApAQCAtNTQsOSArNTQsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKLQotICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1Zh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IGZpbmFsOwogCiAgICAgVGFza0NhbmNlbGxhdGlvbkdyb3VwIG1fZXJyb3JFdmVudENhbmNlbGxh
dGlvbkdyb3VwOwogICAgIGJvb2wgbV9zaG91bGRDYWxsU291cmNlc0NoYW5nZWQgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggMTUxZTJkZTY1
NDlhLi40MDY2Zjc0OWU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0
eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmNwcApAQCAtNzYsNyArNzYsNyBAQCBSZWY8SFRNTFN0eWxlRWxlbWVudD4gSFRNTFN0eWxlRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MU3R5bGVFbGVtZW50KHN0eWxlVGFnLCBkb2N1bWVudCwgZmFsc2UpKTsKIH0KIAotdm9p
ZCBIVE1MU3R5bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFN0eWxlRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0g
dGl0bGVBdHRyICYmIHNoZWV0KCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHNoZWV0
KCktPnNldFRpdGxlKHZhbHVlKTsKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW4KICAgICAgICAgaWYgKGF1dG8qIHNjb3BlID0gbV9zdHlsZVNoZWV0T3duZXIuc3R5bGVT
Y29wZSgpKQogICAgICAgICAgICAgc2NvcGUtPmRpZENoYW5nZVN0eWxlU2hlZXRDb250ZW50cygp
OwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgSFRN
TFN0eWxlRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3R5bGVFbGVtZW50LmgKaW5kZXggZjY5ODRjMTJkZDlhLi4zM2I0ZmI2NGEzODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0
ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAg
IHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZp
bmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGJk
ODZjOTBjMGZiZC4uNzIwNzRkNTk3OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTEyLDE2ICsxMTIsMTQgQEAgdm9pZCBIVE1MVGFibGVD
ZWxsRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWUKICAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRN
TFRhYmxlQ2VsbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVGFibGVDZWxsRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgaWYgKG5hbWUg
PT0gcm93c3BhbkF0dHIpIHsKLSAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVy
ZXIoKSkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJUYWJsZUNlbGw+KCpyZW5kZXJlcigp
KS5jb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb2xz
cGFuQXR0cikgeworICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKworICAg
IGlmIChuYW1lID09IHJvd3NwYW5BdHRyIHx8IG5hbWUgPT0gY29sc3BhbkF0dHIpIHsKICAgICAg
ICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkpCiAgICAgICAgICAgICBkb3du
Y2FzdDxSZW5kZXJUYWJsZUNlbGw+KCpyZW5kZXJlcigpKS5jb2xTcGFuT3JSb3dTcGFuQ2hhbmdl
ZCgpOwotICAgIH0gZWxzZQotICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0KIH0KIAogY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRT
dHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmgK
aW5kZXggNWJkM2RmZTNiOGY1Li45NTNlOWFjNTRlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBIVE1MVGFibGVDZWxsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAg
ICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgY29uc3QgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRl
eCBlNzlhYTg5MDA1MTAuLjQ5Y2Y3ZjAzYjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNvbEVsZW1lbnQuY3BwCkBAIC03Miw4ICs3MiwxMCBAQCB2b2lkIEhUTUxUYWJsZUNv
bEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZAogICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
VGFibGVDb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFRhYmxlUGFy
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gc3BhbkF0dHIpIHsKICAg
ICAgICAgbV9zcGFuID0gY2xhbXBIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyVG9SYW5nZSh2YWx1ZSwg
bWluU3BhbiwgbWF4U3BhbiwgZGVmYXVsdFNwYW4pOwogICAgICAgICBpZiAoaXM8UmVuZGVyVGFi
bGVDb2w+KHJlbmRlcmVyKCkpKQpAQCAtODcsOCArODksNyBAQCB2b2lkIEhUTUxUYWJsZUNvbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdAogICAgICAgICAgICAgICAgICAgICBjb2wuc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhz
UmVjYWxjKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAg
SFRNTFRhYmxlUGFydEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9
CiB9CiAKIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUNvbEVsZW1lbnQ6
OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCmluZGV4IGVlZTdmYmNlMWI0ZC4uYWUzZDA1ZTNk
MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNvbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAg
ICAgY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFs
SGludFN0eWxlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCA3ZGJhZjI3YjZiMjYuLjdiODBjOTg4OWQ1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC0zNjIsOCArMzYyLDEwIEBAIGJvb2wgSFRN
TFRhYmxlRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MVGFibGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBD
ZWxsQm9yZGVycyBib3JkZXJzQmVmb3JlID0gY2VsbEJvcmRlcnMoKTsKICAgICB1bnNpZ25lZCBz
aG9ydCBvbGRQYWRkaW5nID0gbV9wYWRkaW5nOwogCkBAIC0zOTgsOCArNDAwLDcgQEAgdm9pZCBI
VE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW4KICAgICAgICAgICAgIG1fcGFkZGluZyA9IDE7CiAgICAgfSBlbHNl
IGlmIChuYW1lID09IGNvbHNBdHRyKSB7CiAgICAgICAgIC8vICMjIwotICAgIH0gZWxzZQotICAg
ICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0KIAog
ICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJzKCkgfHwgb2xkUGFkZGluZyAhPSBt
X3BhZGRpbmcpIHsKICAgICAgICAgbV9zaGFyZWRDZWxsU3R5bGUgPSBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCBiYWNmYTQ2ZGRmZjUuLjc1MTI0NTg5
OGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTcxLDcgKzcx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0
cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOTUwZTExODYwNjA3Li5iYmYzZWU2MTBi
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAt
MTQzLDggKzE0Myw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkCiAgICAgICAgIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiAgICAgaWYgKG5hbWUgPT0gcm93c0F0dHIpIHsKICAgICAgICAgdW5zaWduZWQg
cm93cyA9IGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybyh2
YWx1ZSwgZGVmYXVsdFJvd3MpOwogICAgICAgICBpZiAobV9yb3dzICE9IHJvd3MpIHsKQEAgLTE4
MCw4ICsxODEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBtaW5sZW5ndGhBdHRyKSB7CiAgICAgICAgIGludGVybmFsU2V0TWluTGVuZ3RoKHBhcnNl
SFRNTE5vbk5lZ2F0aXZlSW50ZWdlcih2YWx1ZSkudmFsdWVfb3IoLTEpKTsKICAgICAgICAgdXBk
YXRlVmFsaWRpdHkoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggNzVjNWMxMzNjZTc0Li4z
M2IyYzg0ZWUxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5o
CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZp
bmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1ZjNkMDcxNmNhNzkuLjk3Y2YxYWFjMzFk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTU0NywxNSArNTQ3LDE1IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoYm9vbCBzaG91bGRGaXJlU2VsZWN0RXZlbnQpCiB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzY2hlZHVsZVNlbGVjdEV2ZW50KCkKIHsKICAg
ICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotfSAKK30KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAo
bmFtZSA9PSBwbGFjZWhvbGRlckF0dHIpIHsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0
KCk7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSgpOwogICAgIH0gZWxzZQot
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5k
ZXggODUxMDZhZDQ0OTk0Li5iM2QwZWJkNjVmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyRW1wdHkoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkgPSAwOwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdl
ZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDBjOTYzZGE3Yjhj
YS4uZWRkYzk4YzhmZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFj
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5j
cHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnJlbW92ZWRGcm9t
QW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZAogICAgICAgICBk
b3duY2FzdDxIVE1MTWVkaWFFbGVtZW50PihvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKS5kaWRSZW1v
dmVUZXh0VHJhY2soKnRoaXMpOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBIVE1MVHJhY2tFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRyKSB7CiAgICAgICAgIHNjaGVkdWxl
TG9hZCgpOwpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAg
ZWxzZSBpZiAobmFtZSA9PSBzcmNsYW5nQXR0cikKICAgICAgICAgdHJhY2soKS5zZXRMYW5ndWFn
ZSh2YWx1ZSk7CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
SFRNTFRyYWNrRWxlbWVudDo6a2luZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oCmluZGV4IDNmNDRlMGE4ZTE0YS4uZTIyNTFlMDRmYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHZpcnR1
YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGlu
c2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
ICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGJi
NDgxMWEyMDkyOS4uYWYwNGFjZDI5NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbgog
ICAgIHJldHVybiBIVE1MTWVkaWFFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MVmlkZW9FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKICAgICBpZiAobmFtZSA9PSBwb3N0ZXJBdHRyKSB7CiAgICAgICAgIGlmIChzaG91bGRE
aXNwbGF5UG9zdGVySW1hZ2UoKSkgewpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgSFRNTFZpZGVv
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluCiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIEhUTUxNZWRp
YUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsgICAgCisgICAgICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgaWYgKG5hbWUgPT0gd2Vi
a2l0YWlycGxheUF0dHIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5k
ZXggOTBkMjg3OGJkY2FjLi5kZjdmYzJmZThjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVk
dWxlUmVzaXplRXZlbnRJZlNpemVDaGFuZ2VkKCkgZmluYWw7CiAgICAgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5k
ZXJlcnMoKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNw
cAppbmRleCA5ZDJhYjlhOGY2ODUuLjlhNWVlZjczM2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCB1bnNpZ25lZCBNYXRoTUxFbGVt
ZW50Ojpyb3dTcGFuKCkgY29uc3QKICAgICByZXR1cm4gc3RkOjptYXgoMXUsIHN0ZDo6bWluKGxp
bWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHJvd1NwYW5WYWx1ZSwgMXUpLCBtYXhSb3dzcGFuKSk7
CiB9CiAKLXZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1l
ID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2FzTGluayA9IGlzTGluaygpOwpAQCAtMTAz
LDcgKzEwMyw3IEBAIHZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIFN0eWxlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKKyAgICAgICAgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAppbmRleCBlODg5NmFhZDNkZjEuLjUy
ZjNlZmJiNDY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCkBAIC05Miw3
ICs5Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBNYXRoTUxFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0
ZU1hdGhNTEVsZW1lbnQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ODgyOWQzMWY0
ZGQuLmEwYTc5MzcwZTQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEZyYWN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZy
YWN0aW9uRWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBNYXRoTUxGcmFjdGlvbkVsZW1l
bnQ6OkZyYWN0aW9uQWxpZ25tZW50IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6ZGVub21pbmF0b3JB
bGlnbgogICAgIHJldHVybiBjYWNoZWRGcmFjdGlvbkFsaWdubWVudChkZW5vbWFsaWduQXR0ciwg
bV9kZW5vbWluYXRvckFsaWdubWVudCk7CiB9CiAKLXZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBsaW5ldGhpY2tuZXNz
QXR0cikKICAgICAgICAgbV9saW5lVGhpY2tuZXNzID0gc3RkOjpudWxsb3B0OwpAQCAtMTE4LDcg
KzExOCw3IEBAIHZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgZWxzZSBpZiAobmFtZSA9PSBk
ZW5vbWFsaWduQXR0cikKICAgICAgICAgbV9kZW5vbWluYXRvckFsaWdubWVudCA9IHN0ZDo6bnVs
bG9wdDsKIAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmgKaW5kZXggNjk1YzU4MTMyMTY5Li42
YzIwMmQ5ZWIwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFj
dGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25F
bGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxG
cmFjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
ICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIEZyYWN0aW9uQWxpZ25tZW50IGNhY2hl
ZEZyYWN0aW9uQWxpZ25tZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBzdGQ6Om9wdGlvbmFsPEZy
YWN0aW9uQWxpZ25tZW50PiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhF
bGVtZW50LmNwcAppbmRleCA1MTVjOWI5NTk1NDcuLjU4NzNjZTE0NjU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0
aE1MTWF0aD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotdm9pZCBNYXRoTUxNYXRoRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBib29sIG1hdGhWYXJpYW50QXR0cmlidXRl
ID0gbmFtZSA9PSBtYXRodmFyaWFudEF0dHI7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRl
KQpAQCAtNjMsNyArNjMsNyBAQCB2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIGlmICgobWF0
aFZhcmlhbnRBdHRyaWJ1dGUpICYmIHJlbmRlcmVyKCkpCiAgICAgICAgIE1hdGhNTFN0eWxlOjpy
ZXNvbHZlTWF0aE1MU3R5bGVUcmVlKHJlbmRlcmVyKCkpOwogCi0gICAgTWF0aE1MRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTEVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAppbmRleCAzNWM5YzFmNjk4
NjQuLmFhNjUzMGQxMTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdGV4cHIg
c3RhdGljIGF1dG8gQ3JlYXRlTWF0aE1MTWF0aEVsZW1lbnQgPSBDcmVhdGVNYXRoTUxSb3dFbGVt
ZW50IHwgTm9kZUZsYWc6Okhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrczsKICAgICBNYXRo
TUxNYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZEF0dGFj
aFJlbmRlcmVycygpIGZpbmFsOwogCiAgICAgYm9vbCBhY2NlcHRzTWF0aFZhcmlhbnRBdHRyaWJ1
dGUoKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwCmluZGV4IGNhNjI0Y2MzYmQxNC4uMTI0ZjlkYjUzYWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNw
cApAQCAtMTMzLDEyICsxMzMsMTIgQEAgYm9vbCBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6Omhhc05v
dGF0aW9uKE1lbmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykKICAgICByZXR1cm4gbV9u
b3RhdGlvbkZsYWdzLnZhbHVlKCkgJiBub3RhdGlvbkZsYWc7CiB9CiAKLXZvaWQgTWF0aE1MTWVu
Y2xvc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBu
b3RhdGlvbkF0dHIpCiAgICAgICAgIG1fbm90YXRpb25GbGFncyA9IHN0ZDo6bnVsbG9wdDsKIAot
ICAgIE1hdGhNTFJvd0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBN
YXRoTUxSb3dFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IDA1MDZiNWYwMDBmZi4uZTI4NTU5
Y2U5ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MTWVuY2xv
c2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgcGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgpOwogICAgIHZv
aWQgY2xlYXJOb3RhdGlvbnMoKSB7IG1fbm90YXRpb25GbGFncyA9IDA7IH0KICAgICB2b2lkIGFk
ZE5vdGF0aW9uKE1lbmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykgeyBtX25vdGF0aW9u
RmxhZ3MudmFsdWUoKSB8PSBub3RhdGlvbkZsYWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAKaW5kZXggZDk3Mjg4Y2RjNjM5Li4xMzhlMTA0
YWI1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1l
bnQuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5OjpGbGFnPiBhdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eUZsYWcKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi12b2lkIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gZm9ybUF0dHIpIHsKICAgICAg
ICAgbV9kaWN0aW9uYXJ5UHJvcGVydHkgPSBzdGQ6Om51bGxvcHQ7CkBAIC0yNTAsNyArMjUwLDcg
QEAgdm9pZCBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IE1hdGhNTFRva2VuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1h
dGhNTFRva2VuRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCmluZGV4IGUxYzllNjc0Y2U2OC4uYmJh
OTUxNzE1MzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0
b3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxl
bWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgTWF0aE1MT3BlcmF0b3JFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8T3BlcmF0b3JDaGFyPiBtX29wZXJhdG9y
Q2hhcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3Bw
CmluZGV4IDk0ZjJjM2UyMjExYy4uYjc1YmJiOTU5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGNvbnN0IE1h
dGhNTEVsZW1lbnQ6Okxlbmd0aCYgTWF0aE1MUGFkZGVkRWxlbWVudDo6dm9mZnNldCgpCiAgICAg
cmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6dm9mZnNldEF0dHIsIG1fdm9m
ZnNldCk7CiB9CiAKLXZvaWQgTWF0aE1MUGFkZGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1h
dGhNTFBhZGRlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgbV93aWR0aCA9IHN0ZDo6
bnVsbG9wdDsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBNYXRoTUxQYWRkZWRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICBl
bHNlIGlmIChuYW1lID09IHZvZmZzZXRBdHRyKQogICAgICAgICBtX3ZvZmZzZXQgPSBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBNYXRoTUxQYWRkZWRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCmluZGV4IDYzOTQ3ODkxZDQyYy4uZWZjZmE5
YjJjNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxQYWRkZWRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPExlbmd0aD4gbV93aWR0aDsKICAg
ICBzdGQ6Om9wdGlvbmFsPExlbmd0aD4gbV9oZWlnaHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAKaW5kZXggYjJmZWQ1MjFhZTkz
Li5hZTJjMjJhYmU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQ
cmVzZW50YXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
UHJlc2VudGF0aW9uRWxlbWVudC5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGQ6Om9wdGlvbmFs
PE1hdGhNTEVsZW1lbnQ6Ok1hdGhWYXJpYW50PiBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50Ojpz
cGVjaWZpZWRNYQogICAgIHJldHVybiBtX21hdGhWYXJpYW50LnZhbHVlKCkgPT0gTWF0aFZhcmlh
bnQ6Ok5vbmUgPyBzdGQ6Om51bGxvcHQgOiBtX21hdGhWYXJpYW50OwogfQogCi12b2lkIE1hdGhN
TFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxQcmVzZW50YXRpb25F
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBi
b29sIG1hdGhWYXJpYW50QXR0cmlidXRlID0gbmFtZSA9PSBtYXRodmFyaWFudEF0dHIgJiYgYWNj
ZXB0c01hdGhWYXJpYW50QXR0cmlidXRlKCk7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRl
KQpAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICBpZiAoKG1h
dGhWYXJpYW50QXR0cmlidXRlKSAmJiByZW5kZXJlcigpKQogICAgICAgICBNYXRoTUxTdHlsZTo6
cmVzb2x2ZU1hdGhNTFN0eWxlVHJlZShyZW5kZXJlcigpKTsKIAotICAgIE1hdGhNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBy
ZXNlbnRhdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50
YXRpb25FbGVtZW50LmgKaW5kZXggNzU2MWI5ZjMxMTk1Li43NTA4MDQzN2VhMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3RleHByIHN0YXRpYyBh
dXRvIENyZWF0ZU1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQgPSBDcmVhdGVNYXRoTUxFbGVtZW50
OwogICAgIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlTWF0aE1MUHJlc2VudGF0
aW9uRWxlbWVudCk7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogCiAgICAgc3RhdGljIGJvb2wgaXNQaHJhc2luZ0NvbnRlbnQoY29uc3QgTm9kZSYpOwogICAg
IHN0YXRpYyBib29sIGlzRmxvd0NvbnRlbnQoY29uc3QgTm9kZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAKaW5kZXggMDY0ZWEwODlmOWNhLi40
NDlmM2ZkMWU4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3Jp
cHRzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNjcmlwdHNF
bGVtZW50LmNwcApAQCAtNzcsMTQgKzc3LDE0IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0
aCYgTWF0aE1MU2NyaXB0c0VsZW1lbnQ6OnN1cGVyc2NyaXB0U2hpZnQoKQogICAgIHJldHVybiBj
YWNoZWRNYXRoTUxMZW5ndGgoc3VwZXJzY3JpcHRzaGlmdEF0dHIsIG1fc3VwZXJzY3JpcHRTaGlm
dCk7CiB9CiAKLXZvaWQgTWF0aE1MU2NyaXB0c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRo
TUxTY3JpcHRzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc3Vic2NyaXB0c2hpZnRBdHRyKQogICAgICAgICBtX3N1YnNj
cmlwdFNoaWZ0ID0gc3RkOjpudWxsb3B0OwogICAgIGVsc2UgaWYgKG5hbWUgPT0gc3VwZXJzY3Jp
cHRzaGlmdEF0dHIpCiAgICAgICAgIG1fc3VwZXJzY3JpcHRTaGlmdCA9IHN0ZDo6bnVsbG9wdDsK
IAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBN
YXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IE1hdGhNTFNjcmlwdHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmgKaW5kZXggNGFhNjMyYThkYTcwLi5jYzY5NDM5MTQ1
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IFNjcmlwdFR5cGUgbV9zY3JpcHRUeXBlOwog
ICAgIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBtX3N1YnNjcmlwdFNoaWZ0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50LmNwcAppbmRleCBkNTZlM2EwNDBkNTkuLjE0
OTczNjI1MTgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVu
dC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRo
TUxTcGFjZUVsZW1lbnQ6OmRlcHRoKCkKICAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVuZ3RoKE1h
dGhNTE5hbWVzOjpkZXB0aEF0dHIsIG1fZGVwdGgpOwogfQogCi12b2lkIE1hdGhNTFNwYWNlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTFNwYWNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQog
ICAgICAgICBtX3dpZHRoID0gc3RkOjpudWxsb3B0OwpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIE1h
dGhNTFNwYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cgogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGVwdGhBdHRyKQogICAgICAg
ICBtX2RlcHRoID0gc3RkOjpudWxsb3B0OwogCi0gICAgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTFByZXNlbnRhdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1M
U3BhY2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxT
cGFjZUVsZW1lbnQuaAppbmRleCBlZDUyNGFkYjUyY2MuLmY5M2MyMjUyOGEzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTFNwYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgc3RkOjpvcHRpb25hbDxMZW5ndGg+IG1fd2lkdGg7CiAgICAgc3RkOjpvcHRpb25hbDxMZW5n
dGg+IG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVu
ZGVyT3ZlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3Zl
ckVsZW1lbnQuY3BwCmluZGV4IDA0ZmIwMTI3OTNkZi4uMzU0Njk4MDY0ZTYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCkBAIC01OCwx
NCArNTgsMTQgQEAgY29uc3QgTWF0aE1MRWxlbWVudDo6Qm9vbGVhblZhbHVlJiBNYXRoTUxVbmRl
ck92ZXJFbGVtZW50OjphY2NlbnRVbmRlcigpCiAgICAgcmV0dXJuIGNhY2hlZEJvb2xlYW5BdHRy
aWJ1dGUoYWNjZW50dW5kZXJBdHRyLCBtX2FjY2VudFVuZGVyKTsKIH0KIAotdm9pZCBNYXRoTUxV
bmRlck92ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gYWNjZW50QXR0cikKICAgICAgICAgbV9hY2NlbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgZWxz
ZSBpZiAobmFtZSA9PSBhY2NlbnR1bmRlckF0dHIpCiAgICAgICAgIG1fYWNjZW50VW5kZXIgPSBz
dGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNYXRoTUxVbmRlck92ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oCmluZGV4IDFjY2Nh
YjcwYzc4My4uN2JlMTc4ZDQ3NmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxVbmRlck92ZXJFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBNYXRoTUxVbmRlck92ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlv
bmFsPEJvb2xlYW5WYWx1ZT4gbV9hY2NlbnQ7CiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuVmFs
dWU+IG1fYWNjZW50VW5kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBhMjll
ZDhmODg4NWEuLjRlMmUwMDUwNjYxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBA
IC03OSw3ICs3OSw3IEBAIFN0cmluZyBTVkdBRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJl
dHVybiBTVkdFbGVtZW50Ojp0aXRsZSgpOwogfQogCi12b2lkIFNWR0FFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHQUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0YXJnZXRBdHRyKSB7CiAgICAgICAg
IG1fdGFyZ2V0LT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwpAQCAtODksNyArODksNyBAQCB2
b2lkIFNWR0FFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YQogICAgICAgICAgICAgbV9yZWxMaXN0LT5hc3NvY2lhdGVk
QXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICB9CiAKLSAgICBTVkdHcmFwaGljc0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCmluZGV4IGMwODM5ZTQ1ZTNl
MS4uNDE2MzY2MDA2Zjg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaApAQCAtNDcsNyArNDcs
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeTxTVkdBRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdVUklSZWZl
cmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0
eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKaW5kZXggOTgzNmFiYjRjZTk5Li5k
YzM3ZDc3YWExYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcApAQCAtOTgsMTUgKzk4LDE0IEBAIGJvb2wgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQ6Omhhc1ZhbGlkQXR0cmlidXRlTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdBbmltYXRl
TW90aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CisgICAgU1ZHQW5pbWF0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9
PSBTVkdOYW1lczo6cGF0aEF0dHIpIHsKICAgICAgICAgbV9wYXRoID0gYnVpbGRQYXRoRnJvbVN0
cmluZyh2YWx1ZSk7CiAgICAgICAgIHVwZGF0ZUFuaW1hdGlvblBhdGgoKTsKLSAgICAgICAgcmV0
dXJuOwogICAgIH0KLQotICAgIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KICAgICAKIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpSb3RhdGVNb2Rl
IFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpyb3RhdGVNb2RlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKaW5kZXggODJkODhhMzUyYjNjLi5i
NmY5YTI2MjFhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90
aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBoYXNWYWxpZEF0dHJp
YnV0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGhhc1ZhbGlkQXR0cmlidXRlTmFt
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdGFydEFuaW1hdGlvbigpIG92ZXJyaWRlOwogICAgIHZv
aWQgc3RvcEFuaW1hdGlvbihTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCmlu
ZGV4IGQxNTNkMTRiYjg2YS4uMmUxMmU3OTY2OWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgYm9v
bCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlOjpoYXNWYWxpZEF0dHJpYnV0ZVR5
cGUoKTsKIH0KIAotdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0dHIpIHsK
ICAgICAgICAgbV90eXBlID0gU1ZHVHJhbnNmb3JtYWJsZTo6cGFyc2VUcmFuc2Zvcm1UeXBlKHZh
bHVlKS52YWx1ZV9vcihTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHX1RSQU5TRk9STV9VTktOT1dOKTsK
QEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAK
IFN0cmluZyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6YW5pbWF0ZVJhbmdlU3RyaW5nKGNv
bnN0IFN0cmluZyYgc3RyaW5nKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAppbmRleCA5OGRhNzBlMjZkNmYuLjVhZTU3ODYxZDMzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgK
QEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICAKICAgICBib29sIGhhc1Zh
bGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBmaW5hbDsKICAgICBTdHJpbmcgYW5pbWF0ZVJhbmdlU3RyaW5nKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IGZpbmFsOwogCiAgICAgU1ZHVHJhbnNmb3JtVmFsdWU6OlNWR1RyYW5zZm9ybVR5
cGUgbV90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCmlu
ZGV4IDA3MDk4NDM1MTc1OC4uMDdhNDAzYTU5ZmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0xNjMsOCArMTYzLDEwIEBAIGJvb2wgU1ZHQW5pbWF0
aW9uRWxlbWVudDo6YXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGNvbnN0IEF0dHJpYnV0
ZSYgYXR0cmliCiAgICAgcmV0dXJuIEVsZW1lbnQ6OmF0dHJpYnV0ZUNvbnRhaW5zSmF2YVNjcmlw
dFVSTChhdHRyaWJ1dGUpOwogfQogCi12b2lkIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKKyAgICBTVkdTTUlMRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBp
ZiAobmFtZSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgewogICAgICAgICAvLyBQZXIgdGhlIFNN
SUwgc3BlY2lmaWNhdGlvbiwgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGUgc3BhY2UsCiAgICAg
ICAgIC8vIGFuZCB3aGl0ZSBzcGFjZSBiZWZvcmUgYW5kIGFmdGVyIHNlbWljb2xvbiBzZXBhcmF0
b3JzLCBpcyBhbGxvd2VkIGFuZCB3aWxsIGJlIGlnbm9yZWQuCkBAIC0yMTUsNyArMjE3LDYgQEAg
dm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNW
R1NNSUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVGVzdHM6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmgKaW5kZXggZWQxZDU0YzBkNTllLi5iZDlhMmVlYTcyOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaApAQCAtODgsNyArODgsNyBAQCBw
cm90ZWN0ZWQ6CiAKICAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJik7CiAgICAgYm9vbCBhdHRyaWJ1dGVDb250YWluc0phdmFTY3JpcHRVUkwo
Y29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBTdHJpbmcgdG9WYWx1ZSgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IDY4OTE4ODEzZWY3Ny4u
NWNmZTNjZDVjZjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBA
IC01MCw3ICs1MCw3IEBAIFJlZjxTVkdDaXJjbGVFbGVtZW50PiBTVkdDaXJjbGVFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHQ2lyY2xlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lk
IFNWR0NpcmNsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDaXJjbGVFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJy
b3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTVkdDaXJj
bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9y
LCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
bmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQog
CiB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAppbmRl
eCBiZDI4NDRiZTU3MGIuLjZlMzQ0NzhiYjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xl
RWxlbWVudC5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0
eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0NpcmNsZUVsZW1lbnQsIFNW
R0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBm
aW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3Rz
Ojppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
aW5kZXggZThhZmZlN2FjMjNmLi5hZDEwNzVkZmE4Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIFJlZjxTVkdDbGlwUGF0aEVs
ZW1lbnQ+IFNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQ2xpcFBhdGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
K3ZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6Y2xpcFBhdGhVbml0c0F0dHIp
IHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVW5p
dFR5cGVzOjpTVkdVbml0VHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtNTksNyArNTksNyBA
QCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
U1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
R3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdDbGlwUGF0aEVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKaW5kZXggZWJkMjI3MjU4MDlhLi4w
ZTkwYjY3OTQ2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKQEAg
LTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBT
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQ2xpcFBhdGhFbGVtZW50LCBTVkdHcmFwaGljc0Vs
ZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5jcHAKaW5kZXggNzIxMDE4OGQwODJhLi41OTlhNWZlMzNmMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmNwcApAQCAtNDcsNyArNDcsNyBAQCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudDo6U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQoY29uc3QgUQogICAg
IH0pOwogfQogCi12b2lkIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjp0eXBlQXR0cikgewogICAgICAgICBDb21wb25lbnRUcmFuc2ZlclR5cGUgcHJvcGVydHlW
YWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENvbXBvbmVudFRyYW5zZmVyVHlwZT46OmZyb21TdHJp
bmcodmFsdWUpOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVu
Y3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaAppbmRleCBkYmZkYzliZWM4
NzYuLmU3YWQzNDBiNjNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJv
dGVjdGVkOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCwgU1ZHRWxlbWVudD47
CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29y
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKaW5k
ZXggNWM0NDA1NWU5MGZmLi4xOGNlOWRjNjdjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vy
c29yRWxlbWVudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgU1ZHQ3Vyc29yRWxlbWVudDo6flNWR0N1
cnNvckVsZW1lbnQoKQogICAgICAgICBjbGllbnQtPmN1cnNvckVsZW1lbnRSZW1vdmVkKCp0aGlz
KTsKIH0KIAotdm9pZCBTVkdDdXJzb3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQ3Vyc29y
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
U1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02OSw3ICs2OSw3IEBA
IHZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJy
b3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIFNW
R1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNl
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNv
ckVsZW1lbnQuaAppbmRleCAzYWVhZDM3MDRmOTguLjA3NmUxMmMwOGE0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCkBAIC00OSw4ICs0OSw4IEBAIHByaXZhdGU6CiAgICAg
U1ZHQ3Vyc29yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQ3Vy
c29yRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHVGVzdHMsIFNWR1VSSVJlZmVyZW5jZT47Ci0gICAg
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOworCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAxNzRhYWQ4ZWNkNmIuLjk3OTIxN2M3OTMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNDEwLDI4ICs0MTAsNiBAQCB2b2lkIFNW
R0VsZW1lbnQ6OnNldENvcnJlc3BvbmRpbmdFbGVtZW50KFNWR0VsZW1lbnQqIGNvcnJlc3BvbmRp
bmdFbGVtZW50KQogICAgICAgICBjb3JyZXNwb25kaW5nRWxlbWVudC0+ZW5zdXJlU1ZHUmFyZURh
dGEoKS5hZGRJbnN0YW5jZSgqdGhpcyk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Ci17Ci0gICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpjbGFzc0F0dHIpIHsKLSAgICAgICAgbV9j
bGFzc05hbWUtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OnRhYmluZGV4QXR0cikgewotICAgICAg
ICBpZiAodmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5
KHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIGVsc2UgaWYgKGF1dG8gb3B0aW9uYWxUYWJJbmRleCA9
IHBhcnNlSFRNTEludGVnZXIodmFsdWUpKQotICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNp
dGx5KG9wdGlvbmFsVGFiSW5kZXgudmFsdWUoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBhdXRvJiBldmVudE5hbWUgPSBIVE1MRWxlbWVudDo6ZXZlbnROYW1lRm9yRXZlbnRIYW5k
bGVyQXR0cmlidXRlKG5hbWUpOwotICAgIGlmICghZXZlbnROYW1lLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBuYW1lLCB2YWx1ZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIGJvb2wgU1ZHRWxlbWVudDo6aGF2ZUxvYWRlZFJl
cXVpcmVkUmVzb3VyY2VzKCkKIHsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5
cGU8U1ZHRWxlbWVudD4oKnRoaXMpKSB7CkBAIC02MTEsMTMgKzU4OSwyNCBAQCBib29sIFNWR0Vs
ZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0
CiAgICAgcmV0dXJuIHN2Z0NoaWxkLmlzVmFsaWQoKTsKIH0KIAotdm9pZCBTVkdFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQordm9pZCBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKLSAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSk7CisgICAgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CiAKICAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0cikKICAgICAgICAgZG9jdW1lbnQo
KS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVidWlsZEFsbEVsZW1lbnRSZWZlcmVuY2VzRm9yVGFy
Z2V0KCp0aGlzKTsKLQorICAgIGVsc2UgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpjbGFzc0F0dHIp
IHsKKyAgICAgICAgbV9jbGFzc05hbWUtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CisgICAg
fSBlbHNlIGlmIChuYW1lID09IEhUTUxOYW1lczo6dGFiaW5kZXhBdHRyKSB7CisgICAgICAgIGlm
ICh2YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHkoc3Rk
OjpudWxsb3B0KTsKKyAgICAgICAgZWxzZSBpZiAoYXV0byBvcHRpb25hbFRhYkluZGV4ID0gcGFy
c2VIVE1MSW50ZWdlcih2YWx1ZSkpCisgICAgICAgICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHko
b3B0aW9uYWxUYWJJbmRleC52YWx1ZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBhdXRvJiBl
dmVudE5hbWUgPSBIVE1MRWxlbWVudDo6ZXZlbnROYW1lRm9yRXZlbnRIYW5kbGVyQXR0cmlidXRl
KG5hbWUpOworICAgICAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkKKyAgICAgICAgICAgIHNl
dEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBuYW1lLCB2YWx1ZSk7CisgICAgfQog
ICAgIC8vIENoYW5nZXMgdG8gdGhlIHN0eWxlIGF0dHJpYnV0ZSBhcmUgcHJvY2Vzc2VkIGxhemls
eSAoc2VlIEVsZW1lbnQ6OmdldEF0dHJpYnV0ZSgpIGFuZCByZWxhdGVkIG1ldGhvZHMpLAogICAg
IC8vIHNvIHdlIGRvbid0IHdhbnQgY2hhbmdlcyB0byB0aGUgc3R5bGUgYXR0cmlidXRlIHRvIHJl
c3VsdCBpbiBleHRyYSB3b3JrIGhlcmUgZXhjZXB0IGludmFsaWRhdGVJbnN0YW5jZXMoKS4KICAg
ICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OnN0eWxlQXR0cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5o
CmluZGV4IDhmZmFkYmU0YTYxYy4uMTkxNWM2Y2FkNWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50
LmgKQEAgLTE3NCw3ICsxNzQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+U1ZHRWxlbWVu
dCgpOwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRy
ZW4oKSBvdmVycmlkZTsKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdW
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAppbmRleCAxYjQ3
ZjhjZTJiNWQuLmQ3ZjJjMDIxYWM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxTVkdFbGxpcHNlRWxlbWVudD4gU1ZHRWxs
aXBzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRWxsaXBzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIAotdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0VsbGlw
c2VFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTY2LDcgKzY2LDcg
QEAgdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdF
cnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOwogfQogCiB2b2lkIFNWR0VsbGlwc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuaAppbmRleCA5MjYwMmNmMWRjZTYuLmRhMGExMjRhYWNmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8
U1ZHRWxsaXBzZUVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDcxZmY3ZGNiYmJhNi4uMTg4YTk4NDRiNjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKQEAgLTQ4LDggKzQ4LDggQEAg
UmVmPFNWR0ZFQmxlbmRFbGVtZW50PiBTVkdGRUJsZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIEQKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
RUJsZW5kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQotICAgIAotdm9pZCBTVkdGRUJs
ZW5kRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCisKK3ZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjptb2RlQXR0cikgewogICAgICAgICBCbGVuZE1vZGUgbW9kZSA9IEJsZW5kTW9kZTo6Tm9y
bWFsOwpAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRUJsZW5kRWxlbWVu
dDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmgKaW5kZXggY2Y1MTQ2MWFhYmM3Li5jYTFmOGNjNTQ1NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2lu
ZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFQmxlbmRF
bGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50LmNwcAppbmRleCBlNTE5MjM2YTIyOGQuLjU3OTMwMDdkNzk0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCkBAIC01OCw3
ICs1OCw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OmlzSW52YWxpZFZhbHVlc0xl
bmd0aCgpIGNvbnN0CiAgICAgICAgIHx8IChmaWx0ZXJUeXBlID09IEZFQ09MT1JNQVRSSVhfVFlQ
RV9TQVRVUkFURSAgJiYgc2l6ZSAhPSAxKTsKIH0KIAotdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6dHlwZUF0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlU
cmFpdHM8Q29sb3JNYXRyaXhUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC03Nyw3ICs3Nyw3
IEBAIHZvaWQgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOwogfQogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRGaWx0ZXJF
ZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQu
aAppbmRleCAyYWE2YjMxNDMwNzcuLjJiNTliZmMzNTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgaXNJbnZhbGlkVmFsdWVzTGVuZ3RoKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRy
YW5zZmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuY3BwCmluZGV4IGY2MDIxYWQ0NjU3ZS4uZmM1NWQ3OWY2MzEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5j
cHAKQEAgLTUxLDE0ICs1MSwxNCBAQCBSZWY8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+
IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUQogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Omlu
QXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRy
YW5zZmVyRWxlbWVudC5oCmluZGV4IGJmNWFkOWQwNTJlYy4uM2UzNGYwMTJlM2EzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaApA
QCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCwg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPEF0b21TdHJp
bmc+IGZpbHRlckVmZmVjdElucHV0c05hbWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyBB
dG9tU3RyaW5nIHsgaW4xKCkgfSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
c2l0ZUVsZW1lbnQuY3BwCmluZGV4IGVlOTQxZGM0ODg3OS4uZTY2NDZmMDA4ZDI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtNTIsNyArNTIs
NyBAQCBSZWY8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R0ZFQ29tcG9zaXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6Om9wZXJhdG9yQXR0cikgewogICAgICAgICBDb21wb3NpdGVPcGVyYXRpb25U
eXBlIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxDb21wb3NpdGVPcGVyYXRpb25U
eXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgU1ZHRkVDb21w
b3NpdGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBi
b29sIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAppbmRleCA2ZjVlZmI3NjYzMWQuLjIy
MjM2ODBjNWM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQu
aApAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lz
dHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZl
Y3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAKaW5kZXggNTQ5ZjI1ZmRiNjgyLi40NDljZmIzOWFjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBA
QCBSZWY8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFz
ZVZhbEludGVybmFsKHZhbHVlKTsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9v
bCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZp
bHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKaW5kZXggNjk3
ZDBlYzE3NTRlLi4xNmViMmM0NjE5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAKICAg
ICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGVjOGM2MjAzNTQxYy4uMjhhZTI4
NGM3ZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8U1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50PiBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaQog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCit2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKQEAg
LTc2LDcgKzc2LDcgQEAgdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCmluZGV4IGQ0MWE2ODdhZTkzZC4uY2NhMmMwZmQwZjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5oCkBAIC01Miw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgUHJv
cGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47Ci0gICAg
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKaW5kZXggYzVjMGVhMjE1M2JlLi45ODcxZmM4M2M0
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eENo
YW5uZWxTZWxlY3RvckF0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJv
cGVydHlUcmFpdHM8Q2hhbm5lbFNlbGVjdG9yVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAt
ODAsNyArODAsNyBAQCB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29ucwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
aXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKaW5kZXggNzJiMmM0YzU0ZTVlLi5iMjE3YmVlZmQ4Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0
cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJy
aWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAKaW5kZXggMzBlMzEyZDVmM2ZiLi5jMjY0YTllODc0NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAg
dm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxv
YXQgeSkKICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAotdm9p
ZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVEcm9wU2hhZG93
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
aWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpIHsKICAgICAgICAgaWYgKGF1
dG8gcmVzdWx0ID0gcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcih2YWx1ZSkpIHsKQEAgLTgyLDcg
KzgyLDcgQEAgdm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCmluZGV4IDc0NmY3MTgzMDAxNy4uM2Uy
MDA3MTg2N2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0
cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVEcm9wU2hhZG93RWxlbWVudCwgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZl
Y3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcApp
bmRleCA2OTExYjM5OTgzMTcuLjU4MDEzOWQxM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5
KQogICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCi12b2lkIFNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
aWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpIHsKICAgICAgICAgaWYgKGF1
dG8gcmVzdWx0ID0gcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcih2YWx1ZSkpIHsKQEAgLTgwLDcg
KzgwLDcgQEAgdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCmluZGV4IDg0Y2ExNTlkOGIy
Ni4uMjE1YjdkZjU2NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9w
ZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5k
ZXggMDIzM2M3NzIxOTVlLi5kNTQ3Y2ZhOWFmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
SW1hZ2VFbGVtZW50LmNwcApAQCAtMTE0LDE0ICsxMTQsMTUgQEAgdm9pZCBTVkdGRUltYWdlRWxl
bWVudDo6YnVpbGRQZW5kaW5nUmVzb3VyY2UoKQogICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxl
bWVudENoYW5nZSgpOwogfQogCi12b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogeworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CisKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0
dHIpIHsKICAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5zZXRCYXNlVmFsSW50ZXJuYWwo
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIHsgdmFsdWUgfSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAppbmRleCBkNzMzNjBlNGI1ZTYuLjIxYTk1ODMyYzM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVJbWFnZUVs
ZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHVVJJUmVmZXJl
bmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdv
cmtMb2FkTWV0cmljcyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTGlnaHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVu
dC5jcHAKaW5kZXggNmJmMmU2N2U2M2YxLi42N2Y1YThiNTY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBTVkdGRUxpZ2h0RWxl
bWVudCogU1ZHRkVMaWdodEVsZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVu
dCogc3ZnRWxlbQogICAgIHJldHVybiBudWxscHRyOwogfQogCi12b2lkIFNWR0ZFTGlnaHRFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjphemlt
dXRoQXR0cikgewogICAgICAgICBtX2F6aW11dGgtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZS50
b0Zsb2F0KCkpOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZH
RkVMaWdodEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCmluZGV4IDJhZTVk
OThjNWYxOC4uZDJiNTgzZTFiOTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVMaWdodEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1l
bnQuaApAQCAtNjUsNyArNjUsNyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVMaWdodEVsZW1l
bnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2Um
KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LmNwcAppbmRleCA3M2U3MGIwMjJhYjEuLjJhOTVjODE2NzkyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTQ4LDE0ICs0OCwxNCBAQCBSZWY8
U1ZHRkVNZXJnZU5vZGVFbGVtZW50PiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTWVyZ2VO
b2RlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBT
VkdGRU1lcmdlTm9kZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50
LmgKaW5kZXggYWEzY2Y5ZmQwMTcyLi40MDIzZTNmNGJhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVNZXJnZU5vZGVFbGVtZW50LCBTVkdFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJl
bmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAppbmRleCA4MWQ2YjcxODE5ZGQuLmJhZmMyZWM4
ZmY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNw
cApAQCAtNDksNyArNDksNyBAQCBSZWY8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi12b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRU1v
cnBob2xvZ3lFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyKSB7CiAgICAgICAgIE1v
cnBob2xvZ3lPcGVyYXRvclR5cGUgcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPE1v
cnBob2xvZ3lPcGVyYXRvclR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0RmlsdGVyRWZm
ZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCmlu
ZGV4IGFlM2I0ZjY3MTcyYi4uMTJlMThiMzZkYjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVN
b3JwaG9sb2d5RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVt
ZW50LmNwcAppbmRleCA2ODRjOWNkZjIxMmMuLjMyYjUwOGI2NGQzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFNWR0ZF
T2Zmc2V0RWxlbWVudD4gU1ZHRkVPZmZzZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRU9mZnNldEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpkeEF0dHIpIHsK
ICAgICAgICAgbV9keC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlLnRvRmxvYXQoKSk7CkBAIC02
NSw3ICs2NSw3IEBAIHZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaAppbmRleCBlNDhkMTJkYTg3YmIuLmI5YmEwNTA3MjJj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaApAQCAtNDMsNyArNDMs
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeTxTVkdGRU9mZnNldEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVm
ZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCBhNzJmMTE3
NzM4YWYuLjRkOTc4ZGZjZmE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCBSZWY8U1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbElu
dGVybmFsKHZhbHVlKTsKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb24K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVT
cGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVm
ZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCmluZGV4IDhiMTFi
NTk0NGNhOC4uMmVmM2QyNzBiZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0Jiwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwCmluZGV4IGM4NDYxZmY0NmIwMi4uYmQwYmQ1MzI2ZjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBAIC00NiwxNCArNDYsMTQgQEAgUmVmPFNW
R0ZFVGlsZUVsZW1lbnQ+IFNWR0ZFVGlsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVRpbGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAg
ICAgICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAppbmRleCAzYzc1ZGVjOTBjMWEuLjE2YWRlZTg4YTVjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHBy
aXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJl
Z2lzdHJ5PFNWR0ZFVGlsZUVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJbnB1dHNOYW1lcygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgQXRvbVN0cmluZyB7IGluMSgpIH0gfTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCmluZGV4IDZlZDU1Yzhi
ODMzZS4uOWVjNmQzNzc4MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
dXJidWxlbmNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50PiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikgewog
ICAgICAgICBUdXJidWxlbmNlVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8
VHVyYnVsZW5jZVR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg1LDcgKzg1LDcgQEAgdm9p
ZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIGJvb2wgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCmluZGV4IDBh
YjBhOWI1Yzg4Ny4uODQ1OWY4ZWZiY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAKaW5kZXggYmVkNDMyNmMxZTNjLi4yZjY4MWZhMjExNDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPFNWR0ZpbHRl
ckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGaWx0ZXJFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApA
QCAtODYsNyArODYsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVwb3J0QXR0
cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggODIzNmFjNGYy
ZDU3Li4zNWVhNzk0YTkyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApA
QCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGaWx0ZXJFbGVtZW50LCBTVkdFbGVtZW50LCBT
VkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmlu
YWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRleCAzNjQ4NWJkNDhlZWYuLjQyYTc2YTRmZDM0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMoY29uc3QKICAgICB9KTsKIH0KIAotdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNW
R1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNjMsNyArNjMsNyBAQCB2
b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogT3B0
aW9uU2V0PEZpbHRlckVmZmVjdEdlb21ldHJ5OjpGbGFncz4gU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzOjplZmZlY3RHZW9tZXRyeUZsYWdzKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaAppbmRleCA0OGQwNjQ1NmYwZGQuLjIzYzUxMjYzZDQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYs
IFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcmltaXRpdmVBdHRyaWJ1
dGVPbkNoaWxkQ2hhbmdlZChjb25zdCBFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAppbmRleCBkYjM5NTRjNGI4
ZTkuLjMxOTZlYTYxN2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUmVmPFNWR0ZvbnRGYWNlRWxlbWVudD4gU1ZHRm9udEZh
Y2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdGb250RmFjZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAotdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGb250RmFj
ZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeyAgICAK
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQgPSBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmli
dXRlTmFtZShuYW1lKTsKICAgICBpZiAocHJvcGVydHlJZCA+IDApIHsKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
LSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIFNWR0ZvbnRGYWNlRWxlbWVudDo6dW5p
dHNQZXJFbSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKaW5k
ZXggYWMxOTBmZWI1OTAyLi4xNDU3ZmUwNDZmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RmFj
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgflNWR0ZvbnRG
YWNlRWxlbWVudCgpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwog
CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IDg5MDBmNjkxOTEzYy4uNTc5NzRmY2U2MWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtNjYs
MTIgKzY2LDExIEBAIFJlZjxDU1NGb250RmFjZVNyY1Jlc291cmNlVmFsdWU+IFNWR0ZvbnRGYWNl
VXJpRWxlbWVudDo6Y3JlYXRlU3JjVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBDU1NGb250RmFj
ZVNyY1Jlc291cmNlVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKGxvY2F0aW9uKSwgZm9ybWF0LmlzRW1w
dHkoKSA/ICJzdmciX3MgOiBmb3JtYXQuc3RyaW5nKCksIExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vKTsKIH0KIAotdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdGb250RmFjZVVyaUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogeworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjpocmVmQXR0ciB8fCBuYW1lID09IFhMaW5rTmFtZXM6OmhyZWZBdHRyKQogICAgICAg
ICBsb2FkRm9udCgpOwotICAgIGVsc2UKLSAgICAgICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKaW5kZXggYmJhNjY4MWE2YzcwLi42YTg1NmY3ZmZiZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTM4LDgg
KzM4LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNWR0ZvbnRGYWNlVXJpRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2Vy
dGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAKaW5kZXggZWU5OGMwYTY2MTBmLi43OWE3MWYwNDAwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBS
ZWY8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2lu
Z0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0CiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VF
cnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsK
IH0KIAogdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNmIzNDUxODkwYzM1Li5lMDg0YzlmZWUyMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdHcmFwaGljc0Vs
ZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKaW5kZXggZTg3N2RlMzE0NDE0Li41
NmQ3NmJmYjgzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3Bw
CkBAIC0xMzMsMTYgKzEzMywxNSBAQCBib29sIFNWR0dlb21ldHJ5RWxlbWVudDo6aXNQb2ludElu
U3Ryb2tlKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR2VvbWV0cnlFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OnBhdGhMZW5ndGhBdHRyKSB7CiAgICAgICAgIG1fcGF0aExlbmd0aC0+c2V0QmFzZVZhbEludGVy
bmFsKHZhbHVlLnRvRmxvYXQoKSk7CiAgICAgICAgIGlmIChtX3BhdGhMZW5ndGgtPmJhc2VWYWwo
KSA8IDApCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBv
cnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgcGF0aCBhdHRyaWJ1dGUgPHBhdGhMZW5ndGg+
IGlzIG5vdCBhbGxvd2VkIl9zKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIFNWR0dy
YXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNW
R0dlb21ldHJ5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaAppbmRleCA2
OTFiMTkwMjAzZWEuLjdmNzU5MTU1OGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRy
eUVsZW1lbnQuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZH
R2VvbWV0cnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJl
ZjxTVkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R2x5cGhSZWZFbGVtZW50LmNwcAppbmRleCA2YjU0M2MxZWFmZWQuLjU0ZTNhYTRhMjY3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgc3RhdGljIGZsb2F0IHBhcnNlRmxvYXQoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAgICAg
cmV0dXJuIHBhcnNlTnVtYmVyKHZhbHVlKS52YWx1ZV9vcigwKTsKIH0KIAotdm9pZCBTVkdHbHlw
aFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHbHlwaFJlZkVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIC8vIEZJWE1FOiBJcyB0aGUg
ZXJyb3IgaGFuZGxpbmcgaW4gcGFyc2VGbG9hdCBjb3JyZWN0IGZvciB0aGVzZSBhdHRyaWJ1dGVz
PwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp4QXR0cikKQEAgLTczLDcgKzczLDcgQEAgdm9p
ZCBTVkdHbHlwaFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgbV9keSA9IHBhcnNlRmxvYXQodmFsdWUpOwog
ICAgIGVsc2UgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKLSAgICAgICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgICAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAppbmRleCAwZjI3ZjZiYWIxZTIuLjg2YWM1MmMx
MDcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNDYsNyAr
NDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdHbHlwaFJlZkVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJl
ZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIGZsb2F0IG1feCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dy
YWRpZW50RWxlbWVudC5jcHAKaW5kZXggNWYzNjI5MmMwNzM3Li5iOGVhZjliYWI0NTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IFNWR0dyYWRpZW50RWxlbWVudDo6U1ZHR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHR3JhZGllbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
Z3JhZGllbnRVbml0c0F0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZT46OmZyb21TdHJpbmcodmFsdWUp
OwpAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFNWR0dyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVl
LCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGll
bnRFbGVtZW50LmgKaW5kZXggOTYzZjYwNzZkZDIwLi4yMzIxNTk4ZTE0MzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgog
cHJvdGVjdGVkOgogICAgIFNWR0dyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBVbmlxdWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggNmMxMjQ2ZTliODNm
Li4zNTAxZGQwNGI4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQu
Y3BwCkBAIC0xMjksMTQgKzEyOSwxNCBAQCBBZmZpbmVUcmFuc2Zvcm0qIFNWR0dyYXBoaWNzRWxl
bWVudDo6ZW5zdXJlU3VwcGxlbWVudGFsVHJhbnNmb3JtKCkKICAgICByZXR1cm4gbV9zdXBwbGVt
ZW50YWxUcmFuc2Zvcm0uZ2V0KCk7CiB9CiAKLXZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dHJhbnNmb3JtQXR0
cikgewogICAgICAgICBtX3RyYW5zZm9ybS0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHVGVzdHM6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5oCmluZGV4IGYzZmJhNjM2MjYxZC4uMjc5MmE4ZTE5OTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoK
IHByb3RlY3RlZDoKICAgICBTVkdHcmFwaGljc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRB
dHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCBlOTNjODFlN2EzZTEuLmRmNjE5NTVjMWVhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTg5LDggKzg5LDkgQEAgYm9vbCBTVkdJbWFnZUVs
ZW1lbnQ6OnJlbmRlcmluZ1RhaW50c09yaWdpbigpIGNvbnN0CiAgICAgcmV0dXJuIGltYWdlICYm
IGltYWdlLT5yZW5kZXJpbmdUYWludHNPcmlnaW4oKTsKIH0KIAotdm9pZCBTVkdJbWFnZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBTVkdJbWFnZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7
CiAgICAgICAgIG1fcHJlc2VydmVBc3BlY3RSYXRpby0+c2V0QmFzZVZhbEludGVybmFsKFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSB7IHZhbHVlIH0pOwogICAgICAgICByZXR1cm47CkBAIC0x
MDksNyArMTEwLDYgQEAgdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcKIAogICAgIHJlcG9ydEF0dHJp
YnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFw
aGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZl
cmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5oCmluZGV4IGEyYWVmZmY0N2Q3Mi4uZDQ3MGY5ZmQyMjZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdJbWFnZUVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgdm9pZCBk
aWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQu
Y3BwCmluZGV4IDhiYzNlNWNkYmE4Mi4uOWNiOWMzZTkyOThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFNWR0xpbmVFbGVtZW50PiBT
VkdMaW5lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMaW5lRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTGlu
ZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNjYsNyArNjYsNyBA
QCB2b2lkIFNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vy
cm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVu
dC5oCmluZGV4IDY2ZGU4NWJhM2U3ZC4uYjRkNjFkNDRjNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TGluZUVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJv
cGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdMaW5lRWxlbWVudCwg
U1ZHR2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBm
aW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGZpbmFsOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVz
dHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmNwcAppbmRleCAxNWZkMmQ4OGE2NjkuLmZkOTRkZjlkMGI3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTYwLDcg
KzYwLDcgQEAgUmVmPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9p
ZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNzUsNyArNzUs
NyBAQCB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQQogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2lu
Z0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dyYWRpZW50RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dyYWRpZW50RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IGUzMWJlNGZhYjM3NS4u
ZDQ4YzYxNmRjOTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0
eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudCwgU1ZHR3JhZGllbnRFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKaW5kZXgg
MWQ0Yzg2NDc5ZGQ2Li5iMjA5ODNjMWNkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuY3BwCkBAIC05OCw5ICs5OCw5IEBAIHZvaWQgU1ZHTVBhdGhFbGVtZW50OjpyZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlCiAgICAg
ICAgIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7CiB9CiAKLXZvaWQgU1ZHTVBhdGhFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTVBhdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHVVJJUmVmZXJl
bmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuaAppbmRleCBjNzNmMmUxODdjMTIuLmVhZTI4MjUxZTE3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAg
ICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdN
UGF0aEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVz
b3VyY2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRl
eCA2MjZjNTYwMWZhYzEuLmZmNTk1OWI3MWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2Vy
RWxlbWVudDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAg
ICAgcmV0dXJuIFNWR0ZpdFRvVmlld0JveDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSh2aWV3Qm94
KCksIHByZXNlcnZlQXNwZWN0UmF0aW8oKSwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0KTsKIH0KIAot
dm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTWFya2VyRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6Om1hcmtlclVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFs
dWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKHZh
bHVlKTsKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KIAogICAgIHJl
cG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAg
ICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDQ2
MDVkY2E5OWI2Mi4uNDAzOThiYmU0ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTWFya2VyRWxlbWVudCwgU1ZHRWxl
bWVudCwgU1ZHRml0VG9WaWV3Qm94PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxk
Q2hhbmdlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmlu
ZGV4IDlkN2UyNzBiMTFhMS4uM2IzZWE1MGRjZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNr
RWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgUmVmPFNWR01hc2tFbGVtZW50PiBTVkdNYXNr
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXNrRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCi12b2lkIFNWR01hc2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTWFza0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IFNWR05hbWVzOjptYXNrVW5pdHNBdHRyKSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlW
YWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9t
U3RyaW5nKHZhbHVlKTsKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYK
IAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1
ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCBiZmNj
OWFkN2QzZjQuLjM5ZGQ3NTg2ZjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTWFza0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNW
R1Rlc3RzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAg
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IDc5ZmFmOTg5ZGM1NS4uNDliMGQ0MWVm
Y2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTUzLDE1ICs1Mywx
MyBAQCBSZWY8U1ZHUGF0aEVsZW1lbnQ+IFNWR1BhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHUGF0aEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBTVkdQYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6ZEF0dHIpIHsKICAgICAgICAgaWYgKCFtX3Bh
dGhTZWdMaXN0LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlKSkKICAgICAgICAgICAgIGRvY3VtZW50
KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVycm9yKCJQcm9ibGVtIHBhcnNpbmcgZD1c
IiIgKyB2YWx1ZSArICJcIiIpOwotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZHR2Vv
bWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZH
UGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDIyNDE2YjI1ZjQ0Ni4u
MjJhMTNkNmQ0NGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMTA4LDgg
KzEwOCw4IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR1BhdGhFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwotICAg
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29s
IGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA1YmYwNTBjMmQ1OTMu
LjRmYmVlNDhlNWNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3Bw
CkBAIC03MCw3ICs3MCw3IEBAIFJlZjxTVkdQYXR0ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHUGF0dGVybkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
dm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1BhdHRlcm5FbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFt
ZSA9PSBTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5
VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJv
bVN0cmluZyh2YWx1ZSk7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmkKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2
YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggY2NmZDZhMTc5Njc3
Li5kZmVhYzA0ODczYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBA
IC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBT
VkdGaXRUb1ZpZXdCb3gsIFNWR1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQo
Y29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKaW5kZXggYjQ1ODlhYmVkMjU4Li4yOTEyZWEzYzliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmNwcApAQCAtNDMsNyArNDMsNyBAQCBTVkdQb2x5RWxlbWVudDo6U1ZH
UG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIH0pOwogfQogCi12b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
U1ZHUG9seUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwb2ludHNBdHRyKSB7CiAgICAgICAgIGlmICgh
bV9wb2ludHMtPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUpKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lk
IFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHR2Vv
bWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0
cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmgKaW5kZXggMDI0YmE1ZGEwZGM4Li44ZGI3ZTZjMDRiZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoK
IHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdQb2x5RWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBv
dmVycmlkZTsgCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXgg
ZTZjOGY2ZmFhNzEyLi44MzNkOTExODU0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlZjxTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3Ig
cGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEEKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBu
YW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKKyAgICBTVkdHcmFkaWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2
b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuaAppbmRleCBlNjBmNGIwNWYzYTUuLjg4YmI0NjA2YTgzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsNyAr
NTQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0dyYWRpZW50RWxl
bWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCA0NDZlYWRhZWM1M2EuLmViYTNhYWY2
MzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3
IEBAIFJlZjxTVkdSZWN0RWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UmVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdSZWN0RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIFNWR1JlY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5v
RXJyb3I7CiAKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAg
IHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAK
LSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1JlY3RFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAppbmRleCA0ODYzNGZmNjJhNGEuLmVmNWViM2Ri
MTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHUmVjdEVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikg
ZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAppbmRleCAyZWVlYTAxNzk5ZmUuLmU5NjFmZWRhODhhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFNW
R1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKQogICAgICAgICBkb2N1bWVudCgp
LnJlbmRlclZpZXcoKS0+cmVwYWludCgpOwogfQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBTVkdTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAg
aWYgKCFuZWFyZXN0Vmlld3BvcnRFbGVtZW50KCkgJiYgaXNDb25uZWN0ZWQoKSkgewogICAgICAg
ICAvLyBGb3IgdGhlc2UgZXZlbnRzLCB0aGUgb3V0ZXJtb3N0IDxzdmc+IGVsZW1lbnQgd29ya3Mg
bGlrZSBhIDxib2R5PiBlbGVtZW50IGRvZXMsCiAgICAgICAgIC8vIHNldHRpbmcgY2VydGFpbiBl
dmVudCBoYW5kbGVycyBkaXJlY3RseSBvbiB0aGUgd2luZG93IG9iamVjdC4KQEAgLTIyMCw3ICsy
MjIsNiBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJz
aW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94Ojpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXgg
MjgzNGViOTZjYzc2Li5mYzNjZTBlYjA0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
aApAQCAtMTI0LDggKzEyNCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVu
dCgpOwogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdp
c3RyeTxTVkdTVkdFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveD47
Ci0gICAgCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmNwcAppbmRleCAyMGNiYzhhODMxY2UuLmI0MzRhOGFlM2YxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtNDQsOSArNDQsOSBAQCBSZWY8U1ZH
U2NyaXB0RWxlbWVudD4gU1ZHU2NyaXB0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1NjcmlwdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQsIGluc2VydGVkQnlQYXJzZXIsIGZhbHNlKSk7CiB9CiAKLXZv
aWQgU1ZHU2NyaXB0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIFNWR0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggOTQ0Y2UwZGQyNTJlLi4y
OTI5OTE2MTMyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaApAQCAtNDEs
NyArNDEsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1By
b3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTY3JpcHRFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdVUklS
ZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAK
ICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNl
cnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BF
bGVtZW50LmNwcAppbmRleCA3ZmY5Yjk0MzQ2ZTUuLmQ1MjZlZWM1NzUzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBAIFJlZjxTVkdTdG9wRWxl
bWVudD4gU1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RvcEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdTdG9wRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IFNWR1N0b3BFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cikgewogICAgICAgICBpZiAo
dmFsdWUuZW5kc1dpdGgoJyUnKSkKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBTVkdTdG9wRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAog
dm9pZCBTVkdTdG9wRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKaW5kZXggZTRiYTk2
MDQwNmFkLi40NGI3OWIwMTM0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dG9wRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCkBA
IC00MCw3ICs0MCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1N0b3BFbGVtZW50LCBTVkdFbGVtZW50PjsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc0dy
YWRpZW50U3RvcCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggMWI0OTAxOTBjNjE5Li5iY2MyZjk4ZjE1NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFN0
cmluZyBTVkdTdHlsZUVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICByZXR1cm4gYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihTVkdOYW1lczo6dGl0bGVBdHRyKTsKIH0KIAotdm9pZCBT
VkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdTdHlsZUVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjp0aXRsZUF0dHIpIHsKICAgICAgICAgaWYgKHNoZWV0KCkgJiYgIWlzSW5TaGFkb3dUcmVl
KCkpCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdTdHlsZUVs
ZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVt
ZW50LmgKaW5kZXggZGRlYmRhY2YzNDVlLi4xNGZlNzNkYmM3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3R5bGVFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBTVkdTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKElu
c2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9t
QW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGNo
aWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N5bWJvbEVsZW1lbnQuY3BwCmluZGV4IDdhOTNkZjU4YzBiNS4uMTNiOTAwODk3YWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCkBAIC00NCw5ICs0NCw5IEBA
IFJlZjxTVkdTeW1ib2xFbGVtZW50PiBTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3lt
Ym9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR1N5bWJvbEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBTVkdTeW1ib2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAppbmRleCBkYjA5ZTUxMTU1YmEuLjkw
YWMyYTA4ZDJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCkBAIC0zNiw3
ICszNiw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5PFNWR1N5bWJvbEVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwg
U1ZHRml0VG9WaWV3Qm94PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBv
dmVycmlkZTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwog
CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAppbmRleCA2YjNmYTMyYmY5MDQuLjQ3NDdkNjhi
ZTAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0xNzIsMjIgKzE3
MiwyMSBAQCB2b2lkIFNWR1RSZWZFbGVtZW50OjpkZXRhY2hUYXJnZXQoKQogICAgICAgICBkb2N1
bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5hZGRQZW5kaW5nUmVzb3VyY2UodGFyZ2V0Lmlk
ZW50aWZpZXIsICp0aGlzKTsKIH0KIAotdm9pZCBTVkdUUmVmRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIFNWR1RSZWZFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKLSAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAg
ICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZv
aWQgU1ZHVFJlZkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7CisgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChhdHRyTmFtZSk7CisKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKICAgICAgICAgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKTsKICAgICAgICAg
dXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7Ci0gICAgICAgIHJldHVybjsKICAg
ICB9Ci0KLSAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGF0dHJOYW1lKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IFNWR1RSZWZFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKaW5kZXggZTY3Njk4
NmM1MmJjLi40NjA0ZmQwMTg2NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
UmVmRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCkBA
IC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1RSZWZFbGVtZW50LCBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmNwcAppbmRleCA5YzJhYTg4OGNhYzAuLmY0NzYxYTQ0OWM2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTE2MSw3ICsxNjEsNyBAQCB2
b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaQogICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6Y29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAot
dm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtMTc0LDcgKzE3NCw3
IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5n
RXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgKaW5kZXggYzc0NDU4Njc1OGQxLi5lMjE1NDBiZDdi
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgKQEAgLTk2
LDcgKzk2LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAppbmRl
eCA0MDlkN2U5YzdhOTYuLmQwYWJlZmU3NTMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRQYXRoRWxlbWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBTVkdUZXh0UGF0aEVsZW1l
bnQ6OmNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCkKICAgICByZW1vdmVFbGVtZW50UmVmZXJlbmNl
KCk7CiB9CiAKLXZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVGV4
dFBhdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsK
ICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTgxLDcgKzgx
LDcgQEAgdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgK
aW5kZXggMzU4YzkwZjkzZGUxLi42MmUzMTIzYTZkNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdUZXh0UGF0
aEVsZW1lbnQsIFNWR1RleHRDb250ZW50RWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgUmVu
ZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYm
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAppbmRleCAwOTY1ZTI4OGJjODku
LjFiNmVmMTdiMDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBTVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50OjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bQogICAgIH0pOwogfQogCi12b2lkIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpIHsK
ICAgICAgICAgbV94LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlKTsKQEAgLTc4LDcgKzc4LDcgQEAg
dm9pZCBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZH
VGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
VGV4dENvbnRlbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdUZXh0UG9zaXRp
b25pbmdFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYgc3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuaAppbmRleCA0OWQ5MTZjYTAyMjguLjk2NzkxYjc5NDMxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCkBAIC00Nyw3
ICs0Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJlZjxTVkdQcm9wZXJ0
eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVy
cmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IG92ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1VzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCmlu
ZGV4IGRlNDY0ZjRjOGU4Ny4uMDNiY2M5OTJlMmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFNWR1VzZUVsZW1lbnQ6On5TVkdVc2VFbGVtZW50
KCkKICAgICAgICAgbV9leHRlcm5hbERvY3VtZW50LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogfQog
Ci12b2lkIFNWR1VzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdVc2VFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJy
b3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBTVkdVc2VF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3Is
IG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
U1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5oCmluZGV4IDdlYzEzMjkyYTQ2Zi4uYmExMWRhYjFmMmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8
U1ZHVXNlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdVUklSZWZlcmVuY2U+OwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBS
ZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5jcHAKaW5kZXggOThmMGIyNmZjODdiLi5jNzQzZmM5OTFiZmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtNDUsOSArNDUsOSBAQCBSZWY8U1ZH
Vmlld0VsZW1lbnQ+IFNWR1ZpZXdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ZpZXdFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHVmlld0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBTVkdWaWV3RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1pvb21BbmRQYW46OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKaW5kZXggYTA0
NzFiMjRlMTUwLi5hMmM4MzhjMTJmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
CkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1ZpZXdFbGVtZW50LCBTVkdFbGVtZW50LCBT
VkdGaXRUb1ZpZXdCb3g+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2Fu
aW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9u
L1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCBiZjRlYmYwZTg4MjUuLjRjYTc5ZTVjZDBjNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKQEAg
LTQ3NSw4ICs0NzUsMTAgQEAgYm9vbCBTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuZ2V0KCkuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKIH0KIAotdm9pZCBTVkdTTUlMRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1NNSUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBT
VkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpiZWdp
bkF0dHIpIHsKICAgICAgICAgaWYgKCFtX2NvbmRpdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBkaXNjb25uZWN0Q29uZGl0aW9ucygpOwpAQCAtNDk5LDggKzUwMSw2IEBAIHZvaWQgU1ZH
U01JTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lcygpLmVuZEV2ZW50RXZlbnQsIG5hbWUsIHZhbHVlKTsKICAgICBlbHNlIGlmIChuYW1lID09
IFNWR05hbWVzOjpvbmJlZ2luQXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuYmVnaW5FdmVudEV2ZW50LCBuYW1lLCB2YWx1ZSk7Ci0gICAgZWxzZQot
ICAgICAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZv
aWQgU1ZHU01JTEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NW
R1NNSUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVt
ZW50LmgKaW5kZXggZTY3Zjk2YTllMGVlLi4wZWUwNzI4M2ExM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVi
bGljOgogICAgIFNWR1NNSUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYs
IFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKICAgICB2aXJ0dWFsIH5TVkdTTUlM
RWxlbWVudCgpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0
b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVt
b3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465838</attachid>
            <date>2023-04-10 16:30:10 -0700</date>
            <delta_ts>2023-04-10 16:46:35 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_parseAttribute_func2.patch</filename>
            <type>text/plain</type>
            <size>225880</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYzgzYjU4ZTIyMGQuLjUwODQxM2YyMGFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6
aXNJbnRlcmFjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjppbnRlcmFjdGl2ZUF0dHIpOwogfQogCi12b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTW9kZWxFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRy
KQogICAgICAgICBzb3VyY2VzQ2hhbmdlZCgpOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21vZGVsUGxheWVyKQogICAgICAgICAgICAg
bV9tb2RlbFBsYXllci0+c2V0SW50ZXJhY3Rpb25FbmFibGVkKGlzSW50ZXJhY3RpdmUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IGY0OGMzY2NlYWQ5NS4uNzAzNGIxODRiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdE
b2N1bWVudCkgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICAvLyBTdHlsZWRFbGVtZW50CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBiNGVmN2VmN2U3MjguLjc3NjY3ZGEyOGYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjA5NSw4ICsyMDk1LDYgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHBhcnNlQXR0cmlidXRlKG5hbWUsIG5ld1ZhbHVlKTsKLQog
ICAgIGRvY3VtZW50KCkuaW5jRE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChVTkxJS0VMWShp
c0RlZmluZWRDdXN0b21FbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNWViYjg2Zjk5
MjgwLi4zODg3OWU4NTk3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzA2LDkgKzMwNiw4IEBA
IHB1YmxpYzoKICAgICAgICAgTW9kaWZpZWRCeUNsb25pbmcKICAgICB9OwogCi0gICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBj
aGFuZ2VkIG9yIHJlbW92ZWQuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgeyB9
CiAKICAgICAvLyBPbmx5IGNhbGxlZCBieSB0aGUgcGFyc2VyIGltbWVkaWF0ZWx5IGFmdGVyIGVs
ZW1lbnQgY29uc3RydWN0aW9uLgogICAgIHZvaWQgcGFyc2VyU2V0QXR0cmlidXRlcyhTcGFuPGNv
bnN0IEF0dHJpYnV0ZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGQ4
ODY5MDZjZDAxMS4uZTAzZWE2ZDI1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC05NSw2ICs5NSw3IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlZEVsZW1l
bnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKQEAgLTEwMyw4ICsxMDQsNiBAQCB2
b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0KIAogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjppbmxpbmVTdHlsZUNTU09NV3JhcHBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDBlNGU0ZDhlYTI4ZC4uOGY3
MGUzMmMyN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjM0LDggKzIzNCwxMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9v
bCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aQogICAgIEhUTUxFbGVt
ZW50OjpzZXRBY3RpdmUoZG93biwgaW52YWxpZGF0aW9uU2NvcGUpOwogfQogCi12b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2Fz
TGluayA9IGlzTGluaygpOwogICAgICAgICBzZXRJc0xpbmsoIXZhbHVlLmlzTnVsbCgpICYmICFz
aG91bGRQcm9oaWJpdExpbmtzKHRoaXMpKTsKQEAgLTI0OCw4ICsyNTAsNiBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaQogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPmxv
YWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGRvY3VtZW50KCkuY29tcGxldGVVUkwocGFyc2Vk
VVJMKS5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbmFtZUF0dHIgfHwgbmFtZSA9PSB0aXRsZUF0dHIpIHsKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAg
ICAgICAvLyBVcGRhdGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBh
dHRyaWJ1dGVzIHZhbHVlcyBhcmUgc3VwcG9ydGVkLgogICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
X3MpOwpAQCAtMjY1LDggKzI2NSw2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAg
IGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDUxMjRmMWIxMDI1ZC4u
MmZjZDZlODhiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBA
IC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmNwcAppbmRleCA3NTUzOGQ1YTJmM2UuLjUyMWE5NThjNDk1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8SFRNTEFyZWFFbGVt
ZW50PiBIVE1MQXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc2hhcGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImRlZmF1bHQiX3MpKQpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRBdHRy
KSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OmludmFs
aWRhdGVDYWNoZWRSZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5k
ZXggMDMyYWFiN2YxMGMyLi43YTNjNTFlZTc4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxB
cmVhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggYWQzYjM3
NDIyZjk5Li5lOWQxZTQ4ZjFiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dGFjaG1lbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8SFRNTEltYWdlRWxl
bWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjplbmNsb3NpbmdJbWFnZUVsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBhY3Rpb25BdHRyIHx8IG5hbWUg
PT0gc3VidGl0bGVBdHRyKCkgfHwgbmFtZSA9PSB0aXRsZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0
cikgewogICAgICAgICBpZiAobV9pbm5lckxlZ2FjeUF0dGFjaG1lbnQpCkBAIC00NjUsNyArNDY1
LDcgQEAgdm9pZCBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmlu
ZygpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gYWN0
aW9uQXR0cikgewogICAgICAgICBpZiAobV9hY3Rpb25UZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCmluZGV4IGU3NmQ5OTNiN2VmMS4uMGQw
Y2Q3ZTg0NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAK
aW5kZXggODA5YjZiMDNlNDNkLi42YzliNjM4YzNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCBSZWY8SFRNTEJhc2VFbGVtZW50
PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCYXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxCYXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gaHJlZkF0dHIgfHwgbmFtZSA9PSB0YXJnZXRBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NCYXNlRWxlbWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgSFRN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MQmFzZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA1OTlhMmI5M2FmNGEuLjliNDM1YThlN2MwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAK
aW5kZXggOGZkM2VjMGI2ZWIzLi5hNmQ3OGVhZjc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShj
b25zdAogICAgIHJldHVybiBldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSwgbWFwKTsKIH0KIAotdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHZsaW5rQXR0ciB8fCBuYW1lID09IGFsaW5rQXR0ciB8fCBu
YW1lID09IGxpbmtBdHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkQ29sb3IgPSBwYXJzZUxlZ2Fj
eUNvbG9yVmFsdWUodmFsdWUpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTEJvZHlFbGVtZW50OjppbnNl
cnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKaW5kZXggMzVmMTEzNmY3YjlkLi45ZWI5MGJlNDg3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5k
ZXggMzcxNTI1OWM4ZTU1Li43MDIwZDBjODgxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCdXR0b25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAg
IFR5cGUgb2xkVHlwZSA9IG1fdHlwZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEhUTUxCdXR0
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgICAgICAgICAgICAgIGZvcm0oKS0+cmVzZXREZWZhdWx0QnV0dG9uKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggNDY4OTk3MjE4MTEyLi42NzY4OWZhNDY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGYzODZkMWVkNjJmOC4uNmQ2MzE4NTBlZWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTY3LDExICsxNjcs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQo
KTsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBhNDA2M2VlODgyYmUuLmU3NTViMDhl
NTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTU3LDcg
KzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgdm9pZCBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAwOTU3MTcwYTY4YS4uZmI0MmIyM2NkOWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3Vt
bWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlT
bG90LmdldCgpOwogfQogCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxEZXRhaWxzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gb3BlbkF0dHIpIHsKICAgICAgICAgYm9vbCBvbGRWYWx1
ZSA9IG1faXNPcGVuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgICAgICBtX2lzVG9nZ2xlRXZlbnRUYXNrUXVldWVkID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggOGM3MzdhZDA3ZmM1Li41ZDY4
MmQwMTIyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKICAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGNmZjRiNzY5MDBlNi4uNGI4ZGJk
MzRkZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY5LDggKzM2OSwx
MCBAQCBib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25z
dAogICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKCp0aGlzLCBQ
YWdlSXNFZGl0YWJsZTo6Tm8pICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgZGlyQXR0cmlidXRlQ2hh
bmdlZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApp
bmRleCA1ZWJmZjNlYmVmOTQuLjYxNjhmY2FjZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGx5Qm9yZGVy
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
Tm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSAsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCAzMDE3
YTAzYTQ4MmIuLmFlN2RkZTY0MzI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC05NSw4ICs5NSw5IEBAIHN0YXRpYyBib29sIGhhc1R5cGVPclNyYyhjb25z
dCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKICAgICByZXR1cm4gZW1iZWQuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0cikgfHwgZW1iZWQuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKTsKIH0KIAotdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlw
ZSA9IHZhbHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoaXMgYW5kIEhUTUxPYmplY3RFbGVtZW50J3MgY29ycmVzcG9uZGluZwpAQCAtMTE0LDggKzEx
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
ICFoYXNUeXBlT3JTcmMoKnRoaXMpKQogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8QXRvbVN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxB
dG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCmluZGV4IGQxNmU2NzdhMGNiOC4uY2QxZGQ2NmJkYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggODQ5ODgxMDFlNDAzLi5k
ZmQxMmM0ODBlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21Db250cm9sRWxl
bWVudHNBbmNlc3RvckRpc2FibGVkU3RhdGVVbmRlcihIVE1MRWxlbWVudCYgc3RhCiAgICAgfQog
fQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRmllbGRT
ZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBib29sIG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlID0gaGFzRGlzYWJsZWRBdHRyaWJ1dGUoKTsK
IAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmICho
YXNEaXNhYmxlZEF0dHJpYnV0ZSgpICE9IG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlKSB7CiAgICAg
ICAgIGlmIChoYXNEaXNhYmxlZEF0dHJpYnV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCBkNjcxZjg2ODUxMmQuLjJhY2I2OTU3YzUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOWZkZjYxYjRmYWZm
Li5lYjc1NjkzNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFp
CiAgICAgY2hlY2tBbmRQb3NzaWJseUNsb3NlUG9wb3ZlclN0YWNrKCk7CiB9CiAKLXZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5ld1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHBvcG92ZXJ0YXJnZXRBdHRyKQogICAgICAgICBjaGVja0Fu
ZFBvc3NpYmx5Q2xvc2VQb3BvdmVyU3RhY2soKTsKICAgICBlbHNlIHsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMmU3NDhjMjVmOTUwLi40NzhkODY2MzEwMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCAyOTViMzhjNTJmZDUuLmZjMmJkNWUwMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpy
ZXNldExpc3RlZEZvcm1Db250cm9sRWxlbWVudHMoKQogICAgICAgICBjb250cm9sLT5yZXNldCgp
OwogfQogCi12b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gYWN0aW9uQXR0cikgewogICAgICAgICBtX2F0dHJpYnV0ZXMucGFyc2VBY3Rpb24o
dmFsdWUpOwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAg
ICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJbmRl
eFdpdGhGb3JtQXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJhbmdlU3RhcnQs
IHVuc2lnbmVkIHJhbmdlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggNGQ4MTBmNDYzNjU3Li44ZjFlOWIwN2IxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9u
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA2
NThiMTRiZjMxMjQuLjljYTBkNzk3YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIGludCBIVE1MRnJhbWVFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEhUTUxGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRnJhbWVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBmcmFtZWJvcmRlckF0
dHIpIHsKICAgICAgICAgbV9mcmFtZUJvcmRlciA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZh
bHVlX29yKDApOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAg
cmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjZDg3Yzg1NDk2
MGMuLjZlNGNiODllMmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwogICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1fZnJhbWVCb3Jk
ZXIgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0IHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggY2QyNDQ5M2M3
ZDBlLi42YjM4NTc5ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6b3BlblVSTChMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdAog
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSgq
dGhpcywgbV9mcmFtZVVSTCwgZnJhbWVOYW1lLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjZG9jQXR0cikgewogICAgICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVMKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gc3JjQXR0ciAmJiAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihzcmNkb2NBdHRyKSkKICAgICAgICAgc2V0TG9jYXRpb24oc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggZDM0NWYzYjAxNjZjLi43YzcxODQwOTkzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBjYW5Mb2FkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRv
QW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCAzMjVhOWJiZDA3NDMuLjIxYzgwNzc5MDJlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC04Myw4ICs4MywxMCBAQCB2b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gcm93c0F0dHIpIHsKICAgICAgICAgLy8g
RklYTUU6IFdoYXQgaXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvIHdoZW4gcmVtb3ZpbmcgdGhpcyBh
dHRyaWJ1dGU/CiAgICAgICAgIC8vIFdoeSBub3QgdHJlYXQgaXQgdGhlIHNhbWUgd2F5IHdlIHRy
ZWF0IHNldHRpbmcgaXQgdG8gdGhlIGVtcHR5IHN0cmluZz8KQEAgLTE0NywxMiArMTQ5LDggQEAg
dm9pZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9CiAKICAgICBhdXRvJiBldmVudE5hbWUgPSBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShu
YW1lKTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgeworICAgIGlmICghZXZlbnROYW1l
LmlzTnVsbCgpKQogICAgICAgICBkb2N1bWVudCgpLnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lLCBuYW1lLCB2YWx1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKIH0KIAogYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKaW5kZXggMzdmZjFiMGY2OWIxLi45YjZlMTViYTdjNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZh
dGU6CiAgICAgY29uc3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZUhUTUxGcmFtZVNldEVsZW1lbnQg
PSBDcmVhdGVIVE1MRWxlbWVudCB8IE5vZGVGbGFnOjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxs
YmFja3M7CiAgICAgSFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggNDE4ZTA3MjVhYjY0Li5mMGY2NTA0NjJiNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQg
SFRNTElGcmFtZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
Ci12b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHNhbmRib3hBdHRyKSB7CiAgICAgICAgIGlmIChtX3NhbmRib3gpCkBAIC0xMTgsNyAr
MTE4LDcgQEAgdm9pZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgICAgIGxvYWREZWZlcnJl
ZEZyYW1lKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVu
dEJhc2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZyYW1lRWxl
bWVudEJhc2U6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5k
ZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCBmYTY1Y2E0YjM1YTkuLjg1YjQxZWNmMWRmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBw
cml2YXRlOgogICAgIEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwog
ICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI1
NzFlOGQ1N2NkZi4uMTRiY2EyNmUyZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKQEAgLTMyOSwyMyArMzI5LDEwIEBAIHN0YXRpYyBDcm9zc09yaWdpblN0YXRl
IHBhcnNlQ3Jvc3NvcmlnaW5TdGF0ZShjb25zdCBBdG9tU3RyaW5nJiBjcm9zc29yaWdpblZhbHVl
CiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3Nzb3JpZ2luVmFs
dWUsICJ1c2UtY3JlZGVudGlhbHMiX3MpID8gVXNlQ3JlZGVudGlhbHMgOiBBbm9ueW1vdXM7CiB9
CiAKLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhU
TUxJbWFnZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewotICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdW
YWx1ZSwgcmVhc29uKTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAKLSAgICBpZiAo
bmFtZSA9PSByZWZlcnJlcnBvbGljeUF0dHIgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLnJlZmVy
cmVyUG9saWN5QXR0cmlidXRlRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gb2xkUmVmZXJyZXJQ
b2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG9sZFZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJj
ZTo6UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0
eVN0cmluZyk7Ci0gICAgICAgIGF1dG8gbmV3UmVmZXJyZXJQb2xpY3kgPSBwYXJzZVJlZmVycmVy
UG9saWN5KG5ld1ZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQb2xpY3lBdHRy
aWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0gICAgICAgIGlm
IChvbGRSZWZlcnJlclBvbGljeSAhPSBuZXdSZWZlcnJlclBvbGljeSkKLSAgICAgICAgICAgIG1f
aW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2
YW50TXV0YXRpb246Olllcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNyb3Nzb3JpZ2luQXR0
cikgewotICAgICAgICBpZiAocGFyc2VDcm9zc29yaWdpblN0YXRlKG9sZFZhbHVlKSAhPSBwYXJz
ZUNyb3Nzb3JpZ2luU3RhdGUobmV3VmFsdWUpKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+
dXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoUmVsZXZhbnRNdXRhdGlvbjo6
WWVzKTsKLSAgICB9Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAg
ICAgaWYgKG5hbWUgPT0gYWx0QXR0cikgewogICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJl
bmRlcmVyKCkpKQogICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcigp
KS51cGRhdGVBbHRUZXh0KCk7CkBAIC0zNjQsMzEgKzM1MSwzNyBAQCB2b2lkIEhUTUxJbWFnZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbgogICAgICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5kTW9kZTo6Tm9ybWFsOwog
ICAgICAgICBpZiAoIXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcih2YWx1ZSwgbV9jb21w
b3NpdGVPcGVyYXRvciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2NvbXBvc2l0ZU9wZXJhdG9y
ID0gQ29tcG9zaXRlT3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgfSBlbHNlIGlmIChpc0ltYWdlTWVudUVuYWJsZWQoKSkgewotICAgICAgICBJ
bWFnZUNvbnRyb2xzTWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKLSNlbmRpZgogICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24g
bmVlZGVkIGZvciBlYWdlciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6
eUxvYWRhYmxlQXR0cmlidXRlVmFsdWUodmFsdWUpKQogICAgICAgICAgICAgbG9hZERlZmVycmVk
SW1hZ2UoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewot
ICAgICAgICAgICAgYm9vbCB3aWxsSGF2ZU5hbWUgPSAhdmFsdWUuaXNFbXB0eSgpOwotICAgICAg
ICAgICAgaWYgKG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1l
ICYmIGlzQ29ubmVjdGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50
Pihkb2N1bWVudCgpKSkgewotICAgICAgICAgICAgICAgIEhUTUxEb2N1bWVudCYgZG9jdW1lbnQg
PSBkb3duY2FzdDxIVE1MRG9jdW1lbnQ+KHRoaXMtPmRvY3VtZW50KCkpOwotICAgICAgICAgICAg
ICAgIGNvbnN0IEF0b21TdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIWlkLmlzRW1wdHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHdpbGxIYXZlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmFkZERvY3VtZW50TmFtZWRJdGVtKCppZC5pbXBsKCksICp0aGlzKTsKLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQu
cmVtb3ZlRG9jdW1lbnROYW1lZEl0ZW0oKmlkLmltcGwoKSwgKnRoaXMpOwotICAgICAgICAgICAg
ICAgIH0KKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVmZXJyZXJwb2xpY3lBdHRyICYmIGRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5yZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAg
ICAgICBhdXRvIG9sZFJlZmVycmVyUG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShvbGRWYWx1
ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9v
cihSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICBhdXRvIG5ld1JlZmVycmVy
UG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeSh2YWx1ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6
OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBvbGljeTo6RW1wdHlT
dHJpbmcpOworICAgICAgICBpZiAob2xkUmVmZXJyZXJQb2xpY3kgIT0gbmV3UmVmZXJyZXJQb2xp
Y3kpCisgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5n
UHJldmlvdXNFcnJvcihSZWxldmFudE11dGF0aW9uOjpZZXMpOworICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBjcm9zc29yaWdpbkF0dHIpIHsKKyAgICAgICAgaWYgKHBhcnNlQ3Jvc3NvcmlnaW5TdGF0
ZShvbGRWYWx1ZSkgIT0gcGFyc2VDcm9zc29yaWdpblN0YXRlKHZhbHVlKSkKKyAgICAgICAgICAg
IG1faW1hZ2VMb2FkZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJl
bGV2YW50TXV0YXRpb246Olllcyk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7
CisgICAgICAgIGJvb2wgd2lsbEhhdmVOYW1lID0gIXZhbHVlLmlzRW1wdHkoKTsKKyAgICAgICAg
aWYgKG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlz
Q29ubmVjdGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1
bWVudCgpKSkgeworICAgICAgICAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0
PEhUTUxEb2N1bWVudD4odGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBjb25zdCBBdG9t
U3RyaW5nJiBpZCA9IGdldElkQXR0cmlidXRlKCk7CisgICAgICAgICAgICBpZiAoIWlkLmlzRW1w
dHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
d2lsbEhhdmVOYW1lKQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGREb2N1bWVudE5h
bWVkSXRlbSgqaWQuaW1wbCgpLCAqdGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbSgqaWQuaW1wbCgp
LCAqdGhpcyk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2hhZE5hbWVCZWZvcmVBdHRy
aWJ1dGVDaGFuZ2VkID0gd2lsbEhhdmVOYW1lOwogICAgICAgICB9Ci0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1faGFkTmFtZUJlZm9y
ZUF0dHJpYnV0ZUNoYW5nZWQgPSB3aWxsSGF2ZU5hbWU7CiAgICAgfQorCisjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCisgICAgaWYgKGlzSW1hZ2VNZW51RW5hYmxlZCgpKQorICAgICAgICBJ
bWFnZUNvbnRyb2xzTWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKKyNlbmRpZgogfQog
CiB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OmxvYWREZWZlcnJlZEltYWdlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYWUyNWRkZjUxNzQwLi5mMzZjOWVhN2RjN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xODUsNyArMTg1LDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEZvcm1JbnRlcm5hbChSZWZQdHI8SFRNTEZvcm1FbGVt
ZW50PiYmKSBmaW5hbDsKIAogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5l
d1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVy
cmlkZTsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xs
ZWN0RXh0cmFTdHlsZUZvclByZXNlbnRhdGlvbmFsSGludHMoTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggZWFkZmQ2MTU4MzAyLi5mZGU3ZTFlNmViNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIGlubGluZSB2b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUoKQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9
CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIEFTU0VS
VChtX2lucHV0VHlwZSk7CiAgICAgUmVmIHByb3RlY3RlZElucHV0VHlwZSB7ICptX2lucHV0VHlw
ZSB9OwpAQCAtNzI5LDcgKzcyOSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAg
IHJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3VwKCk7CiAgICAgICAgIG1fbmFtZSA9IHZhbHVlOwog
ICAgICAgICBhZGRUb1JhZGlvQnV0dG9uR3JvdXAoKTsKLSAgICAgICAgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0gZWxzZSBpZiAobmFtZSA9
PSBhdXRvY29tcGxldGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZSh2YWx1ZSwgIm9mZiJfcykpIHsKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlID0g
T2ZmOwpAQCAtNzk5LDcgKzc5OSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgfQog
I2VuZGlmCiAgICAgZWxzZQotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiAKICAgICBtX2lucHV0VHlwZS0+YXR0cmlidXRlQ2hhbmdlZChu
YW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNmM3ZjJl
NTYwYTM5Li5lNzY3NzMwYTQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCkBAIC0zNzgsNyArMzc4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgYWNjZXNzS2V5QWN0
aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpIGZpbmFsOwogICAgIHZvaWQgcGFyc2VyRGlkU2V0QXR0cmlidXRlcygpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKaW5kZXggZDk1N2VkNGIxMzk1Li5jYmRjMmI5
MjJlNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkz
LDEzIEBAIHZvaWQgSFRNTExJRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTExJRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxMSUVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09
IHZhbHVlQXR0cikgewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc0xp
c3RJdGVtKCkpCiAgICAgICAgICAgICBwYXJzZVZhbHVlKHZhbHVlKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxMSUVsZW1lbnQ6OmRpZEF0
dGFjaFJlbmRlcmVycygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCmluZGV4IGZiOThl
MDc5MTExNi4uMzY5Njg4YjU3MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaApA
QCAtMzYsNyArMzYsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgYXV0byBDcmVh
dGVIVE1MTElFbGVtZW50ID0gQ3JlYXRlSFRNTEVsZW1lbnQgfCBOb2RlRmxhZzo6SGFzQ3VzdG9t
U3R5bGVSZXNvbHZlQ2FsbGJhY2tzOwogICAgIEhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZDRiNDEyNWUxMGIwLi41OTJkNzNhNTUzMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2
b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVkKQogICAg
IH0KIH0KIAotdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlm
IChuYW1lID09IHJlbEF0dHIpIHsKICAgICAgICAgYXV0byBwYXJzZWRSZWwgPSBMaW5rUmVsQXR0
cmlidXRlKGRvY3VtZW50KCksIHZhbHVlKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUodmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIEhUTUxM
aW5rRWxlbWVudDo6c2hvdWxkTG9hZExpbmsoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKaW5kZXggZjVhYmM1N2U2N2Q0Li5mOGMyYTRkN2IwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgUmVxdWVz
dFByaW9yaXR5IGZldGNoUHJpb3JpdHlIaW50KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgYm9vbCBzaG91bGRMb2FkTGlu
aygpIGZpbmFsOwogICAgIHZvaWQgcHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBF
bGVtZW50LmNwcAppbmRleCBjZDA0M2YyNWIwOWUuLjA0ZGU2ZGYxOTA1OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKQEAgLTg0LDE1ICs4NCwxNyBAQCBIVE1MSW1hZ2VF
bGVtZW50KiBIVE1MTWFwRWxlbWVudDo6aW1hZ2VFbGVtZW50KCkKICAgICByZXR1cm4gdHJlZVNj
b3BlKCkuaW1hZ2VFbGVtZW50QnlVc2VtYXAoKm1fbmFtZS5pbXBsKCkpOwogfQogCi12b2lkIEhU
TUxNYXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1hcEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKKwogICAgIC8vIEZJWE1FOiBUaGlzIGxvZ2ljIHNlZW1zIHdyb25nIGZvciBYTUwgZG9j
dW1lbnRzLgogICAgIC8vIEVpdGhlciB0aGUgaWQgb3IgbmFtZSB3aWxsIGJlIHVzZWQgZGVwZW5k
aW5nIG9uIHRoZSBvcmRlciB0aGUgYXR0cmlidXRlcyBhcmUgcGFyc2VkLgogCiAgICAgaWYgKG5h
bWUgPT0gSFRNTE5hbWVzOjppZEF0dHIgfHwgbmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKSB7
CiAgICAgICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6aWRBdHRyKSB7CiAgICAgICAgICAgICAv
LyBDYWxsIGJhc2UgY2xhc3Mgc28gdGhhdCBoYXNJRCBiaXQgZ2V0cyBzZXQuCi0gICAgICAgICAg
ICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNI
VE1MRG9jdW1lbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEw
NCwxMSArMTA2LDcgQEAgdm9pZCBIVE1MTWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgbV9uYW1lID0g
V1RGTW92ZShtYXBOYW1lKTsKICAgICAgICAgaWYgKGlzSW5UcmVlU2NvcGUoKSkKICAgICAgICAg
ICAgIHRyZWVTY29wZSgpLmFkZEltYWdlTWFwKCp0aGlzKTsKLQotICAgICAgICByZXR1cm47CiAg
ICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0K
IAogUmVmPEhUTUxDb2xsZWN0aW9uPiBIVE1MTWFwRWxlbWVudDo6YXJlYXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4IDdmN2VjZTVmZmRhMy4uM2E0MWY2YjkxNzhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTE1hcEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2Vz
dG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dC5jcHAKaW5kZXggMTBkNmEwNmYxM2E5Li5hMTc4MWY1OTIzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxl
bWVudC5jcHAKQEAgLTE0OSw5ICsxNDksOSBAQCB2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVk
Q3VzdG9tRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdgogICAg
ICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5yZW1vdmVkRnJvbUFuY2Vz
dG9yKHJlbW92YWxUeXBlLCBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKIH0KIAotdm9pZCBIVE1M
TWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTWF5
YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChpc0Zvcm1Bc3Nv
Y2lhdGVkQ3VzdG9tRWxlbWVudCgpKQogICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnRVbnNhZmUoKS5wYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1l
bnQuaAppbmRleCAwMjljMzdhZmUwODEuLmNiZmQxMDRiODM2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dC5oCkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRp
bmdOb2RlKCkgZmluYWw7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYs
IERvY3VtZW50JikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxU
eXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgZmluYWw7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZDYzNzAyYzBm
ODkuLjc0MzAyOWRiZjVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwCkBAIC03NzEsMTcgKzc3MSw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNJbnRlcmFj
dGl2ZUNvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBjb250cm9scygpOwogfQogCi12b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxlc3N2aWRl
b3BsYXliYWNrZGlzYWJsZWRBdHRyKQotICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRXaXJlbGVz
c1ZpZGVvUGxheWJhY2tEaXNhYmxlZChuZXdWYWx1ZSAhPSBudWxsQXRvbSgpKTsKLSAgICBlbHNl
Ci0jZW5kaWYKLSAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOwotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MTWVkaWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBpZEF0dHIpCiAgICAgICAgIG1faWQg
PSB2YWx1ZTsKQEAgLTgyMyw4ICs4MTMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAg
ICAgICAgaWYgKG1fbWVkaWFTZXNzaW9uKQogICAgICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNs
aWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoZmFsc2UpOwogICAgIH0KKyNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKQorICAgIGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxl
c3N2aWRlb3BsYXliYWNrZGlzYWJsZWRBdHRyKQorICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRX
aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCh2YWx1ZSAhPSBudWxsQXRvbSgpKTsKKyNlbmRp
ZgogICAgIGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGE0NTk2ZjgzYjYyNS4uNTVjODNlZDFjZDRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjQ3LDggKzY0Nyw3IEBAIHByb3Rl
Y3RlZDoKICAgICBIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50
KCk7CiAKLSAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4o
KSBvdmVycmlkZTsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCmluZGV4IGNlNzE5MWY1YzM4MS4u
YTMwODZkZjNkN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCkBA
IC02MywxMCArNjMsMTAgQEAgdm9pZCBIVE1MTWVudUVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUgdHlwZSwgQ29udGFpbmVyTm9kZSYgYW5jZXMKICAgICB9CiB9CiAKLXZv
aWQgSFRNTE1lbnVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1lbnVFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSAhPSB0
eXBlQXR0ciB8fCAhZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lbnVJdGVtRWxlbWVudEVuYWJsZWQo
KSkgewotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgYm9vbCB3YXNUb3VjaEJhck1lbnUgPSBtX2lzVG91Y2hCYXJNZW51OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKaW5kZXggMjA1YjhmNTJjNDk1Li4yNjMyYTRiMjUwOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBw
cml2YXRlOgogCiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5j
ZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVt
b3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIGJvb2wgbV9pc1RvdWNo
QmFyTWVudTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXgg
MmIwZDBiM2E4ZTQ1Li41ZjE0YmYyN2MyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5jcHAKQEAgLTkzLDI0ICs5MywxNiBAQCBjb25zdCBDb2xvciYgSFRNTE1ldGFFbGVt
ZW50Ojpjb250ZW50Q29sb3IoKQogICAgIHJldHVybiAqbV9jb250ZW50Q29sb3I7CiB9CiAKLXZv
aWQgSFRNTE1ldGFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdW
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIHJlYXNvbikKK3ZvaWQgSFRNTE1ldGFF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBI
VE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJl
YXNvbik7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCi0gICAgaWYgKCFpc0luRG9j
dW1lbnRUcmVlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuYW1lID09IG5hbWVBdHRy
KSB7Ci0gICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShvbGRWYWx1ZSwg
InRoZW1lLWNvbG9yIl9zKSAmJiAhZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmV3VmFs
dWUsICJ0aGVtZS1jb2xvciJfcykpCi0gICAgICAgICAgICBkb2N1bWVudCgpLm1ldGFFbGVtZW50
VGhlbWVDb2xvckNoYW5nZWQoKnRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi12
b2lkIEhUTUxNZXRhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUgPT0gbmFtZUF0
dHIpIHsKICAgICAgICAgcHJvY2VzcygpOworICAgICAgICBpZiAoaXNJbkRvY3VtZW50VHJlZSgp
KSB7CisgICAgICAgICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFs
dWUsICJ0aGVtZS1jb2xvciJfcykgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZh
bHVlLCAidGhlbWUtY29sb3IiX3MpKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCkubWV0YUVs
ZW1lbnRUaGVtZUNvbG9yQ2hhbmdlZCgqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTMwLDggKzEyMiw2IEBAIHZvaWQgSFRNTE1ldGFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAg
ICAgICAgIHByb2Nlc3MoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIE5vZGU6Okluc2VydGVkSW50
b0FuY2VzdG9yUmVzdWx0IEhUTUxNZXRhRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVk
VHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDFiMTI3MDdiNGI2
Yy4uNGZiMTUwZTRhYTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAg
LTQ2LDcgKzQ2LDYgQEAgcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJl
Y3RseSkgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKICAgICB2b2lkIHJlbW92
ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDE5NTMyZTNmYTI3OC4uMGI4
MzgxZTFlYTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAg
LTcxLDEyICs3MSwxMiBAQCBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuICFpczxSZW5kZXJN
ZXRlcj4ocmVuZGVyZXIoKSkgJiYgSFRNTEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIoY2hpbGQpOwogfQogCi12b2lkIEhUTUxNZXRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MTWV0ZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIgfHwgbmFtZSA9PSBtaW5BdHRyIHx8IG5hbWUg
PT0gbWF4QXR0ciB8fCBuYW1lID09IGxvd0F0dHIgfHwgbmFtZSA9PSBoaWdoQXR0ciB8fCBuYW1l
ID09IG9wdGltdW1BdHRyKQogICAgICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKICAgICBl
bHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogZG91YmxlIEhUTUxNZXRlckVs
ZW1lbnQ6Om1pbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmlu
ZGV4IDYxZjQwZmQ3ZTE5MS4uYTBlN2ZhN2ZjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCmluZGV4IDQ0ZjkxYWNlYjYzZC4u
ZjFjMGRkMzY2YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAK
QEAgLTgzLDcgKzgzLDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW0KICAgICAgICAgSFRNTEVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVl
LCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTE9MaXN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxPTGlzdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IHN0YXJ0QXR0cikgewogICAgICAgICBpbnQgb2xkU3RhcnQgPSBz
dGFydCgpOwpAQCAtOTgsNyArOTgsNyBAQCB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgICAg
ICBtX2lzUmV2ZXJzZWQgPSByZXZlcnNlZDsKICAgICAgICAgUmVuZGVyTGlzdEl0ZW06OnVwZGF0
ZUl0ZW1WYWx1ZXNGb3JPcmRlcmVkTGlzdCgqdGhpcyk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhU
TUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpzZXRTdGFydEZv
ckJpbmRpbmdzKGludCBzdGFydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgK
aW5kZXggODNkYzBiOTY5ZWQzLi5hNzJjNTg0MzY2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAg
IFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGl0ZW1Db3VudCgpIGNvbnN0OwogCi0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxI
aW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5h
bDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBiODZl
NzdhZWViNDguLjJkZjc0MzI5ZDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5jcHAKQEAgLTEwMCw4ICsxMDAsMTAgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEK
ICAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKTsKKwogICAgIGJvb2wgaW52YWxpZGF0ZVJlbmRlcmVyID0gZmFsc2U7CiAg
ICAgYm9vbCBuZWVkc1dpZGdldFVwZGF0ZSA9IGZhbHNlOwogCkBAIC0xMTcsMTAgKzExOSw4IEBA
IHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNsYXNzaWRB
dHRyKSB7CiAgICAgICAgIGludmFsaWRhdGVSZW5kZXJlciA9IHRydWU7CiAgICAgICAgIG5lZWRz
V2lkZ2V0VXBkYXRlID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfSBlbHNlCiAgICAg
ICAgIEZvcm1MaXN0ZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAg
fQogCiAgICAgaWYgKG5lZWRzV2lkZ2V0VXBkYXRlKSB7CiAgICAgICAgIHNldE5lZWRzV2lkZ2V0
VXBkYXRlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4
IDg4YzdiYzA4ZDNjZC4uNzVhYjFlYWY4ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2Jq
ZWN0RWxlbWVudC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBpbnQgZGVmYXVs
dFRhYkluZGV4KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA2ZjA0ZTUwZWJkY2IuLjg1ZTVh
ZDU2ZGY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3Bw
CkBAIC05MSw5ICs5MSw5IEBAIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgSFRNTEVsZW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZChjaGFuZ2UpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICByZWNhbGNTZWxlY3RPcHRp
b25zKCk7CiAKICAgICBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggZTI1MTk1ZDIyNTk2Li5mMzg4ZWI1MWEw
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00NCw3
ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdDsKICAgICBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRl
ZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmNwcAppbmRleCA0Mjc3MDQyMjcyOTMuLjQ0N2I3YTEz
NDc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE3
Myw3ICsxNzMsNyBAQCBpbnQgSFRNTE9wdGlvbkVsZW1lbnQ6OmluZGV4KCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxPcHRpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0
dHIpIHsKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAg
ICAvLyBoYXMgbm8gZWZmZWN0IG9uIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuCiAg
ICAgICAgIHNldFNlbGVjdGVkU3RhdGUoIXZhbHVlLmlzTnVsbCgpKTsKICAgICB9IGVsc2UKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6
OnZhbHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRl
eCA3NmE3Yzk2MTE4ODYuLjMzNmMyNzg1NmE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBtYXRjaGVzRGVmYXVsdFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIGFjY2Vzc0tleUFj
dGlvbihib29sKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3V0cHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50
LmNwcAppbmRleCA5MmQzZmYyNGExYTQuLmZjNWMxZGVjY2NjYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKQEAgLTcwLDExICs3MCwxMSBAQCBib29sIEhUTUxP
dXRwdXRFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKICAgICByZXR1cm4gSFRNTEVsZW1l
bnQ6OnN1cHBvcnRzRm9jdXMoKTsKIH0KIAotdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIEhUTUxPdXRwdXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIgJiYgbV9m
b3JUb2tlbnMpCiAgICAgICAgIG1fZm9yVG9rZW5zLT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVD
aGFuZ2VkKHZhbHVlKTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CiB9CiAKIHZvaWQgSFRNTE91dHB1dEVsZW1lbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuaAppbmRleCBiZDhjNmE4YjUxY2IuLmU3N2NjOTU4ZjEyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtNTQsNyArNTQsOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CisKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBm
aW5hbDsKICAgICBib29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIGJvb2wgaXNMYWJlbGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAwOTBk
OTAzYTdmNTIuLjQwZWFjNDlhNmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFJlbmRlclByb2dyZXNzKiBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpyZW5kZXJQcm9ncmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0
PFJlbmRlclByb2dyZXNzPihkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdXNlckFnZW50U2hh
ZG93Um9vdCgpKS5maXJzdCgpLT5yZW5kZXJlcigpKTsKIH0KIAotdm9pZCBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRy
KSB7CiAgICAgICAgIHVwZGF0ZURldGVybWluYXRlU3RhdGUoKTsKQEAgLTg1LDcgKzg1LDcgQEAg
dm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWF4QXR0cikK
ICAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1M
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQXR0YWNo
UmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5k
ZXggM2JiNDhmNzU5MTBhLi41NWFhODNjZmNmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICAgICBS
ZW5kZXJQcm9ncmVzcyogcmVuZGVyUHJvZ3Jlc3MoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXgg
MDQ3NjMzYWQ2YzJlLi5iYzQxNDVlYTc1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCkBAIC02NSwxNCArNjUsMTQgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgU2NyaXB0
RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0cikKICAg
ICAgICAgaGFuZGxlU291cmNlQXR0cmlidXRlKHZhbHVlKTsKICAgICBlbHNlIGlmIChuYW1lID09
IGFzeW5jQXR0cikKICAgICAgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKICAgICBlbHNlCi0g
ICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0
b3JSZXN1bHQgSFRNTFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlv
blR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMzFlOTEwMzI0MTA5
Li5iNTQ4ZGZhYmI4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgK
QEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJz
ZXIsIGJvb2wgYWxyZWFkeVN0YXJ0ZWQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0Fu
Y2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGRp
ZEZpbmlzaEluc2VydGluZ05vZGUoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCBkOWVhZjE0MzcyZjYuLmZiZGJkZjk2ZDJmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCBib29s
IEhUTUxTZWxlY3RFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmCiAgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFNl
bGVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc2l6ZUF0
dHIpIHsKICAgICAgICAgdW5zaWduZWQgb2xkU2l6ZSA9IG1fc2l6ZTsKQEAgLTMxMCw3ICszMTAs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0
aXBsZUF0dHIpCiAgICAgICAgIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUodmFsdWUpOwogICAgIGVs
c2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogaW50IEhUTUxTZWxlY3RFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDc1OWRhZjJiODZkOS4uZWViMWQ2
MTM5ZDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMzQs
NyArMTM0LDggQEAgcHJpdmF0ZToKICAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJv
bFN0YXRlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBGb3JtQ29udHJvbFN0YXRlJikgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CisKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKaW5kZXggM2YzNTVmYTZjZjQ1Li5jYWNk
ODI2MTgzZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBA
IC0xNTEsMTUgKzE1MSwxOCBAQCB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpzdG9wKCkKICAgICBj
YW5jZWxQZW5kaW5nRXJyb3JFdmVudCgpOwogfQogCi12b2lkIEhUTUxTb3VyY2VFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTFNvdXJjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09
IHNyY3NldEF0dHIgfHwgbmFtZSA9PSBzaXplc0F0dHIgfHwgbmFtZSA9PSBtZWRpYUF0dHIgfHwg
bmFtZSA9PSB0eXBlQXR0cikgewogICAgICAgICBpZiAobmFtZSA9PSBtZWRpYUF0dHIpCiAgICAg
ICAgICAgICBtX2NhY2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlID0gc3RkOjpudWxsb3B0OwogICAg
ICAgICBSZWZQdHIgcGFyZW50ID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAobV9zaG91bGRD
YWxsU291cmNlc0NoYW5nZWQgJiYgcGFyZW50KQogICAgICAgICAgICAgZG93bmNhc3Q8SFRNTFBp
Y3R1cmVFbGVtZW50PigqcGFyZW50KS5zb3VyY2VzQ2hhbmdlZCgpOworICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSB3aWR0aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKSB7CisgICAgICAgIGlmIChS
ZWZQdHIgcGFyZW50ID0gcGFyZW50Tm9kZSgpOyBpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVu
dCkpCisgICAgICAgICAgICBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNv
dXJjZURpbWVuc2lvbkF0dHJpYnV0ZXNDaGFuZ2VkKCp0aGlzKTsKICAgICB9CiAjaWYgRU5BQkxF
KE1PREVMX0VMRU1FTlQpCiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0ciB8fCAgbmFtZSA9PSB0eXBl
QXR0cikgewpAQCAtMTc5LDEzICsxODIsNCBAQCBjb25zdCBNUTo6TWVkaWFRdWVyeUxpc3QmIEhU
TUxTb3VyY2VFbGVtZW50OjpwYXJzZWRNZWRpYUF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdQogICAg
IHJldHVybiBtX2NhY2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlLnZhbHVlKCk7CiB9CiAKLXZvaWQg
SFRNTFNvdXJjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1Zh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotICAgIGlmIChuYW1l
ID09IHdpZHRoQXR0ciB8fCBuYW1lID09IGhlaWdodEF0dHIpIHsKLSAgICAgICAgaWYgKFJlZlB0
ciBwYXJlbnQgPSBwYXJlbnROb2RlKCk7IGlzPEhUTUxQaWN0dXJlRWxlbWVudD4ocGFyZW50KSkK
LSAgICAgICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNl
RGltZW5zaW9uQXR0cmlidXRlc0NoYW5nZWQoKnRoaXMpOwotICAgIH0KLSAgICBIVE1MRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7Ci19
Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCBmZTZmNDBk
MTIyM2QuLmVlNDJlYjU0YzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U291cmNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuaApAQCAtNTQsOSArNTQsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURP
TU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKLQotICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1Zh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IGZpbmFsOwogCiAgICAgVGFza0NhbmNlbGxhdGlvbkdyb3VwIG1fZXJyb3JFdmVudENhbmNlbGxh
dGlvbkdyb3VwOwogICAgIGJvb2wgbV9zaG91bGRDYWxsU291cmNlc0NoYW5nZWQgeyBmYWxzZSB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggMTUxZTJkZTY1
NDlhLi40MDY2Zjc0OWU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0
eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50
LmNwcApAQCAtNzYsNyArNzYsNyBAQCBSZWY8SFRNTFN0eWxlRWxlbWVudD4gSFRNTFN0eWxlRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIVE1MU3R5bGVFbGVtZW50KHN0eWxlVGFnLCBkb2N1bWVudCwgZmFsc2UpKTsKIH0KIAotdm9p
ZCBIVE1MU3R5bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFN0eWxlRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0g
dGl0bGVBdHRyICYmIHNoZWV0KCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHNoZWV0
KCktPnNldFRpdGxlKHZhbHVlKTsKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW4KICAgICAgICAgaWYgKGF1dG8qIHNjb3BlID0gbV9zdHlsZVNoZWV0T3duZXIuc3R5bGVT
Y29wZSgpKQogICAgICAgICAgICAgc2NvcGUtPmRpZENoYW5nZVN0eWxlU2hlZXRDb250ZW50cygp
OwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgSFRN
TFN0eWxlRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU3R5bGVFbGVtZW50LmgKaW5kZXggZjY5ODRjMTJkZDlhLi4zM2I0ZmI2NGEzODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgSFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0
ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAg
IHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZp
bmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGJk
ODZjOTBjMGZiZC4uNzIwNzRkNTk3OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTEyLDE2ICsxMTIsMTQgQEAgdm9pZCBIVE1MVGFibGVD
ZWxsRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWUKICAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRN
TFRhYmxlQ2VsbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVGFibGVDZWxsRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgaWYgKG5hbWUg
PT0gcm93c3BhbkF0dHIpIHsKLSAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVy
ZXIoKSkpCi0gICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJUYWJsZUNlbGw+KCpyZW5kZXJlcigp
KS5jb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb2xz
cGFuQXR0cikgeworICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKworICAg
IGlmIChuYW1lID09IHJvd3NwYW5BdHRyIHx8IG5hbWUgPT0gY29sc3BhbkF0dHIpIHsKICAgICAg
ICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkpCiAgICAgICAgICAgICBkb3du
Y2FzdDxSZW5kZXJUYWJsZUNlbGw+KCpyZW5kZXJlcigpKS5jb2xTcGFuT3JSb3dTcGFuQ2hhbmdl
ZCgpOwotICAgIH0gZWxzZQotICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0KIH0KIAogY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVy
dGllcyogSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRT
dHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmgK
aW5kZXggNWJkM2RmZTNiOGY1Li45NTNlOWFjNTRlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUNlbGxFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBIVE1MVGFibGVDZWxsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAg
ICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGlu
dHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgY29uc3QgTXV0YWJsZVN0eWxl
UHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRl
eCBlNzlhYTg5MDA1MTAuLjQ5Y2Y3ZjAzYjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNvbEVsZW1lbnQuY3BwCkBAIC03Miw4ICs3MiwxMCBAQCB2b2lkIEhUTUxUYWJsZUNv
bEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZAogICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
VGFibGVDb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFRhYmxlUGFy
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gc3BhbkF0dHIpIHsKICAg
ICAgICAgbV9zcGFuID0gY2xhbXBIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyVG9SYW5nZSh2YWx1ZSwg
bWluU3BhbiwgbWF4U3BhbiwgZGVmYXVsdFNwYW4pOwogICAgICAgICBpZiAoaXM8UmVuZGVyVGFi
bGVDb2w+KHJlbmRlcmVyKCkpKQpAQCAtODcsOCArODksNyBAQCB2b2lkIEhUTUxUYWJsZUNvbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdAogICAgICAgICAgICAgICAgICAgICBjb2wuc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhz
UmVjYWxjKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAg
SFRNTFRhYmxlUGFydEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9
CiB9CiAKIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUNvbEVsZW1lbnQ6
OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5oCmluZGV4IGVlZTdmYmNlMWI0ZC4uYWUzZDA1ZTNk
MDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaApAQCAtNDIs
NyArNDIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNvbEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAg
ICAgY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFs
SGludFN0eWxlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCA3ZGJhZjI3YjZiMjYuLjdiODBjOTg4OWQ1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC0zNjIsOCArMzYyLDEwIEBAIGJvb2wgSFRN
TFRhYmxlRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MVGFibGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBD
ZWxsQm9yZGVycyBib3JkZXJzQmVmb3JlID0gY2VsbEJvcmRlcnMoKTsKICAgICB1bnNpZ25lZCBz
aG9ydCBvbGRQYWRkaW5nID0gbV9wYWRkaW5nOwogCkBAIC0zOTgsOCArNDAwLDcgQEAgdm9pZCBI
VE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW4KICAgICAgICAgICAgIG1fcGFkZGluZyA9IDE7CiAgICAgfSBlbHNl
IGlmIChuYW1lID09IGNvbHNBdHRyKSB7CiAgICAgICAgIC8vICMjIwotICAgIH0gZWxzZQotICAg
ICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0KIAog
ICAgIGlmIChib3JkZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJzKCkgfHwgb2xkUGFkZGluZyAhPSBt
X3BhZGRpbmcpIHsKICAgICAgICAgbV9zaGFyZWRDZWxsU3R5bGUgPSBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuaAppbmRleCBiYWNmYTQ2ZGRmZjUuLjc1MTI0NTg5
OGU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTcxLDcgKzcx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0
cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggOTUwZTExODYwNjA3Li5iYmYzZWU2MTBi
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAt
MTQzLDggKzE0Myw5IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y29sbGVjdFByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkCiAgICAgICAgIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiAgICAgaWYgKG5hbWUgPT0gcm93c0F0dHIpIHsKICAgICAgICAgdW5zaWduZWQg
cm93cyA9IGxpbWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybyh2
YWx1ZSwgZGVmYXVsdFJvd3MpOwogICAgICAgICBpZiAobV9yb3dzICE9IHJvd3MpIHsKQEAgLTE4
MCw4ICsxODEsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBtaW5sZW5ndGhBdHRyKSB7CiAgICAgICAgIGludGVybmFsU2V0TWluTGVuZ3RoKHBhcnNl
SFRNTE5vbk5lZ2F0aXZlSW50ZWdlcih2YWx1ZSkudmFsdWVfb3IoLTEpKTsKICAgICAgICAgdXBk
YXRlVmFsaWRpdHkoKTsKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggNzVjNWMxMzNjZTc0Li4z
M2IyYzg0ZWUxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5o
CkBAIC05Myw3ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZp
bmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1ZjNkMDcxNmNhNzkuLjk3Y2YxYWFjMzFk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudC5jcHAKQEAgLTU0NywxNSArNTQ3LDE1IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoYm9vbCBzaG91bGRGaXJlU2VsZWN0RXZlbnQpCiB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzY2hlZHVsZVNlbGVjdEV2ZW50KCkKIHsKICAg
ICBxdWV1ZVRhc2tUb0Rpc3BhdGNoRXZlbnQoVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBF
dmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zZWxlY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6
WWVzLCBFdmVudDo6SXNDYW5jZWxhYmxlOjpObykpOwotfSAKK30KIAotdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAo
bmFtZSA9PSBwbGFjZWhvbGRlckF0dHIpIHsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0
KCk7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSgpOwogICAgIH0gZWxzZQot
ICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2
b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5k
ZXggODUxMDZhZDQ0OTk0Li5iM2QwZWJkNjVmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgYm9vbCBpc1BsYWNlaG9sZGVyRW1wdHkoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCkgPSAwOwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdl
ZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDBjOTYzZGE3Yjhj
YS4uZWRkYzk4YzhmZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFj
a0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5j
cHAKQEAgLTEwMyw3ICsxMDMsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnJlbW92ZWRGcm9t
QW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZAogICAgICAgICBk
b3duY2FzdDxIVE1MTWVkaWFFbGVtZW50PihvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKS5kaWRSZW1v
dmVUZXh0VHJhY2soKnRoaXMpOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBIVE1MVHJhY2tFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRyKSB7CiAgICAgICAgIHNjaGVkdWxl
TG9hZCgpOwpAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAg
ZWxzZSBpZiAobmFtZSA9PSBzcmNsYW5nQXR0cikKICAgICAgICAgdHJhY2soKS5zZXRMYW5ndWFn
ZSh2YWx1ZSk7CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYg
SFRNTFRyYWNrRWxlbWVudDo6a2luZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVu
dC5oCmluZGV4IDNmNDRlMGE4ZTE0YS4uZTIyNTFlMDRmYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0
IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHZpcnR1
YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGlu
c2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
ICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGJi
NDgxMWEyMDkyOS4uYWYwNGFjZDI5NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6Omhh
c1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbgog
ICAgIHJldHVybiBIVE1MTWVkaWFFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MVmlkZW9FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKICAgICBpZiAobmFtZSA9PSBwb3N0ZXJBdHRyKSB7CiAgICAgICAgIGlmIChzaG91bGRE
aXNwbGF5UG9zdGVySW1hZ2UoKSkgewpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgSFRNTFZpZGVv
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluCiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIEhUTUxNZWRp
YUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsgICAgCisgICAgICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgaWYgKG5hbWUgPT0gd2Vi
a2l0YWlycGxheUF0dHIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5k
ZXggOTBkMjg3OGJkY2FjLi5kZjdmYzJmZThjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oCkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVk
dWxlUmVzaXplRXZlbnRJZlNpemVDaGFuZ2VkKCkgZmluYWw7CiAgICAgYm9vbCByZW5kZXJlcklz
TmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5k
ZXJlcnMoKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNw
cAppbmRleCA5ZDJhYjlhOGY2ODUuLjlhNWVlZjczM2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCB1bnNpZ25lZCBNYXRoTUxFbGVt
ZW50Ojpyb3dTcGFuKCkgY29uc3QKICAgICByZXR1cm4gc3RkOjptYXgoMXUsIHN0ZDo6bWluKGxp
bWl0VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlKHJvd1NwYW5WYWx1ZSwgMXUpLCBtYXhSb3dzcGFuKSk7
CiB9CiAKLXZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1l
ID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2FzTGluayA9IGlzTGluaygpOwpAQCAtMTAz
LDcgKzEwMyw3IEBAIHZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogCi0gICAgICAgIFN0eWxlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKKyAgICAgICAgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAppbmRleCBlODg5NmFhZDNkZjEuLjUy
ZjNlZmJiNDY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCkBAIC05Miw3
ICs5Miw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBNYXRoTUxFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0
ZU1hdGhNTEVsZW1lbnQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ODgyOWQzMWY0
ZGQuLmEwYTc5MzcwZTQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEZyYWN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZy
YWN0aW9uRWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBNYXRoTUxGcmFjdGlvbkVsZW1l
bnQ6OkZyYWN0aW9uQWxpZ25tZW50IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6ZGVub21pbmF0b3JB
bGlnbgogICAgIHJldHVybiBjYWNoZWRGcmFjdGlvbkFsaWdubWVudChkZW5vbWFsaWduQXR0ciwg
bV9kZW5vbWluYXRvckFsaWdubWVudCk7CiB9CiAKLXZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBsaW5ldGhpY2tuZXNz
QXR0cikKICAgICAgICAgbV9saW5lVGhpY2tuZXNzID0gc3RkOjpudWxsb3B0OwpAQCAtMTE4LDcg
KzExOCw3IEBAIHZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgZWxzZSBpZiAobmFtZSA9PSBk
ZW5vbWFsaWduQXR0cikKICAgICAgICAgbV9kZW5vbWluYXRvckFsaWdubWVudCA9IHN0ZDo6bnVs
bG9wdDsKIAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmgKaW5kZXggNjk1YzU4MTMyMTY5Li42
YzIwMmQ5ZWIwYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFj
dGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25F
bGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxG
cmFjdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsK
ICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIEZyYWN0aW9uQWxpZ25tZW50IGNhY2hl
ZEZyYWN0aW9uQWxpZ25tZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBzdGQ6Om9wdGlvbmFsPEZy
YWN0aW9uQWxpZ25tZW50PiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MTWF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhF
bGVtZW50LmNwcAppbmRleCA1MTVjOWI5NTk1NDcuLjU4NzNjZTE0NjU5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0
aE1MTWF0aD4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotdm9pZCBNYXRoTUxNYXRoRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBib29sIG1hdGhWYXJpYW50QXR0cmlidXRl
ID0gbmFtZSA9PSBtYXRodmFyaWFudEF0dHI7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRl
KQpAQCAtNjMsNyArNjMsNyBAQCB2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIGlmICgobWF0
aFZhcmlhbnRBdHRyaWJ1dGUpICYmIHJlbmRlcmVyKCkpCiAgICAgICAgIE1hdGhNTFN0eWxlOjpy
ZXNvbHZlTWF0aE1MU3R5bGVUcmVlKHJlbmRlcmVyKCkpOwogCi0gICAgTWF0aE1MRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTEVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAppbmRleCAzNWM5YzFmNjk4
NjQuLmFhNjUzMGQxMTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1hdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdGV4cHIg
c3RhdGljIGF1dG8gQ3JlYXRlTWF0aE1MTWF0aEVsZW1lbnQgPSBDcmVhdGVNYXRoTUxSb3dFbGVt
ZW50IHwgTm9kZUZsYWc6Okhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrczsKICAgICBNYXRo
TUxNYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZEF0dGFj
aFJlbmRlcmVycygpIGZpbmFsOwogCiAgICAgYm9vbCBhY2NlcHRzTWF0aFZhcmlhbnRBdHRyaWJ1
dGUoKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxNZW5jbG9zZUVsZW1lbnQuY3BwCmluZGV4IGNhNjI0Y2MzYmQxNC4uMTI0ZjlkYjUzYWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNw
cApAQCAtMTMzLDEyICsxMzMsMTIgQEAgYm9vbCBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6Omhhc05v
dGF0aW9uKE1lbmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykKICAgICByZXR1cm4gbV9u
b3RhdGlvbkZsYWdzLnZhbHVlKCkgJiBub3RhdGlvbkZsYWc7CiB9CiAKLXZvaWQgTWF0aE1MTWVu
Y2xvc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBu
b3RhdGlvbkF0dHIpCiAgICAgICAgIG1fbm90YXRpb25GbGFncyA9IHN0ZDo6bnVsbG9wdDsKIAot
ICAgIE1hdGhNTFJvd0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBN
YXRoTUxSb3dFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IDA1MDZiNWYwMDBmZi4uZTI4NTU5
Y2U5ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVu
dC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MTWVuY2xv
c2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgcGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgpOwogICAgIHZv
aWQgY2xlYXJOb3RhdGlvbnMoKSB7IG1fbm90YXRpb25GbGFncyA9IDA7IH0KICAgICB2b2lkIGFk
ZE5vdGF0aW9uKE1lbmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykgeyBtX25vdGF0aW9u
RmxhZ3MudmFsdWUoKSB8PSBub3RhdGlvbkZsYWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5jcHAKaW5kZXggZDk3Mjg4Y2RjNjM5Li4xMzhlMTA0
YWI1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1l
bnQuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWF0aE1MT3Bl
cmF0b3JEaWN0aW9uYXJ5OjpGbGFnPiBhdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eUZsYWcKICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCi12b2lkIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gZm9ybUF0dHIpIHsKICAgICAg
ICAgbV9kaWN0aW9uYXJ5UHJvcGVydHkgPSBzdGQ6Om51bGxvcHQ7CkBAIC0yNTAsNyArMjUwLDcg
QEAgdm9pZCBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IE1hdGhNTFRva2VuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1h
dGhNTFRva2VuRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCmluZGV4IGUxYzllNjc0Y2U2OC4uYmJh
OTUxNzE1MzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0
b3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxl
bWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgTWF0aE1MT3BlcmF0b3JFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8T3BlcmF0b3JDaGFyPiBtX29wZXJhdG9y
Q2hhcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3Bw
CmluZGV4IDk0ZjJjM2UyMjExYy4uYjc1YmJiOTU5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGNvbnN0IE1h
dGhNTEVsZW1lbnQ6Okxlbmd0aCYgTWF0aE1MUGFkZGVkRWxlbWVudDo6dm9mZnNldCgpCiAgICAg
cmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6dm9mZnNldEF0dHIsIG1fdm9m
ZnNldCk7CiB9CiAKLXZvaWQgTWF0aE1MUGFkZGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1h
dGhNTFBhZGRlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgbV93aWR0aCA9IHN0ZDo6
bnVsbG9wdDsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBNYXRoTUxQYWRkZWRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICBl
bHNlIGlmIChuYW1lID09IHZvZmZzZXRBdHRyKQogICAgICAgICBtX3ZvZmZzZXQgPSBzdGQ6Om51
bGxvcHQ7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBNYXRoTUxQYWRkZWRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCmluZGV4IDYzOTQ3ODkxZDQyYy4uZWZjZmE5
YjJjNWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxQYWRkZWRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPExlbmd0aD4gbV93aWR0aDsKICAg
ICBzdGQ6Om9wdGlvbmFsPExlbmd0aD4gbV9oZWlnaHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAKaW5kZXggYjJmZWQ1MjFhZTkz
Li5hZTJjMjJhYmU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQ
cmVzZW50YXRpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
UHJlc2VudGF0aW9uRWxlbWVudC5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGQ6Om9wdGlvbmFs
PE1hdGhNTEVsZW1lbnQ6Ok1hdGhWYXJpYW50PiBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50Ojpz
cGVjaWZpZWRNYQogICAgIHJldHVybiBtX21hdGhWYXJpYW50LnZhbHVlKCkgPT0gTWF0aFZhcmlh
bnQ6Ok5vbmUgPyBzdGQ6Om51bGxvcHQgOiBtX21hdGhWYXJpYW50OwogfQogCi12b2lkIE1hdGhN
TFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxQcmVzZW50YXRpb25F
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBi
b29sIG1hdGhWYXJpYW50QXR0cmlidXRlID0gbmFtZSA9PSBtYXRodmFyaWFudEF0dHIgJiYgYWNj
ZXB0c01hdGhWYXJpYW50QXR0cmlidXRlKCk7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRl
KQpAQCAtMzcwLDcgKzM3MCw3IEBAIHZvaWQgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICBpZiAoKG1h
dGhWYXJpYW50QXR0cmlidXRlKSAmJiByZW5kZXJlcigpKQogICAgICAgICBNYXRoTUxTdHlsZTo6
cmVzb2x2ZU1hdGhNTFN0eWxlVHJlZShyZW5kZXJlcigpKTsKIAotICAgIE1hdGhNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBy
ZXNlbnRhdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50
YXRpb25FbGVtZW50LmgKaW5kZXggNzU2MWI5ZjMxMTk1Li43NTA4MDQzN2VhMTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3RleHByIHN0YXRpYyBh
dXRvIENyZWF0ZU1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQgPSBDcmVhdGVNYXRoTUxFbGVtZW50
OwogICAgIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlTWF0aE1MUHJlc2VudGF0
aW9uRWxlbWVudCk7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogCiAgICAgc3RhdGljIGJvb2wgaXNQaHJhc2luZ0NvbnRlbnQoY29uc3QgTm9kZSYpOwogICAg
IHN0YXRpYyBib29sIGlzRmxvd0NvbnRlbnQoY29uc3QgTm9kZSYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAKaW5kZXggMDY0ZWEwODlmOWNhLi40
NDlmM2ZkMWU4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3Jp
cHRzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNjcmlwdHNF
bGVtZW50LmNwcApAQCAtNzcsMTQgKzc3LDE0IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0
aCYgTWF0aE1MU2NyaXB0c0VsZW1lbnQ6OnN1cGVyc2NyaXB0U2hpZnQoKQogICAgIHJldHVybiBj
YWNoZWRNYXRoTUxMZW5ndGgoc3VwZXJzY3JpcHRzaGlmdEF0dHIsIG1fc3VwZXJzY3JpcHRTaGlm
dCk7CiB9CiAKLXZvaWQgTWF0aE1MU2NyaXB0c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRo
TUxTY3JpcHRzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc3Vic2NyaXB0c2hpZnRBdHRyKQogICAgICAgICBtX3N1YnNj
cmlwdFNoaWZ0ID0gc3RkOjpudWxsb3B0OwogICAgIGVsc2UgaWYgKG5hbWUgPT0gc3VwZXJzY3Jp
cHRzaGlmdEF0dHIpCiAgICAgICAgIG1fc3VwZXJzY3JpcHRTaGlmdCA9IHN0ZDo6bnVsbG9wdDsK
IAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBN
YXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IE1hdGhNTFNjcmlwdHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUm
JiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmgKaW5kZXggNGFhNjMyYThkYTcwLi5jYzY5NDM5MTQ1
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oCkBA
IC00Niw3ICs0Niw3IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVu
ZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJl
bmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKIAogICAgIGNvbnN0IFNjcmlwdFR5cGUgbV9zY3JpcHRUeXBlOwog
ICAgIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBtX3N1YnNjcmlwdFNoaWZ0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50LmNwcAppbmRleCBkNTZlM2EwNDBkNTkuLjE0
OTczNjI1MTgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVu
dC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRo
TUxTcGFjZUVsZW1lbnQ6OmRlcHRoKCkKICAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVuZ3RoKE1h
dGhNTE5hbWVzOjpkZXB0aEF0dHIsIG1fZGVwdGgpOwogfQogCi12b2lkIE1hdGhNTFNwYWNlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTFNwYWNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQog
ICAgICAgICBtX3dpZHRoID0gc3RkOjpudWxsb3B0OwpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIE1h
dGhNTFNwYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cgogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGVwdGhBdHRyKQogICAgICAg
ICBtX2RlcHRoID0gc3RkOjpudWxsb3B0OwogCi0gICAgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTFByZXNlbnRhdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1M
U3BhY2VFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxT
cGFjZUVsZW1lbnQuaAppbmRleCBlZDUyNGFkYjUyY2MuLmY5M2MyMjUyOGEzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTFNwYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgc3RkOjpvcHRpb25hbDxMZW5ndGg+IG1fd2lkdGg7CiAgICAgc3RkOjpvcHRpb25hbDxMZW5n
dGg+IG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVu
ZGVyT3ZlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3Zl
ckVsZW1lbnQuY3BwCmluZGV4IDA0ZmIwMTI3OTNkZi4uMzU0Njk4MDY0ZTYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCkBAIC01OCwx
NCArNTgsMTQgQEAgY29uc3QgTWF0aE1MRWxlbWVudDo6Qm9vbGVhblZhbHVlJiBNYXRoTUxVbmRl
ck92ZXJFbGVtZW50OjphY2NlbnRVbmRlcigpCiAgICAgcmV0dXJuIGNhY2hlZEJvb2xlYW5BdHRy
aWJ1dGUoYWNjZW50dW5kZXJBdHRyLCBtX2FjY2VudFVuZGVyKTsKIH0KIAotdm9pZCBNYXRoTUxV
bmRlck92ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gYWNjZW50QXR0cikKICAgICAgICAgbV9hY2NlbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgZWxz
ZSBpZiAobmFtZSA9PSBhY2NlbnR1bmRlckF0dHIpCiAgICAgICAgIG1fYWNjZW50VW5kZXIgPSBz
dGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBNYXRoTUxVbmRlck92ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVy
ZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oCmluZGV4IDFjY2Nh
YjcwYzc4My4uN2JlMTc4ZDQ3NmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxVbmRlck92ZXJFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBNYXRoTUxVbmRlck92ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRS
ZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlv
bmFsPEJvb2xlYW5WYWx1ZT4gbV9hY2NlbnQ7CiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuVmFs
dWU+IG1fYWNjZW50VW5kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBhMjll
ZDhmODg4NWEuLmVjYTYzMmNlN2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBA
IC03OSw4ICs3OSwxMCBAQCBTdHJpbmcgU1ZHQUVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICBy
ZXR1cm4gU1ZHRWxlbWVudDo6dGl0bGUoKTsKIH0KIAotdm9pZCBTVkdBRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIFNWR0FFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikKIHsKKyAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09
IFNWR05hbWVzOjp0YXJnZXRBdHRyKSB7CiAgICAgICAgIG1fdGFyZ2V0LT5zZXRCYXNlVmFsSW50
ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC04OCw5ICs5MCw2IEBAIHZvaWQgU1ZH
QUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhCiAgICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3Jl
bExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLQot
ICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAg
IFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lk
IFNWR0FFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCBjMDgzOWU0NWUzZTEuLjQxNjM2
NjAwNmY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJp
dmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHQUVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgUmVuZGVy
UHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBj
b25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCmluZGV4IDk4MzZhYmI0Y2U5OS4uZGMzN2Q3N2Fh
MWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5j
cHAKQEAgLTk4LDE1ICs5OCwxNCBAQCBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpoYXNW
YWxpZEF0dHJpYnV0ZU5hbWUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNW
R0FuaW1hdGVNb3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVl
LCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnBhdGhBdHRyKSB7CiAgICAgICAgIG1fcGF0aCA9IGJ1aWxkUGF0aEZyb21TdHJpbmcodmFs
dWUpOwogICAgICAgICB1cGRhdGVBbmltYXRpb25QYXRoKCk7Ci0gICAgICAgIHJldHVybjsKICAg
ICB9Ci0KLSAgICBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CiB9CiAgICAgCiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmlt
YXRlTW90aW9uRWxlbWVudDo6cm90YXRlTW9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oCmluZGV4IDgyZDg4YTM1MmIzYy4uYjZmOWEyNjIx
YTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApA
QCAtMzksNyArMzksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNWYWxpZEF0dHJpYnV0ZU5hbWUoKSBjb25z
dCBvdmVycmlkZTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BB
bmltYXRpb24oU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAppbmRleCBkMTUz
ZDE0YmI4NmEuLjJlMTJlNzk2NjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CiAgICAg
cmV0dXJuIFNWR0FuaW1hdGVFbGVtZW50QmFzZTo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCk7CiB9
CiAKLXZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAgICAg
IG1fdHlwZSA9IFNWR1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtVHlwZSh2YWx1ZSkudmFs
dWVfb3IoU1ZHVHJhbnNmb3JtVmFsdWU6OlNWR19UUkFOU0ZPUk1fVU5LTk9XTik7CkBAIC02Myw3
ICs2Myw3IEBAIHZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBTVkdBbmltYXRlRWxlbWVudEJhc2U6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBTdHJpbmcg
U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmFuaW1hdGVSYW5nZVN0cmluZyhjb25zdCBTdHJp
bmcmIHN0cmluZykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmgKaW5kZXggOThkYTcwZTI2ZDZmLi41YWU1Nzg2MWQzMzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC00MCw3
ICs0MCw3IEBAIHByaXZhdGU6CiAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgYm9vbCBoYXNWYWxpZEF0dHJp
YnV0ZVR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgU3RyaW5nIGFuaW1hdGVSYW5nZVN0cmluZyhjb25zdCBTdHJpbmcmKSBjb25z
dCBmaW5hbDsKIAogICAgIFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIG1fdHlw
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAwNzA5
ODQzNTE3NTguLjA3YTQwM2E1OWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmNwcApAQCAtMTYzLDggKzE2MywxMCBAQCBib29sIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OmF0dHJpYnV0ZUNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25zdCBBdHRyaWJ1dGUmIGF0dHJp
YgogICAgIHJldHVybiBFbGVtZW50OjphdHRyaWJ1dGVDb250YWluc0phdmFTY3JpcHRVUkwoYXR0
cmlidXRlKTsKIH0KIAotdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
U1ZHQW5pbWF0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CisgICAgU1ZHU01JTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpIHsKICAgICAgICAgLy8gUGVyIHRoZSBTTUlMIHNwZWNp
ZmljYXRpb24sIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlLAogICAgICAgICAvLyBh
bmQgd2hpdGUgc3BhY2UgYmVmb3JlIGFuZCBhZnRlciBzZW1pY29sb24gc2VwYXJhdG9ycywgaXMg
YWxsb3dlZCBhbmQgd2lsbCBiZSBpZ25vcmVkLgpAQCAtMjE1LDcgKzIxNyw2IEBAIHZvaWQgU1ZH
QW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdTTUlMRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1Rlc3RzOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oCmluZGV4IGVkMWQ1NGMwZDU5ZS4uYmQ5YTJlZWE3Mjk4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJvdGVjdGVk
OgogCiAgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwogICAgIGJvb2wgYXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGNvbnN0IEF0
dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogCiAgICAgU3RyaW5nIHRvVmFsdWUoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCA2ODkxODgxM2VmNzcuLjVjZmUzY2Q1
Y2Y2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApAQCAtNTAsNyAr
NTAsNyBAQCBSZWY8U1ZHQ2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR0NpcmNsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdDaXJj
bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNl
RXJyb3IgPSBOb0Vycm9yOwogCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwg
dmFsdWUpOwogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBT
VkdDaXJjbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggYmQyODQ0
YmU1NzBiLi42ZTM0NDc4YmIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQu
aApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3Ry
eSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdDaXJjbGVFbGVtZW50LCBTVkdHZW9tZXRy
eUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxp
ZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGU4
YWZmZTdhYzIzZi4uYWQxMDc1ZGZhOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBh
dGhFbGVtZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8U1ZHQ2xpcFBhdGhFbGVtZW50PiBT
VkdDbGlwUGF0aEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0NsaXBQYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNW
R0NsaXBQYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmNsaXBQYXRoVW5pdHNBdHRyKSB7CiAgICAg
ICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1VuaXRUeXBlczo6
U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBT
VkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0dyYXBo
aWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNz
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCmluZGV4IGViZDIyNzI1ODA5YS4uMGU5MGI2Nzk0
NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCkBAIC00MSw3ICs0
MSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVy
dHlPd25lclJlZ2lzdHJ5PFNWR0NsaXBQYXRoRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50PjsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hp
bGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQu
Y3BwCmluZGV4IDcyMTAxODhkMDgyYS4uNTk5YTVmZTMzZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5j
cHAKQEAgLTQ3LDcgKzQ3LDcgQEAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6
OlNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KGNvbnN0IFEKICAgICB9KTsKIH0K
IAotdm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dHlw
ZUF0dHIpIHsKICAgICAgICAgQ29tcG9uZW50VHJhbnNmZXJUeXBlIHByb3BlcnR5VmFsdWUgPSBT
VkdQcm9wZXJ0eVRyYWl0czxDb21wb25lbnRUcmFuc2ZlclR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVl
KTsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmgKaW5kZXggZGJmZGM5YmVjODc2Li5lN2Fk
MzQwYjYzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oCkBAIC05NCw3ICs5NCw3IEBAIHByb3RlY3RlZDoK
IAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogCi0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29s
IHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCmluZGV4IDVjNDQw
NTVlOTBmZi4uNzIwZTY5NjcyMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuY3BwCkBAIC01OCw3ICs1OCw3IEBAIFNWR0N1cnNvckVsZW1lbnQ6On5TVkdDdXJzb3JFbGVt
ZW50KCkKICAgICAgICAgY2xpZW50LT5jdXJzb3JFbGVtZW50UmVtb3ZlZCgqdGhpcyk7CiB9CiAK
LXZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0N1cnNvckVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNp
bmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNjksOSArNjksOSBAQCB2b2lkIFNW
R0N1cnNvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNl
RXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKLSAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwog
ICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOworICAgIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6YWRkQ2xpZW50KFN0eWxlQ3Vy
c29ySW1hZ2UmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNv
ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXgg
M2FlYWQzNzA0Zjk4Li4wNzZlMTJjMDhhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDdXJzb3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVs
ZW1lbnQuaApAQCAtNDksOCArNDksOCBAQCBwcml2YXRlOgogICAgIFNWR0N1cnNvckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBQcm9wZXJ0eVJl
Z2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0N1cnNvckVsZW1lbnQsIFNWR0Vs
ZW1lbnQsIFNWR1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OwotICAgIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVu
dC5jcHAKaW5kZXggMTc0YWFkOGVjZDZiLi45NzkyMTdjNzkzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5jcHAKQEAgLTQxMCwyOCArNDEwLDYgQEAgdm9pZCBTVkdFbGVtZW50OjpzZXRDb3Jy
ZXNwb25kaW5nRWxlbWVudChTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxlbWVudCkKICAgICAg
ICAgY29ycmVzcG9uZGluZ0VsZW1lbnQtPmVuc3VyZVNWR1JhcmVEYXRhKCkuYWRkSW5zdGFuY2Uo
KnRoaXMpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQotewotICAgIGlmIChuYW1l
ID09IEhUTUxOYW1lczo6Y2xhc3NBdHRyKSB7Ci0gICAgICAgIG1fY2xhc3NOYW1lLT5zZXRCYXNl
VmFsSW50ZXJuYWwodmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG5h
bWUgPT0gSFRNTE5hbWVzOjp0YWJpbmRleEF0dHIpIHsKLSAgICAgICAgaWYgKHZhbHVlLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIHNldFRhYkluZGV4RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOwot
ICAgICAgICBlbHNlIGlmIChhdXRvIG9wdGlvbmFsVGFiSW5kZXggPSBwYXJzZUhUTUxJbnRlZ2Vy
KHZhbHVlKSkKLSAgICAgICAgICAgIHNldFRhYkluZGV4RXhwbGljaXRseShvcHRpb25hbFRhYklu
ZGV4LnZhbHVlKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgZXZlbnRO
YW1lID0gSFRNTEVsZW1lbnQ6OmV2ZW50TmFtZUZvckV2ZW50SGFuZGxlckF0dHJpYnV0ZShuYW1l
KTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgewotICAgICAgICBzZXRBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKGV2ZW50TmFtZSwgbmFtZSwgdmFsdWUpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotfQotCiBib29sIFNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygp
CiB7CiAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFNWR0VsZW1lbnQ+KCp0
aGlzKSkgewpAQCAtNjExLDEzICs1ODksMjQgQEAgYm9vbCBTVkdFbGVtZW50OjpjaGlsZFNob3Vs
ZENyZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBzdmdD
aGlsZC5pc1ZhbGlkKCk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKK3Zv
aWQgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
Ci0gICAgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3
VmFsdWUpOworICAgIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUg
PT0gSFRNTE5hbWVzOjppZEF0dHIpCiAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5z
aW9ucygpLnJlYnVpbGRBbGxFbGVtZW50UmVmZXJlbmNlc0ZvclRhcmdldCgqdGhpcyk7Ci0KKyAg
ICBlbHNlIGlmIChuYW1lID09IEhUTUxOYW1lczo6Y2xhc3NBdHRyKSB7CisgICAgICAgIG1fY2xh
c3NOYW1lLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9
PSBIVE1MTmFtZXM6OnRhYmluZGV4QXR0cikgeworICAgICAgICBpZiAodmFsdWUuaXNFbXB0eSgp
KQorICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KHN0ZDo6bnVsbG9wdCk7CisgICAg
ICAgIGVsc2UgaWYgKGF1dG8gb3B0aW9uYWxUYWJJbmRleCA9IHBhcnNlSFRNTEludGVnZXIodmFs
dWUpKQorICAgICAgICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KG9wdGlvbmFsVGFiSW5kZXgu
dmFsdWUoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYgZXZlbnROYW1lID0gSFRNTEVs
ZW1lbnQ6OmV2ZW50TmFtZUZvckV2ZW50SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKKyAgICAgICAg
aWYgKCFldmVudE5hbWUuaXNOdWxsKCkpCisgICAgICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZSwgbmFtZSwgdmFsdWUpOworICAgIH0KICAgICAvLyBDaGFuZ2VzIHRv
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgYXJlIHByb2Nlc3NlZCBsYXppbHkgKHNlZSBFbGVtZW50Ojpn
ZXRBdHRyaWJ1dGUoKSBhbmQgcmVsYXRlZCBtZXRob2RzKSwKICAgICAvLyBzbyB3ZSBkb24ndCB3
YW50IGNoYW5nZXMgdG8gdGhlIHN0eWxlIGF0dHJpYnV0ZSB0byByZXN1bHQgaW4gZXh0cmEgd29y
ayBoZXJlIGV4Y2VwdCBpbnZhbGlkYXRlSW5zdGFuY2VzKCkuCiAgICAgaWYgKG5hbWUgPT0gSFRN
TE5hbWVzOjpzdHlsZUF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAppbmRleCA4ZmZhZGJlNGE2
MWMuLjE5MTVjNmNhZDVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xNzQsNyArMTc0
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflNWR0VsZW1lbnQoKTsKIAogICAgIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggMWI0N2Y4Y2UyYjVkLi5kN2YyYzAy
MWFjNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtNTEs
NyArNTEsNyBAQCBSZWY8U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0VsbGlwc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZH
RWxsaXBzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9y
IHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgU1ZHRWxsaXBz
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwg
bmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAog
dm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKaW5k
ZXggOTI2MDJjZjFkY2U2Li5kYTBhMTI0YWFjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9w
ZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0VsbGlwc2VFbGVtZW50
LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdU
ZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cAppbmRleCA3MWZmN2RjYmJiYTYuLjE4OGE5ODQ0YjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVCbGVuZEVsZW1lbnQuY3BwCkBAIC00OCw4ICs0OCw4IEBAIFJlZjxTVkdGRUJsZW5kRWxl
bWVudD4gU1ZHRkVCbGVuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBECiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVCbGVuZEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KLSAgICAKLXZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQorCit2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6bW9kZUF0dHIpIHsK
ICAgICAgICAgQmxlbmRNb2RlIG1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbDsKQEAgLTY4LDcgKzY4
LDcgQEAgdm9pZCBTVkdGRUJsZW5kRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVCbGVuZEVsZW1lbnQ6OnNldEZpbHRlckVmZmVj
dEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCmluZGV4IGNmNTE0NjFh
YWJjNy4uY2ExZjhjYzU0NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aApAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3Ry
eSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUJsZW5kRWxlbWVudCwgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRy
aWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAK
aW5kZXggZTUxOTIzNmEyMjhkLi41NzkzMDA3ZDc5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBib29sIFNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc0ludmFsaWRWYWx1ZXNMZW5ndGgoKSBjb25zdAogICAg
ICAgICB8fCAoZmlsdGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEUgICYmIHNp
emUgIT0gMSk7CiB9CiAKLXZvaWQgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQor
dm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAg
ICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yTWF0cml4
VHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAog
Ym9vbCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZp
bHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKaW5kZXggMmFhNmIzMTQz
MDc3Li4yYjU5YmZjMzUzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bG9yTWF0cml4RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0
cml4RWxlbWVudC5oCkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzSW52
YWxpZFZhbHVlc0xlbmd0aCgpIGNvbnN0OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0
ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApp
bmRleCBmNjAyMWFkNDY1N2UuLmZjNTVkNzlmNjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCkBAIC01MSwxNCArNTEs
MTQgQEAgUmVmPFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50PiBTVkdGRUNvbXBvbmVudFRy
YW5zZmVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12
b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVD
b21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAgICAg
bV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaApp
bmRleCBiZjVhZDlkMDUyZWMuLjNlMzRmMDEyZTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJ
bnB1dHNOYW1lcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgQXRvbVN0cmluZyB7IGluMSgp
IH0gfTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApp
bmRleCBlZTk0MWRjNDg4NzkuLmU2NjQ2ZjAwOGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUmVmPFNWR0ZFQ29t
cG9zaXRlRWxlbWVudD4gU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpvcGVy
YXRvckF0dHIpIHsKICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSBwcm9wZXJ0eVZhbHVl
ID0gU1ZHUHJvcGVydHlUcmFpdHM8Q29tcG9zaXRlT3BlcmF0aW9uVHlwZT46OmZyb21TdHJpbmco
dmFsdWUpOwpAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRUNvbXBvc2l0
ZUVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmgKaW5kZXggNmY1ZWZiNzY2MzFkLi4yMjIzNjgwYzVjNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeTxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDU0OWYyNWZk
YjY4Mi4uNDQ5Y2ZiMzlhYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50PiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1
ZSk7CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVj
dCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCmluZGV4IDY5N2QwZWMxNzU0ZS4uMTZlYjJj
NDYxOTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuaApAQCAtOTksNyArOTksNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRp
bmdFbGVtZW50LmNwcAppbmRleCBlYzhjNjIwMzU0MWMuLjI4YWUyODRjN2VmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAg
LTUxLDcgKzUxLDcgQEAgUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGkKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAotdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAg
ICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CkBAIC03Niw3ICs3Niw3IEBAIHZv
aWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiBib29sIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c2V0RmlsdGVyRWZm
ZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0Vs
ZW1lbnQuaAppbmRleCBkNDFhNjg3YWU5M2QuLmNjYTJjMGZkMGYwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaApAQCAtNTIsOCArNTIs
OCBAQCBwcml2YXRlOgogICAgIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBT
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwotICAgIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlk
ZTsKKworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRN
YXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQuY3BwCmluZGV4IGM1YzBlYTIxNTNiZS4uOTg3MWZjODNjNDMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcApAQCAtNDks
NyArNDksNyBAQCBSZWY8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50PiBTVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaQogICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
Ci12b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhDaGFubmVsU2VsZWN0b3JBdHRy
KSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENoYW5u
ZWxTZWxlY3RvclR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTgwLDcgKzgwLDcgQEAgdm9p
ZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIGJvb2wgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpzZXRGaWx0ZXJFZmZl
Y3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oCmluZGV4IDcyYjJjNGM1NGU1ZS4uYjIxN2JlZWZkOGNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCkBAIC04Niw3ICs4Niw3
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5PFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUo
RmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDMw
ZTMxMmQ1ZjNmYi4uYzI2NGE5ZTg3NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RHJvcFNoYWRvd0VsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudDo6c2V0U3RkRGV2aWF0aW9uKGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgdXBkYXRl
U1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHRkVEcm9wU2hhZG93
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjpzdGREZXZpYXRpb25BdHRyKSB7CiAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHBhcnNl
TnVtYmVyT3B0aW9uYWxOdW1iZXIodmFsdWUpKSB7CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgU1ZH
RkVEcm9wU2hhZG93RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQuaAppbmRleCA3NDZmNzE4MzAwMTcuLjNlMjAwNzE4NjdiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCkBAIC00OSw3ICs0OSw3
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5PFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggNjkxMWIzOTk4MzE3
Li41ODAxMzlkMTNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuY3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKICAgICB1cGRhdGVTVkdS
ZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAotdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjpzdGREZXZpYXRpb25BdHRyKSB7CiAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHBhcnNl
TnVtYmVyT3B0aW9uYWxOdW1iZXIodmFsdWUpKSB7CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgU1ZH
RkVHYXVzc2lhbkJsdXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuaAppbmRleCA4NGNhMTU5ZDhiMjYuLjIxNWI3ZGY1Njc0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaApAQCAt
NDksNyArNDksNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDAyMzNjNzcyMTk1ZS4u
M2JlMDczNTBjZWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAK
QEAgLTExNCwxNSArMTE0LDE1IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkUGVuZGlu
Z1Jlc291cmNlKCkKICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0K
IAotdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFSW1hZ2VFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdV
UklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpby0+c2V0QmFzZVZhbEludGVybmFsKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZSB7IHZhbHVlIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
Ci0gICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAK
IHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCmlu
ZGV4IGQ3MzM2MGU0YjVlNi4uMjFhOTU4MzJjMzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJv
cGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUltYWdlRWxlbWVu
dCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdVUklSZWZlcmVuY2U+
OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgTmV0d29ya0xv
YWRNZXRyaWNzJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVM
aWdodEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cAppbmRleCA2YmYyZTY3ZTYzZjEuLjY3ZjVhOGI1NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVMaWdodEVsZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIFNWR0ZFTGlnaHRFbGVtZW50
KiBTVkdGRUxpZ2h0RWxlbWVudDo6ZmluZExpZ2h0RWxlbWVudChjb25zdCBTVkdFbGVtZW50KiBz
dmdFbGVtCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmF6aW11dGhB
dHRyKSB7CiAgICAgICAgIG1fYXppbXV0aC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlLnRvRmxv
YXQoKSk7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdGRUxp
Z2h0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgKaW5kZXggMmFlNWQ5OGM1
ZjE4Li5kMmI1ODNlMWI5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxp
Z2h0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5o
CkBAIC02NSw3ICs2NSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUxpZ2h0RWxlbWVudCwg
U1ZHRWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92
ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3Bw
CmluZGV4IDczZTcwYjAyMmFiMS4uMmE5NWM4MTY3OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcApAQCAtNDgsMTQgKzQ4LDE0IEBAIFJlZjxTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVNZXJnZU5vZGVF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyKSB7CiAgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZF
TWVyZ2VOb2RlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaApp
bmRleCBhYTNjZjlmZDAxNzIuLjQwMjNlM2Y0YmFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlTm9kZUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRlOgogCiAgICAg
dXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRU1l
cmdlTm9kZUVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCmluZGV4IDgxZDZiNzE4MTlkZC4uYmFmYzJlYzhmZjU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBA
IC00OSw3ICs0OSw3IEBAIFJlZjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdGRU1vcnBob2xvZ3lFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
LXZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFTW9ycGhv
bG9neUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpIHsKICAgICAgICAgTW9ycGhv
bG9neU9wZXJhdG9yVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8TW9ycGhv
bG9neU9wZXJhdG9yVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtNzEsNyArNzEsNyBAQCB2
b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogYm9vbCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKaW5kZXgg
YWUzYjRmNjcxNzJiLi4xMmUxOGIzNmRiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVP
ZmZzZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
Y3BwCmluZGV4IDY4NGM5Y2RmMjEyYy4uMzJiNTA4YjY0ZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8U1ZHRkVPZmZz
ZXRFbGVtZW50PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmR4QXR0cikgewogICAg
ICAgICBtX2R4LT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUudG9GbG9hdCgpKTsKQEAgLTY1LDcg
KzY1LDcgQEAgdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFT2Zmc2V0RWxlbWVudC5oCmluZGV4IGU0OGQxMmRhODdiYi4uYjliYTA1MDcyMmM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBA
IHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0ZFT2Zmc2V0RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGE3MmYxMTc3Mzhh
Zi4uNGQ5NzhkZmNmYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFt
ZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CiAgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJu
YWwodmFsdWUpOwpAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbgogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0
JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKaW5kZXggOGIxMWI1OTQ0
Y2E4Li4yZWYzZDI3MGJkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAg
dXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5jcHAKaW5kZXggYzg0NjFmZjQ2YjAyLi5iZDBiZDUzMjZmMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBAQCBSZWY8U1ZHRkVU
aWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFVGlsZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAgICAg
ICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5oCmluZGV4IDNjNzVkZWM5MGMxYS4uMTZhZGVlODhhNWMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHRkVUaWxlRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwog
CiAgICAgVmVjdG9yPEF0b21TdHJpbmc+IGZpbHRlckVmZmVjdElucHV0c05hbWVzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4geyBBdG9tU3RyaW5nIHsgaW4xKCkgfSB9OyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggNmVkNTVjOGI4MzNl
Li45ZWM2ZDM3NzgyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1
bGVuY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+
IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAg
ICAgIFR1cmJ1bGVuY2VUeXBlIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxUdXJi
dWxlbmNlVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtODUsNyArODUsNyBAQCB2b2lkIFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFu
Z2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsK
IH0KIAogYm9vbCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgKaW5kZXggMGFiMGE5
YjVjODg3Li44NDU5ZjhlZmJjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVR1cmJ1bGVuY2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQuaApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wg
c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50
LmNwcAppbmRleCBiZWQ0MzI2YzFlM2MuLjRlMDQxYWM3OWM3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCBSZWY8U1ZHRmlsdGVyRWxl
bWVudD4gU1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZpbHRlckVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGaWx0ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRmlsdGVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC04
Niw4ICs4Niw4IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAKICAgICByZXBvcnRBdHRyaWJ1
dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApp
bmRleCA4MjM2YWM0ZjJkNTcuLjM1ZWE3OTRhOTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9w
ZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZpbHRlckVsZW1lbnQs
IFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCmluZGV4IDM2NDg1YmQ0OGVlZi4u
NDJhNzZhNGZkMzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAtNDYsNyArNDYsNyBAQCBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyhjb25zdAogICAgIH0pOwogfQogCi12b2lkIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02
Myw3ICs2Myw3IEBAIHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuCiAKICAgICByZXBvcnRBdHRyaWJ1
dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiBPcHRpb25TZXQ8RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzPiBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmVmZmVjdEdlb21ldHJ5RmxhZ3MoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IDQ4ZDA2NDU2ZjBkZC4uMjNjNTEyNjNkNDlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAg
ICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKICAgICB2b2lkIHBy
aW1pdGl2ZUF0dHJpYnV0ZU9uQ2hpbGRDaGFuZ2VkKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBRdWFs
aWZpZWROYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCmlu
ZGV4IGRiMzk1NGM0YjhlOS4uMzE5NmVhNjE3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCBSZWY8U1ZHRm9udEZhY2VFbGVt
ZW50PiBTVkdGb250RmFjZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7ICAgIAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCA9IGNzc1Byb3BlcnR5
SWRGb3JTVkdBdHRyaWJ1dGVOYW1lKG5hbWUpOwogICAgIGlmIChwcm9wZXJ0eUlkID4gMCkgewpA
QCAtOTQsNyArOTQsNyBAQCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdW5zaWduZWQgU1ZHRm9udEZh
Y2VFbGVtZW50Ojp1bml0c1BlckVtKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuaAppbmRleCBhYzE5MGZlYjU5MDIuLjE0NTdmZTA0NmZlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgog
ICAgIFNWR0ZvbnRGYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
ICAgICB+U1ZHRm9udEZhY2VFbGVtZW50KCk7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBh
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikgZmluYWw7CiAKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0Fu
Y2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggODkwMGY2OTE5MTNjLi41
Nzk3NGZjZTYxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVy
aUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuY3BwCkBAIC02NiwxMiArNjYsMTEgQEAgUmVmPENTU0ZvbnRGYWNlU3JjUmVzb3VyY2VWYWx1
ZT4gU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpjcmVhdGVTcmNWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIENTU0ZvbnRGYWNlU3JjUmVzb3VyY2VWYWx1ZTo6Y3JlYXRlKFdURk1vdmUobG9jYXRpb24p
LCBmb3JtYXQuaXNFbXB0eSgpID8gInN2ZyJfcyA6IGZvcm1hdC5zdHJpbmcoKSwgTG9hZGVkRnJv
bU9wYXF1ZVNvdXJjZTo6Tm8pOwogfQogCi12b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
aWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhyZWZBdHRyIHx8IG5hbWUgPT0gWExpbmtOYW1lczo6aHJl
ZkF0dHIpCiAgICAgICAgIGxvYWRGb250KCk7Ci0gICAgZWxzZQotICAgICAgICBTVkdFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHRm9udEZhY2VVcmlF
bGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCBiYmE2NjgxYTZjNzAu
LjZhODU2ZjdmZmJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
VXJpRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1l
bnQuaApAQCAtMzgsOCArMzgsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU1ZHRm9udEZh
Y2VVcmlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwotICAgIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0
b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9k
ZSYpIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVp
Z25PYmplY3RFbGVtZW50LmNwcAppbmRleCBlZTk4YzBhNjYxMGYuLjc5YTcxZjA0MDA3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC01
NSw3ICs1NSw3IEBAIFJlZjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lCiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
dm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsK
ICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTcwLDcgKzcw
LDcgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA2YjM0NTE4OTBjMzUuLmUw
ODRjOWZlZTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQs
IFNWR0dyYXBoaWNzRWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBmaW5hbDsKIAogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRleCBl
ODc3ZGUzMTQ0MTQuLjU2ZDc2YmZiODNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21l
dHJ5RWxlbWVudC5jcHAKQEAgLTEzMywxNiArMTMzLDE1IEBAIGJvb2wgU1ZHR2VvbWV0cnlFbGVt
ZW50Ojppc1BvaW50SW5TdHJva2UoRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogeworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFt
ZSA9PSBTVkdOYW1lczo6cGF0aExlbmd0aEF0dHIpIHsKICAgICAgICAgbV9wYXRoTGVuZ3RoLT5z
ZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUudG9GbG9hdCgpKTsKICAgICAgICAgaWYgKG1fcGF0aExl
bmd0aC0+YmFzZVZhbCgpIDwgMCkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0
ZW5zaW9ucygpLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBwYXRoIGF0dHJpYnV0
ZSA8cGF0aExlbmd0aD4gaXMgbm90IGFsbG93ZWQiX3MpOwotICAgICAgICByZXR1cm47CiAgICAg
fQotCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiB9CiAKIHZvaWQgU1ZHR2VvbWV0cnlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxl
bWVudC5oCmluZGV4IDY5MWIxOTAyMDNlYS4uN2Y3NTkxNTU4ZGY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBTVkdHZW9tZXRyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJy
aWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCmluZGV4IDZiNTQzYzFlYWZlZC4uNTRl
M2FhNGEyNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcApA
QCAtNjAsNyArNjAsNyBAQCBzdGF0aWMgZmxvYXQgcGFyc2VGbG9hdChjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKICAgICByZXR1cm4gcGFyc2VOdW1iZXIodmFsdWUpLnZhbHVlX29yKDApOwogfQog
Ci12b2lkIFNWR0dseXBoUmVmRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0dseXBoUmVmRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgLy8g
RklYTUU6IElzIHRoZSBlcnJvciBoYW5kbGluZyBpbiBwYXJzZUZsb2F0IGNvcnJlY3QgZm9yIHRo
ZXNlIGF0dHJpYnV0ZXM/CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyKQpAQCAtNzMs
NyArNzMsNyBAQCB2b2lkIFNWR0dseXBoUmVmRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICBtX2R5ID0gcGFyc2VG
bG9hdCh2YWx1ZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgICAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCmluZGV4IDBmMjdmNmJh
YjFlMi4uODZhYzUyYzEwNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5
cGhSZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVu
dC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lz
dHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0dseXBoUmVmRWxlbWVudCwgU1ZHRWxl
bWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBmaW5hbDsKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgZmxvYXQgbV94IHsgMCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCA1ZjM2MjkyYzA3MzcuLmVmNjQ1
ZmI4ZDhkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAKQEAg
LTQ5LDcgKzQ5LDcgQEAgU1ZHR3JhZGllbnRFbGVtZW50OjpTVkdHcmFkaWVudEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGQKICAgICB9KTsKIH0KIAotdm9p
ZCBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1l
ID09IFNWR05hbWVzOjpncmFkaWVudFVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5
VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJv
bVN0cmluZyh2YWx1ZSk7CkBAIC03MCw4ICs3MCw4IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHR3Jh
ZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCmluZGV4IDk2M2Y2
MDc2ZGQyMC4uMjMyMTU5OGUxNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxl
bWVudC5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTVkdHcmFk
aWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVlUmVmPFNW
R1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFw
aGljc0VsZW1lbnQuY3BwCmluZGV4IDZjMTI0NmU5YjgzZi4uODgyYzg1ZDRkYzZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMTI5LDE0ICsxMjksMTQg
QEAgQWZmaW5lVHJhbnNmb3JtKiBTVkdHcmFwaGljc0VsZW1lbnQ6OmVuc3VyZVN1cHBsZW1lbnRh
bFRyYW5zZm9ybSgpCiAgICAgcmV0dXJuIG1fc3VwcGxlbWVudGFsVHJhbnNmb3JtLmdldCgpOwog
fQogCi12b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0dyYXBoaWNz
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAg
U1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRyYW5z
Zm9ybUF0dHIpIHsKICAgICAgICAgbV90cmFuc2Zvcm0tPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAppbmRleCBmM2Zi
YTYzNjI2MWQuLjI3OTJhOGUxOTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dyYXBoaWNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJlZjxT
VkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJp
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggZTkzYzgxZTdh
M2UxLi43ZGMxNDdlMjM3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CkBAIC04OSw4ICs4OSwxMCBAQCBib29sIFNWR0ltYWdlRWxlbWVudDo6cmVuZGVyaW5nVGFpbnRz
T3JpZ2luKCkgY29uc3QKICAgICByZXR1cm4gaW1hZ2UgJiYgaW1hZ2UtPnJlbmRlcmluZ1RhaW50
c09yaWdpbigpOwogfQogCi12b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNW
R0ltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CisgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJh
dGlvLT5zZXRCYXNlVmFsSW50ZXJuYWwoU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIHsgdmFs
dWUgfSk7CiAgICAgICAgIHJldHVybjsKQEAgLTEwOCw5ICsxMTAsNiBAQCB2b2lkIFNWR0ltYWdl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZwogICAgICAgICBtX2hlaWdodC0+c2V0QmFzZVZhbEludGVybmFsKFNWR0xlbmd0
aFZhbHVlOjpjb25zdHJ1Y3QoU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJv
ciwgU1ZHTGVuZ3RoTmVnYXRpdmVWYWx1ZXNNb2RlOjpGb3JiaWQpKTsKIAogICAgIHJlcG9ydEF0
dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7Ci0KLSAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdVUklS
ZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdJbWFn
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggYTJhZWZmZjQ3ZDcyLi5k
NDcwZjlmZDIyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTUzLDcg
KzUzLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZH
UHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ltYWdlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50
LCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZp
bmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
ZmluYWw7CiAKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5kZXggOGJjM2U1Y2RiYTgyLi45Y2I5YzNlOTI5OGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBS
ZWY8U1ZHTGluZUVsZW1lbnQ+IFNWR0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xpbmVF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBTVkdMaW5lRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9y
OwogCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBv
cnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAg
U1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
R2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKaW5kZXggNjZkZTg1YmEzZTdkLi5iNGQ2MWQ0NGM1OTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZh
dGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5PFNWR0xpbmVFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDE1ZmQyZDg4YTY2OS4uZmQ5
NGRmOWQwYjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
PiBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYQogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vy
cm9yOwogCkBAIC03NSw3ICs3NSw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBCiAKICAgICBy
ZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0g
ICAgU1ZHR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgK
aW5kZXggZTMxYmU0ZmFiMzc1Li5kNDhjNjE2ZGM5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LCBTVkdHcmFkaWVudEVsZW1lbnQ+OwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBh
dGhFbGVtZW50LmNwcAppbmRleCAxZDRjODY0NzlkZDYuLmJiMDg5MTdkMjRhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKQEAgLTk4LDEwICs5OCwxMCBAQCB2b2lkIFNW
R01QYXRoRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlw
ZSwgQ29udGFpbmVyTm9kZQogICAgICAgICBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwogfQog
Ci12b2lkIFNWR01QYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR01QYXRoRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiB2b2lkIFNWR01QYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
UGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAppbmRl
eCBjNzNmMmUxODdjMTIuLmVhZTI4MjUxZTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01QYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVs
ZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdNUGF0aEVsZW1lbnQsIFNWR0Vs
ZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBmaW5hbDsKIAogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA2MjZjNTYwMWZhYzEuLmZm
NTk1OWI3MWY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAt
NTksNyArNTksNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2VyRWxlbWVudDo6dmlld0JveFRv
Vmlld1RyYW5zZm9ybShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAgICAgcmV0dXJuIFNWR0ZpdFRv
Vmlld0JveDo6dmlld0JveFRvVmlld1RyYW5zZm9ybSh2aWV3Qm94KCksIHByZXNlcnZlQXNwZWN0
UmF0aW8oKSwgdmlld1dpZHRoLCB2aWV3SGVpZ2h0KTsKIH0KIAotdm9pZCBTVkdNYXJrZXJFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTWFya2VyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1hcmtl
clVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRy
YWl0czxTVkdNYXJrZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg4LDcgKzg4
LDcgQEAgdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAg
ICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDQ2MDVkY2E5OWI2Mi4uNDAzOThi
YmU0ZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTc0LDcgKzc0
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHTWFya2VyRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRml0VG9WaWV3
Qm94PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRl
OwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDlkN2UyNzBiMTFhMS4u
M2IzZWE1MGRjZmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTY0
LDcgKzY0LDcgQEAgUmVmPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdNYXNrRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR01h
c2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTWFza0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpt
YXNrVW5pdHNBdHRyKSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAg
LTkyLDcgKzkyLDcgQEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJp
YnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAppbmRleCBiZmNjOWFkN2QzZjQuLjM5ZGQ3NTg2
ZjkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHTWFza0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1Rlc3RzPjsKIAotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCmluZGV4IDc5ZmFmOTg5ZGM1NS4uNDliMGQ0MWVmY2IwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTUzLDE1ICs1MywxMyBAQCBSZWY8U1ZHUGF0aEVs
ZW1lbnQ+IFNWR1BhdGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdQYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9
PSBTVkdOYW1lczo6ZEF0dHIpIHsKICAgICAgICAgaWYgKCFtX3BhdGhTZWdMaXN0LT5iYXNlVmFs
KCktPnBhcnNlKHZhbHVlKSkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5z
aW9ucygpLnJlcG9ydEVycm9yKCJQcm9ibGVtIHBhcnNpbmcgZD1cIiIgKyB2YWx1ZSArICJcIiIp
OwotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoRWxlbWVudC5oCmluZGV4IDIyNDE2YjI1ZjQ0Ni4uMjJhMTNkNmQ0NGJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaApAQCAtMTA4LDggKzEwOCw4IEBAIHByaXZhdGU6
CiAgICAgU1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
ICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R1BhdGhFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwotICAgIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCA1YmYwNTBjMmQ1OTMuLmZlZGVkY2NjOWM3NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBA
IFJlZjxTVkdQYXR0ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0
dGVybkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdQYXR0ZXJuRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cGF0
dGVyblVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0
eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBA
IC0xMDIsOCArMTAyLDggQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogICAgIHJlcG9ydEF0
dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNl
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiAgICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKaW5kZXggY2NmZDZhMTc5Njc3Li5kZmVhYzA0ODczYzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC02Miw3ICs2Miw3IEBA
IHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3gs
IFNWR1Rlc3RzLCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggYjQ1
ODlhYmVkMjU4Li4yOTEyZWEzYzliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50
LmNwcApAQCAtNDMsNyArNDMsNyBAQCBTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIH0pOwog
fQogCi12b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHUG9seUVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1l
ID09IFNWR05hbWVzOjpwb2ludHNBdHRyKSB7CiAgICAgICAgIGlmICghbV9wb2ludHMtPmJhc2VW
YWwoKS0+cGFyc2UodmFsdWUpKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQb2x5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50
LmgKaW5kZXggMDI0YmE1ZGEwZGM4Li44ZGI3ZTZjMDRiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
b2x5RWxlbWVudC5oCkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdQb2x5
RWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsgCisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggZTZjOGY2ZmFhNzEyLi44
MzNkOTExODU0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIFJlZjxTVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQ+IFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5v
RXJyb3I7CiAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKIAogICAg
IHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAK
LSAgICBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdHcmFkaWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1JhZGlhbEdy
YWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
aAppbmRleCBlNjBmNGIwNWYzYTUuLjg4YmI0NjA2YTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRl
OgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQsIFNWR0dyYWRpZW50RWxlbWVudD47CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRl
clB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmNwcAppbmRleCA0NDZlYWRhZWM1M2EuLmViYTNhYWY2MzI5OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxTVkdSZWN0
RWxlbWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdEVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIFNWR1JlY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTcz
LDcgKzczLDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0
ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9tZXRy
eUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuaAppbmRleCA0ODYzNGZmNjJhNGEuLmVmNWViM2RiMTMwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKIAogICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHUmVj
dEVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cAppbmRleCAyZWVlYTAxNzk5ZmUuLmU5NjFmZWRhODhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcApAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnVw
ZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+
cmVwYWludCgpOwogfQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdT
VkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAg
ICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKCFuZWFyZXN0Vmll
d3BvcnRFbGVtZW50KCkgJiYgaXNDb25uZWN0ZWQoKSkgewogICAgICAgICAvLyBGb3IgdGhlc2Ug
ZXZlbnRzLCB0aGUgb3V0ZXJtb3N0IDxzdmc+IGVsZW1lbnQgd29ya3MgbGlrZSBhIDxib2R5PiBl
bGVtZW50IGRvZXMsCiAgICAgICAgIC8vIHNldHRpbmcgY2VydGFpbiBldmVudCBoYW5kbGVycyBk
aXJlY3RseSBvbiB0aGUgd2luZG93IG9iamVjdC4KQEAgLTIyMCw3ICsyMjIsNiBAQCB2b2lkIFNW
R1NWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VF
cnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggMjgzNGViOTZjYzc2Li5m
YzNjZTBlYjA0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTI0LDggKzEy
NCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVudCgpOwogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTVkdFbGVt
ZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveD47Ci0gICAgCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWQo
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3Jp
cHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApp
bmRleCAyMGNiYzhhODMxY2UuLjkwOTk4NzRlOGEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmNwcApAQCAtNDQsMTAgKzQ0LDEwIEBAIFJlZjxTVkdTY3JpcHRFbGVtZW50
PiBTVkdTY3JpcHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCwgaW5zZXJ0ZWRCeVBhcnNlciwgZmFsc2UpKTsKIH0KIAotdm9pZCBTVkdTY3JpcHRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1Nj
cmlwdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA5NDRjZTBkZDI1
MmUuLjI5Mjk5MTYxMzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Njcmlw
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBA
IC00MSw3ICs0MSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0g
U1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1NjcmlwdEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNW
R1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5h
bDsKIAogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3RvcEVsZW1lbnQuY3BwCmluZGV4IDdmZjliOTQzNDZlNS4uZDUyNmVlYzU3NTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmPFNWR1N0
b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdG9wRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
K3ZvaWQgU1ZHU3RvcEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpvZmZzZXRBdHRyKSB7CiAgICAgICAg
IGlmICh2YWx1ZS5lbmRzV2l0aCgnJScpKQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFNWR1N0b3BF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiB2b2lkIFNWR1N0b3BFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0
b3BFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCBl
NGJhOTYwNDA2YWQuLjQ0Yjc5YjAxMzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0b3BFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0
cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHU3RvcEVsZW1lbnQsIFNWR0VsZW1lbnQ+
OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29s
IGlzR3JhZGllbnRTdG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAppbmRleCAxYjQ5MDE5MGM2MTkuLmJjYzJmOThmMTU0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcg
QEAgU3RyaW5nIFNWR1N0eWxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJldHVybiBhdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjp0aXRsZUF0dHIpOwogfQogCi12
b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0g
U1ZHTmFtZXM6OnRpdGxlQXR0cikgewogICAgICAgICBpZiAoc2hlZXQoKSAmJiAhaXNJblNoYWRv
d1RyZWUoKSkKQEAgLTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1N0
eWxlRWxlbWVudDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaAppbmRleCBkZGViZGFjZjM0NWUuLjE0ZmU3M2RiYzdmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIFNWR1N0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0
b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3Zl
ZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKaW5kZXggN2E5M2RmNThjMGI1Li4xM2I5MDA4OTdh
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAgLTQ0LDkgKzQ0
LDkgQEAgUmVmPFNWR1N5bWJvbEVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdTeW1ib2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHU3ltYm9s
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1N5bWJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IGRiMDllNTExNTVi
YS4uOTBhYzJhMDhkMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9s
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKQEAg
LTM2LDcgKzM2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBT
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHU3ltYm9sRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVt
ZW50LCBTVkdGaXRUb1ZpZXdCb3g+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIG92ZXJyaWRlOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDZiM2ZhMzJiZjkwNC4uNWU1
MDVjMTI5YWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE3Miwy
MiArMTcyLDIxIEBAIHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgICAg
IGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZSh0YXJn
ZXQuaWRlbnRpZmllciwgKnRoaXMpOwogfQogCi12b2lkIFNWR1RSZWZFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKQogewotICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKKyAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogdm9pZCBTVkdUUmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKKyAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKwogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6Omlz
S25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9u
R3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwogICAg
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKLSAgICAgICAgcmV0dXJu
OwogICAgIH0KLQotICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoYXR0ck5hbWUpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJlZkVs
ZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RS
ZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAppbmRleCBl
Njc2OTg2YzUyYmMuLjQ2MDRmZDAxODY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50
LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0
cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVFJlZkVsZW1lbnQsIFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwCmluZGV4IDljMmFhODg4Y2FjMC4uZjQ3NjFhNDQ5YzY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3
IEBAIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50
c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpCiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwog
fQogCi12b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1RleHRD
b250ZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC0xNzQsNyAr
MTc0LDcgQEAgdm9pZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBh
cnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCBjNzQ0NTg2NzU4ZDEuLmUyMTU0
MGJkN2I0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApA
QCAtOTYsNyArOTYsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYp
IG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3Bw
CmluZGV4IDQwOWQ3ZTljN2E5Ni4uNTVlOTZhODBkMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBhdGhFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNWR1RleHRQYXRo
RWxlbWVudDo6Y2xlYXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogICAgIHJlbW92ZUVsZW1lbnRSZWZl
cmVuY2UoKTsKIH0KIAotdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdUZXh0UGF0aEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtODEs
OCArODEsOCBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogCiAgICAgcmVwb3J0QXR0cmlidXRl
UGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR1RleHRDb250
ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVy
ZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR1RleHRDb250ZW50RWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCmluZGV4IDM1OGM5MGY5M2RlMS4uNjJlMzEyM2E2ZDRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHVGV4dFBhdGhFbGVtZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnQs
IFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVt
ZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dC5jcHAKaW5kZXggMDk2NWUyODhiYzg5Li4xYjZlZjE3YjAzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW0KICAgICB9KTsKIH0KIAotdm9pZCBTVkdUZXh0UG9z
aXRpb25pbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5h
bWUgPT0gU1ZHTmFtZXM6OnhBdHRyKSB7CiAgICAgICAgIG1feC0+YmFzZVZhbCgpLT5wYXJzZSh2
YWx1ZSk7CkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CiB9CiAKIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgKaW5kZXggNDlkOTE2Y2Ew
MjI4Li45Njc5MWI3OTQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBVbmlxdWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkZTQ2NGY0YzhlODcuLjlhMjAzMTE0NGUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtODAsNyArODAsNyBAQCBTVkdV
c2VFbGVtZW50Ojp+U1ZHVXNlRWxlbWVudCgpCiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+
cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
K3ZvaWQgU1ZHVXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC05
NSw4ICs5NSw4IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0
ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVu
Y2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBTVkdV
c2VFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmgKaW5kZXggN2VjMTMyOTJhNDZmLi5iYTExZGFiMWYyZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdVc2VFbGVt
ZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmNwcAppbmRleCA5OGYwYjI2ZmM4N2IuLmM3NDNmYzk5MWJmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuY3BwCkBAIC00NSw5ICs0NSw5IEBAIFJlZjxTVkdWaWV3RWxlbWVu
dD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmlld0VsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNW
R1ZpZXdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsK
LSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAppbmRleCBhMDQ3MWIyNGUxNTAu
LmEyYzgzOGMxMmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTQ2LDcg
KzQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVmlld0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0ZpdFRvVmll
d0JveD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NW
R1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVs
ZW1lbnQuY3BwCmluZGV4IGJmNGViZjBlODgyNS4uNGNhNzllNWNkMGM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtNDc1LDggKzQ3
NSwxMCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5n
ZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQog
Ci12b2lkIFNWR1NNSUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU01JTEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmJlZ2luQXR0cikgewog
ICAgICAgICBpZiAoIW1fY29uZGl0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGRpc2Nv
bm5lY3RDb25kaXRpb25zKCk7CkBAIC00OTksOCArNTAxLDYgQEAgdm9pZCBTVkdTTUlMRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZW5k
RXZlbnRFdmVudCwgbmFtZSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
Om9uYmVnaW5BdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFt
ZXMoKS5iZWdpbkV2ZW50RXZlbnQsIG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlCi0gICAgICAgIFNW
R0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdTTUlM
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaAppbmRl
eCBlNjdmOTZhOWUwZWUuLjBlZTA3MjgzYTEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9h
bmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAg
U1ZHU01JTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVlUmVm
PFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogICAgIHZpcnR1YWwgflNWR1NNSUxFbGVtZW50KCk7
CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFu
Y2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465839</attachid>
            <date>2023-04-10 16:46:35 -0700</date>
            <delta_ts>2023-04-10 18:31:21 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_parseAttribute_func3.patch</filename>
            <type>text/plain</type>
            <size>226153</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYzgzYjU4ZTIyMGQuLjUwODQxM2YyMGFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6
aXNJbnRlcmFjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjppbnRlcmFjdGl2ZUF0dHIpOwogfQogCi12b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTW9kZWxFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRy
KQogICAgICAgICBzb3VyY2VzQ2hhbmdlZCgpOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21vZGVsUGxheWVyKQogICAgICAgICAgICAg
bV9tb2RlbFBsYXllci0+c2V0SW50ZXJhY3Rpb25FbmFibGVkKGlzSW50ZXJhY3RpdmUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IGY0OGMzY2NlYWQ5NS4uNzAzNGIxODRiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdE
b2N1bWVudCkgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICAvLyBTdHlsZWRFbGVtZW50CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBiNGVmN2VmN2U3MjguLjc3NjY3ZGEyOGYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjA5NSw4ICsyMDk1LDYgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHBhcnNlQXR0cmlidXRlKG5hbWUsIG5ld1ZhbHVlKTsKLQog
ICAgIGRvY3VtZW50KCkuaW5jRE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChVTkxJS0VMWShp
c0RlZmluZWRDdXN0b21FbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNWViYjg2Zjk5
MjgwLi4zODg3OWU4NTk3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzA2LDkgKzMwNiw4IEBA
IHB1YmxpYzoKICAgICAgICAgTW9kaWZpZWRCeUNsb25pbmcKICAgICB9OwogCi0gICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBj
aGFuZ2VkIG9yIHJlbW92ZWQuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgeyB9
CiAKICAgICAvLyBPbmx5IGNhbGxlZCBieSB0aGUgcGFyc2VyIGltbWVkaWF0ZWx5IGFmdGVyIGVs
ZW1lbnQgY29uc3RydWN0aW9uLgogICAgIHZvaWQgcGFyc2VyU2V0QXR0cmlidXRlcyhTcGFuPGNv
bnN0IEF0dHJpYnV0ZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGQ4
ODY5MDZjZDAxMS4uZTAzZWE2ZDI1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC05NSw2ICs5NSw3IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlZEVsZW1l
bnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKQEAgLTEwMyw4ICsxMDQsNiBAQCB2
b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0KIAogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjppbmxpbmVTdHlsZUNTU09NV3JhcHBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDBlNGU0ZDhlYTI4ZC4uOGY3
MGUzMmMyN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjM0LDggKzIzNCwxMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9v
bCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aQogICAgIEhUTUxFbGVt
ZW50OjpzZXRBY3RpdmUoZG93biwgaW52YWxpZGF0aW9uU2NvcGUpOwogfQogCi12b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2Fz
TGluayA9IGlzTGluaygpOwogICAgICAgICBzZXRJc0xpbmsoIXZhbHVlLmlzTnVsbCgpICYmICFz
aG91bGRQcm9oaWJpdExpbmtzKHRoaXMpKTsKQEAgLTI0OCw4ICsyNTAsNiBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaQogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPmxv
YWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGRvY3VtZW50KCkuY29tcGxldGVVUkwocGFyc2Vk
VVJMKS5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbmFtZUF0dHIgfHwgbmFtZSA9PSB0aXRsZUF0dHIpIHsKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAg
ICAgICAvLyBVcGRhdGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBh
dHRyaWJ1dGVzIHZhbHVlcyBhcmUgc3VwcG9ydGVkLgogICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
X3MpOwpAQCAtMjY1LDggKzI2NSw2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAg
IGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDUxMjRmMWIxMDI1ZC4u
MmZjZDZlODhiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBA
IC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmNwcAppbmRleCA3NTUzOGQ1YTJmM2UuLjUyMWE5NThjNDk1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8SFRNTEFyZWFFbGVt
ZW50PiBIVE1MQXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc2hhcGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImRlZmF1bHQiX3MpKQpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRBdHRy
KSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OmludmFs
aWRhdGVDYWNoZWRSZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5k
ZXggMDMyYWFiN2YxMGMyLi43YTNjNTFlZTc4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxB
cmVhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggYWQzYjM3
NDIyZjk5Li5lOWQxZTQ4ZjFiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dGFjaG1lbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8SFRNTEltYWdlRWxl
bWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjplbmNsb3NpbmdJbWFnZUVsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBhY3Rpb25BdHRyIHx8IG5hbWUg
PT0gc3VidGl0bGVBdHRyKCkgfHwgbmFtZSA9PSB0aXRsZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0
cikgewogICAgICAgICBpZiAobV9pbm5lckxlZ2FjeUF0dGFjaG1lbnQpCkBAIC00NjUsNyArNDY1
LDcgQEAgdm9pZCBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmlu
ZygpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gYWN0
aW9uQXR0cikgewogICAgICAgICBpZiAobV9hY3Rpb25UZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCmluZGV4IGU3NmQ5OTNiN2VmMS4uMGQw
Y2Q3ZTg0NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAK
aW5kZXggODA5YjZiMDNlNDNkLi42YzliNjM4YzNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCBSZWY8SFRNTEJhc2VFbGVtZW50
PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCYXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxCYXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gaHJlZkF0dHIgfHwgbmFtZSA9PSB0YXJnZXRBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NCYXNlRWxlbWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgSFRN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MQmFzZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA1OTlhMmI5M2FmNGEuLjliNDM1YThlN2MwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAK
aW5kZXggOGZkM2VjMGI2ZWIzLi5hNmQ3OGVhZjc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShj
b25zdAogICAgIHJldHVybiBldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSwgbWFwKTsKIH0KIAotdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHZsaW5rQXR0ciB8fCBuYW1lID09IGFsaW5rQXR0ciB8fCBu
YW1lID09IGxpbmtBdHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkQ29sb3IgPSBwYXJzZUxlZ2Fj
eUNvbG9yVmFsdWUodmFsdWUpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTEJvZHlFbGVtZW50OjppbnNl
cnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKaW5kZXggMzVmMTEzNmY3YjlkLi45ZWI5MGJlNDg3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5k
ZXggMzcxNTI1OWM4ZTU1Li43MDIwZDBjODgxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCdXR0b25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAg
IFR5cGUgb2xkVHlwZSA9IG1fdHlwZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEhUTUxCdXR0
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgICAgICAgICAgICAgIGZvcm0oKS0+cmVzZXREZWZhdWx0QnV0dG9uKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggNDY4OTk3MjE4MTEyLi42NzY4OWZhNDY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGYzODZkMWVkNjJmOC4uNmQ2MzE4NTBlZWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTY3LDExICsxNjcs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQo
KTsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBhNDA2M2VlODgyYmUuLmU3NTViMDhl
NTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTU3LDcg
KzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgdm9pZCBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAwOTU3MTcwYTY4YS4uZmI0MmIyM2NkOWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3Vt
bWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlT
bG90LmdldCgpOwogfQogCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxEZXRhaWxzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gb3BlbkF0dHIpIHsKICAgICAgICAgYm9vbCBvbGRWYWx1
ZSA9IG1faXNPcGVuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgICAgICBtX2lzVG9nZ2xlRXZlbnRUYXNrUXVldWVkID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggOGM3MzdhZDA3ZmM1Li41ZDY4
MmQwMTIyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKICAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGNmZjRiNzY5MDBlNi4uNGI4ZGJk
MzRkZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY5LDggKzM2OSwx
MCBAQCBib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25z
dAogICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKCp0aGlzLCBQ
YWdlSXNFZGl0YWJsZTo6Tm8pICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgZGlyQXR0cmlidXRlQ2hh
bmdlZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApp
bmRleCA1ZWJmZjNlYmVmOTQuLjYxNjhmY2FjZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGx5Qm9yZGVy
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
Tm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSAsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCAzMDE3
YTAzYTQ4MmIuLmFlN2RkZTY0MzI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC05NSw4ICs5NSw5IEBAIHN0YXRpYyBib29sIGhhc1R5cGVPclNyYyhjb25z
dCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKICAgICByZXR1cm4gZW1iZWQuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0cikgfHwgZW1iZWQuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKTsKIH0KIAotdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlw
ZSA9IHZhbHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoaXMgYW5kIEhUTUxPYmplY3RFbGVtZW50J3MgY29ycmVzcG9uZGluZwpAQCAtMTE0LDggKzEx
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
ICFoYXNUeXBlT3JTcmMoKnRoaXMpKQogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8QXRvbVN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxB
dG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCmluZGV4IGQxNmU2NzdhMGNiOC4uY2QxZGQ2NmJkYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggODQ5ODgxMDFlNDAzLi5k
ZmQxMmM0ODBlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21Db250cm9sRWxl
bWVudHNBbmNlc3RvckRpc2FibGVkU3RhdGVVbmRlcihIVE1MRWxlbWVudCYgc3RhCiAgICAgfQog
fQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRmllbGRT
ZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBib29sIG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlID0gaGFzRGlzYWJsZWRBdHRyaWJ1dGUoKTsK
IAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmICho
YXNEaXNhYmxlZEF0dHJpYnV0ZSgpICE9IG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlKSB7CiAgICAg
ICAgIGlmIChoYXNEaXNhYmxlZEF0dHJpYnV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCBkNjcxZjg2ODUxMmQuLjJhY2I2OTU3YzUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOWZkZjYxYjRmYWZm
Li5lYjc1NjkzNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFp
CiAgICAgY2hlY2tBbmRQb3NzaWJseUNsb3NlUG9wb3ZlclN0YWNrKCk7CiB9CiAKLXZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5ld1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHBvcG92ZXJ0YXJnZXRBdHRyKQogICAgICAgICBjaGVja0Fu
ZFBvc3NpYmx5Q2xvc2VQb3BvdmVyU3RhY2soKTsKICAgICBlbHNlIHsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMmU3NDhjMjVmOTUwLi40NzhkODY2MzEwMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCAyOTViMzhjNTJmZDUuLmZjMmJkNWUwMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpy
ZXNldExpc3RlZEZvcm1Db250cm9sRWxlbWVudHMoKQogICAgICAgICBjb250cm9sLT5yZXNldCgp
OwogfQogCi12b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gYWN0aW9uQXR0cikgewogICAgICAgICBtX2F0dHJpYnV0ZXMucGFyc2VBY3Rpb24o
dmFsdWUpOwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAg
ICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJbmRl
eFdpdGhGb3JtQXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJhbmdlU3RhcnQs
IHVuc2lnbmVkIHJhbmdlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggNGQ4MTBmNDYzNjU3Li44ZjFlOWIwN2IxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9u
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA2
NThiMTRiZjMxMjQuLjljYTBkNzk3YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIGludCBIVE1MRnJhbWVFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEhUTUxGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRnJhbWVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBmcmFtZWJvcmRlckF0
dHIpIHsKICAgICAgICAgbV9mcmFtZUJvcmRlciA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZh
bHVlX29yKDApOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAg
cmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjZDg3Yzg1NDk2
MGMuLjZlNGNiODllMmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwogICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1fZnJhbWVCb3Jk
ZXIgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0IHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggY2QyNDQ5M2M3
ZDBlLi42YjM4NTc5ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6b3BlblVSTChMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdAog
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSgq
dGhpcywgbV9mcmFtZVVSTCwgZnJhbWVOYW1lLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjZG9jQXR0cikgewogICAgICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVMKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gc3JjQXR0ciAmJiAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihzcmNkb2NBdHRyKSkKICAgICAgICAgc2V0TG9jYXRpb24oc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggZDM0NWYzYjAxNjZjLi43YzcxODQwOTkzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBjYW5Mb2FkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRv
QW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCAzMjVhOWJiZDA3NDMuLjdjNGQxMjAzYjhhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC04Myw4ICs4MywxNCBAQCB2b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgYXV0byYgZXZlbnRO
YW1lID0gSFRNTEJvZHlFbGVtZW50OjpldmVudE5hbWVGb3JXaW5kb3dFdmVudEhhbmRsZXJBdHRy
aWJ1dGUobmFtZSk7CisgICAgaWYgKCFldmVudE5hbWUuaXNOdWxsKCkpCisgICAgICAgIGRvY3Vt
ZW50KCkuc2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIG5hbWUsIHZh
bHVlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CisgICAgZWxzZQorICAgICAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSByb3dzQXR0cikgewogICAgICAg
ICAvLyBGSVhNRTogV2hhdCBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gd2hlbiByZW1vdmluZyB0
aGlzIGF0dHJpYnV0ZT8KICAgICAgICAgLy8gV2h5IG5vdCB0cmVhdCBpdCB0aGUgc2FtZSB3YXkg
d2UgdHJlYXQgc2V0dGluZyBpdCB0byB0aGUgZW1wdHkgc3RyaW5nPwpAQCAtMTQ1LDE0ICsxNTEs
NiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCB0byB0cmlnZ2VyIHJlcGFpbnRpbmc/CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBh
dXRvJiBldmVudE5hbWUgPSBIVE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50
SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgewot
ICAgICAgICBkb2N1bWVudCgpLnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lLCBuYW1lLCB2YWx1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKIH0KIAogYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgK
aW5kZXggMzdmZjFiMGY2OWIxLi45YjZlMTViYTdjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZUhUTUxGcmFtZVNldEVsZW1lbnQgPSBDcmVhdGVIVE1M
RWxlbWVudCB8IE5vZGVGbGFnOjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3M7CiAgICAg
SFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
aW5kZXggNDE4ZTA3MjVhYjY0Li5mMGY2NTA0NjJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgSFRNTElGcmFtZUVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxJ
RnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNhbmRi
b3hBdHRyKSB7CiAgICAgICAgIGlmIChtX3NhbmRib3gpCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9p
ZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgICAgIGxvYWREZWZlcnJlZEZyYW1lKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOwogfQogCiBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAppbmRleCBmYTY1Y2E0YjM1YTkuLjg1YjQxZWNmMWRmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI1NzFlOGQ1N2NkZi4u
MTRiY2EyNmUyZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAK
QEAgLTMyOSwyMyArMzI5LDEwIEBAIHN0YXRpYyBDcm9zc09yaWdpblN0YXRlIHBhcnNlQ3Jvc3Nv
cmlnaW5TdGF0ZShjb25zdCBBdG9tU3RyaW5nJiBjcm9zc29yaWdpblZhbHVlCiAgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3Nzb3JpZ2luVmFsdWUsICJ1c2UtY3Jl
ZGVudGlhbHMiX3MpID8gVXNlQ3JlZGVudGlhbHMgOiBBbm9ueW1vdXM7CiB9CiAKLXZvaWQgSFRN
TEltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIEhUTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29u
KTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAKLSAgICBpZiAobmFtZSA9PSByZWZl
cnJlcnBvbGljeUF0dHIgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLnJlZmVycmVyUG9saWN5QXR0
cmlidXRlRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gb2xkUmVmZXJyZXJQb2xpY3kgPSBwYXJz
ZVJlZmVycmVyUG9saWN5KG9sZFZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQ
b2xpY3lBdHRyaWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0g
ICAgICAgIGF1dG8gbmV3UmVmZXJyZXJQb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG5ld1Zh
bHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGUpLnZhbHVl
X29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0gICAgICAgIGlmIChvbGRSZWZlcnJl
clBvbGljeSAhPSBuZXdSZWZlcnJlclBvbGljeSkKLSAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIt
PnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRpb246
Olllcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNyb3Nzb3JpZ2luQXR0cikgewotICAgICAg
ICBpZiAocGFyc2VDcm9zc29yaWdpblN0YXRlKG9sZFZhbHVlKSAhPSBwYXJzZUNyb3Nzb3JpZ2lu
U3RhdGUobmV3VmFsdWUpKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVs
ZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoUmVsZXZhbnRNdXRhdGlvbjo6WWVzKTsKLSAgICB9
Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUg
PT0gYWx0QXR0cikgewogICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKCkpKQog
ICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcigpKS51cGRhdGVBbHRU
ZXh0KCk7CkBAIC0zNjQsMzEgKzM1MSwzNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5kTW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAo
IXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2NvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAg
fSBlbHNlIGlmIChpc0ltYWdlTWVudUVuYWJsZWQoKSkgewotICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24gbmVlZGVkIGZvciBl
YWdlciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6eUxvYWRhYmxlQXR0
cmlidXRlVmFsdWUodmFsdWUpKQogICAgICAgICAgICAgbG9hZERlZmVycmVkSW1hZ2UoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewotICAgICAgICAgICAg
Ym9vbCB3aWxsSGF2ZU5hbWUgPSAhdmFsdWUuaXNFbXB0eSgpOwotICAgICAgICAgICAgaWYgKG1f
aGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVj
dGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgp
KSkgewotICAgICAgICAgICAgICAgIEhUTUxEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxI
VE1MRG9jdW1lbnQ+KHRoaXMtPmRvY3VtZW50KCkpOwotICAgICAgICAgICAgICAgIGNvbnN0IEF0
b21TdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlk
LmlzRW1wdHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHdpbGxIYXZlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmFkZERvY3VtZW50TmFtZWRJdGVtKCppZC5pbXBsKCksICp0aGlzKTsKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRG9jdW1l
bnROYW1lZEl0ZW0oKmlkLmltcGwoKSwgKnRoaXMpOwotICAgICAgICAgICAgICAgIH0KKyAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gcmVmZXJyZXJwb2xpY3lBdHRyICYmIGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5yZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAgICBhdXRvIG9s
ZFJlZmVycmVyUG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShvbGRWYWx1ZSwgUmVmZXJyZXJQ
b2xpY3lTb3VyY2U6OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBv
bGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICBhdXRvIG5ld1JlZmVycmVyUG9saWN5ID0gcGFy
c2VSZWZlcnJlclBvbGljeSh2YWx1ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OlJlZmVycmVyUG9s
aWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAg
ICAgICBpZiAob2xkUmVmZXJyZXJQb2xpY3kgIT0gbmV3UmVmZXJyZXJQb2xpY3kpCisgICAgICAg
ICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJv
cihSZWxldmFudE11dGF0aW9uOjpZZXMpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjcm9zc29y
aWdpbkF0dHIpIHsKKyAgICAgICAgaWYgKHBhcnNlQ3Jvc3NvcmlnaW5TdGF0ZShvbGRWYWx1ZSkg
IT0gcGFyc2VDcm9zc29yaWdpblN0YXRlKHZhbHVlKSkKKyAgICAgICAgICAgIG1faW1hZ2VMb2Fk
ZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRp
b246Olllcyk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7CisgICAgICAgIGJv
b2wgd2lsbEhhdmVOYW1lID0gIXZhbHVlLmlzRW1wdHkoKTsKKyAgICAgICAgaWYgKG1faGFkTmFt
ZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVjdGVkKCkg
JiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgpKSkgewor
ICAgICAgICAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PEhUTUxEb2N1bWVu
dD4odGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBjb25zdCBBdG9tU3RyaW5nJiBpZCA9
IGdldElkQXR0cmlidXRlKCk7CisgICAgICAgICAgICBpZiAoIWlkLmlzRW1wdHkoKSAmJiBpZCAh
PSBnZXROYW1lQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2lsbEhhdmVOYW1l
KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGREb2N1bWVudE5hbWVkSXRlbSgqaWQu
aW1wbCgpLCAqdGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbSgqaWQuaW1wbCgpLCAqdGhpcyk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2hhZE5hbWVCZWZvcmVBdHRyaWJ1dGVDaGFuZ2Vk
ID0gd2lsbEhhdmVOYW1lOwogICAgICAgICB9Ci0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNo
YW5nZWQgPSB3aWxsSGF2ZU5hbWU7CiAgICAgfQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCisgICAgaWYgKGlzSW1hZ2VNZW51RW5hYmxlZCgpKQorICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxJ
bWFnZUVsZW1lbnQ6OmxvYWREZWZlcnJlZEltYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgKaW5kZXggYWUyNWRkZjUxNzQwLi5mMzZjOWVhN2RjN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xODUsNyArMTg1LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEZvcm1JbnRlcm5hbChSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiYmKSBmaW5h
bDsKIAogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xsZWN0RXh0cmFTdHls
ZUZvclByZXNlbnRhdGlvbmFsSGludHMoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZWFkZmQ2MTU4
MzAyLi5mZGU3ZTFlNmViNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNzIwLDcgKzcyMCw3IEBAIGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6Omlu
aXRpYWxpemVJbnB1dFR5cGUoKQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAKLXZvaWQgSFRN
TElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIEFTU0VSVChtX2lucHV0VHlw
ZSk7CiAgICAgUmVmIHByb3RlY3RlZElucHV0VHlwZSB7ICptX2lucHV0VHlwZSB9OwpAQCAtNzI5
LDcgKzcyOSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIHJlbW92ZUZyb21S
YWRpb0J1dHRvbkdyb3VwKCk7CiAgICAgICAgIG1fbmFtZSA9IHZhbHVlOwogICAgICAgICBhZGRU
b1JhZGlvQnV0dG9uR3JvdXAoKTsKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhdXRvY29tcGxl
dGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1
ZSwgIm9mZiJfcykpIHsKICAgICAgICAgICAgIG1fYXV0b2NvbXBsZXRlID0gT2ZmOwpAQCAtNzk5
LDcgKzc5OSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgfQogI2VuZGlmCiAgICAg
ZWxzZQotICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAKICAgICBtX2lucHV0VHlwZS0+YXR0cmlidXRlQ2hhbmdlZChuYW1lKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNmM3ZjJlNTYwYTM5Li5lNzY3
NzMwYTQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zNzgs
NyArMzc4LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0g
TW9kaWZpZWREaXJlY3RseSkgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwog
ICAgIHZvaWQgcGFyc2VyRGlkU2V0QXR0cmlidXRlcygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExJRWxlbWVudC5jcHAKaW5kZXggZDk1N2VkNGIxMzk1Li5jYmRjMmI5MjJlNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcApAQCAtOTMsMTMgKzkzLDEzIEBAIHZvaWQg
SFRNTExJRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRp
b25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRN
TExJRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxMSUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHZhbHVlQXR0cikg
ewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc0xpc3RJdGVtKCkpCiAg
ICAgICAgICAgICBwYXJzZVZhbHVlKHZhbHVlKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxMSUVsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVy
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5oCmluZGV4IGZiOThlMDc5MTExNi4uMzY5
Njg4YjU3MmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaApAQCAtMzYsNyArMzYs
NyBAQCBwcml2YXRlOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgYXV0byBDcmVhdGVIVE1MTElFbGVt
ZW50ID0gQ3JlYXRlSFRNTEVsZW1lbnQgfCBOb2RlRmxhZzo6SGFzQ3VzdG9tU3R5bGVSZXNvbHZl
Q2FsbGJhY2tzOwogICAgIEhUTUxMSUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgYm9v
bCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0
eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAKaW5kZXggZDRiNDEyNWUxMGIwLi41OTJkNzNhNTUzMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIEhUTUxMaW5r
RWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVkKQogICAgIH0KIH0KIAotdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTGlua0VsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHJl
bEF0dHIpIHsKICAgICAgICAgYXV0byBwYXJzZWRSZWwgPSBMaW5rUmVsQXR0cmlidXRlKGRvY3Vt
ZW50KCksIHZhbHVlKTsKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZwogICAgICAgICAgICAgbV9zaGVldC0+c2V0VGl0bGUodmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIEhUTUxMaW5rRWxlbWVudDo6
c2hvdWxkTG9hZExpbmsoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXgg
ZjVhYmM1N2U2N2Q0Li5mOGMyYTRkN2IwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0Vs
ZW1lbnQuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgUmVxdWVzdFByaW9yaXR5IGZl
dGNoUHJpb3JpdHlIaW50KCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgYm9vbCBzaG91bGRMb2FkTGluaygpIGZpbmFsOwog
ICAgIHZvaWQgcHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcApp
bmRleCBjZDA0M2YyNWIwOWUuLjA0ZGU2ZGYxOTA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWFwRWxlbWVudC5jcHAKQEAgLTg0LDE1ICs4NCwxNyBAQCBIVE1MSW1hZ2VFbGVtZW50KiBIVE1M
TWFwRWxlbWVudDo6aW1hZ2VFbGVtZW50KCkKICAgICByZXR1cm4gdHJlZVNjb3BlKCkuaW1hZ2VF
bGVtZW50QnlVc2VtYXAoKm1fbmFtZS5pbXBsKCkpOwogfQogCi12b2lkIEhUTUxNYXBFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1hcEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAg
IC8vIEZJWE1FOiBUaGlzIGxvZ2ljIHNlZW1zIHdyb25nIGZvciBYTUwgZG9jdW1lbnRzLgogICAg
IC8vIEVpdGhlciB0aGUgaWQgb3IgbmFtZSB3aWxsIGJlIHVzZWQgZGVwZW5kaW5nIG9uIHRoZSBv
cmRlciB0aGUgYXR0cmlidXRlcyBhcmUgcGFyc2VkLgogCiAgICAgaWYgKG5hbWUgPT0gSFRNTE5h
bWVzOjppZEF0dHIgfHwgbmFtZSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKSB7CiAgICAgICAgIGlm
IChuYW1lID09IEhUTUxOYW1lczo6aWRBdHRyKSB7CiAgICAgICAgICAgICAvLyBDYWxsIGJhc2Ug
Y2xhc3Mgc28gdGhhdCBoYXNJRCBiaXQgZ2V0cyBzZXQuCi0gICAgICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICAgICAgaWYgKGRvY3VtZW50KCkuaXNIVE1MRG9jdW1lbnQo
KSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwNCwxMSArMTA2LDcg
QEAgdm9pZCBIVE1MTWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgbV9uYW1lID0gV1RGTW92ZShtYXBO
YW1lKTsKICAgICAgICAgaWYgKGlzSW5UcmVlU2NvcGUoKSkKICAgICAgICAgICAgIHRyZWVTY29w
ZSgpLmFkZEltYWdlTWFwKCp0aGlzKTsKLQotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogUmVmPEhUTUxD
b2xsZWN0aW9uPiBIVE1MTWFwRWxlbWVudDo6YXJlYXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFw
RWxlbWVudC5oCmluZGV4IDdmN2VjZTVmZmRhMy4uM2E0MWY2YjkxNzhkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWFwRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSFRNTE1hcEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBJbnNlcnRlZElu
dG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250
YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxU
eXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKaW5kZXgg
MTBkNmEwNmYxM2E5Li5hMTc4MWY1OTIzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKQEAg
LTE0OSw5ICsxNDksOSBAQCB2b2lkIEhUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVu
dDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdgogICAgICAgICBmb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5yZW1vdmVkRnJvbUFuY2VzdG9yKHJlbW92YWxU
eXBlLCBvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKTsKIH0KIAotdm9pZCBIVE1MTWF5YmVGb3JtQXNz
b2NpYXRlZEN1c3RvbUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTWF5YmVGb3JtQXNzb2Np
YXRlZEN1c3RvbUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChpc0Zvcm1Bc3NvY2lhdGVkQ3VzdG9t
RWxlbWVudCgpKQogICAgICAgICBmb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnRVbnNhZmUoKS5w
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAppbmRleCAw
MjljMzdhZmUwODEuLmNiZmQxMDRiODM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5oCkBAIC03Miw3
ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCkgZmlu
YWw7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYsIERvY3VtZW50Jikg
ZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWlu
ZXJOb2RlJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwog
ICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgZmluYWw7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBkZDYzNzAyYzBmODkuLjc0MzAyOWRi
ZjVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC03NzEs
MTcgKzc3MSw3IEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNJbnRlcmFjdGl2ZUNvbnRlbnQo
KSBjb25zdAogICAgIHJldHVybiBjb250cm9scygpOwogfQogCi12b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCi0gICAgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxlc3N2aWRlb3BsYXliYWNrZGlz
YWJsZWRBdHRyKQotICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRXaXJlbGVzc1ZpZGVvUGxheWJh
Y2tEaXNhYmxlZChuZXdWYWx1ZSAhPSBudWxsQXRvbSgpKTsKLSAgICBlbHNlCi0jZW5kaWYKLSAg
ICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1Zh
bHVlLCByZWFzb24pOwotfQotCi12b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MTWVkaWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKICAgICBpZiAobmFtZSA9PSBpZEF0dHIpCiAgICAgICAgIG1faWQgPSB2YWx1ZTsKQEAg
LTgyMyw4ICs4MTMsMTIgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAgICAgICAgaWYgKG1f
bWVkaWFTZXNzaW9uKQogICAgICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNsaWVudENoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoZmFsc2UpOwogICAgIH0KKyNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJB
Q0tfVEFSR0VUKQorICAgIGVsc2UgaWYgKG5hbWUgPT0gd2Via2l0d2lyZWxlc3N2aWRlb3BsYXli
YWNrZGlzYWJsZWRBdHRyKQorICAgICAgICBtZWRpYVNlc3Npb24oKS5zZXRXaXJlbGVzc1ZpZGVv
UGxheWJhY2tEaXNhYmxlZCh2YWx1ZSAhPSBudWxsQXRvbSgpKTsKKyNlbmRpZgogICAgIGVsc2UK
LSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IGE0NTk2ZjgzYjYyNS4uNTVjODNlZDFjZDRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNjQ3LDggKzY0Nyw3IEBAIHByb3RlY3RlZDoKICAgICBI
VE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKTsKICAgICB2aXJ0dWFsIH5IVE1MTWVkaWFFbGVtZW50KCk7CiAKLSAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBvdmVycmlkZTsK
ICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgd2lsbEF0dGFjaFJlbmRlcmVycygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCmluZGV4IGNlNzE5MWY1YzM4MS4uYTMwODZkZjNkN2Vm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCkBAIC02MywxMCArNjMs
MTAgQEAgdm9pZCBIVE1MTWVudUVsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5
cGUgdHlwZSwgQ29udGFpbmVyTm9kZSYgYW5jZXMKICAgICB9CiB9CiAKLXZvaWQgSFRNTE1lbnVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1lbnVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSAhPSB0eXBlQXR0ciB8fCAh
ZG9jdW1lbnQoKS5zZXR0aW5ncygpLm1lbnVJdGVtRWxlbWVudEVuYWJsZWQoKSkgewotICAgICAg
ICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1M
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYm9vbCB3
YXNUb3VjaEJhck1lbnUgPSBtX2lzVG91Y2hCYXJNZW51OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
bnVFbGVtZW50LmgKaW5kZXggMjA1YjhmNTJjNDk1Li4yNjMyYTRiMjUwOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRlOgogCiAg
ICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNl
c3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIGJvb2wgbV9pc1RvdWNoQmFyTWVudTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXggMmIwZDBiM2E4ZTQ1
Li41ZjE0YmYyN2MyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5jcHAK
QEAgLTkzLDI0ICs5MywxNiBAQCBjb25zdCBDb2xvciYgSFRNTE1ldGFFbGVtZW50Ojpjb250ZW50
Q29sb3IoKQogICAgIHJldHVybiAqbV9jb250ZW50Q29sb3I7CiB9CiAKLXZvaWQgSFRNTE1ldGFF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIHJlYXNvbikKK3ZvaWQgSFRNTE1ldGFFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBIVE1MRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CisgICAg
SFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCi0gICAgaWYgKCFpc0luRG9jdW1lbnRUcmVlKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChuYW1lID09IG5hbWVBdHRyKSB7Ci0gICAgICAg
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShvbGRWYWx1ZSwgInRoZW1lLWNvbG9y
Il9zKSAmJiAhZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobmV3VmFsdWUsICJ0aGVtZS1j
b2xvciJfcykpCi0gICAgICAgICAgICBkb2N1bWVudCgpLm1ldGFFbGVtZW50VGhlbWVDb2xvckNo
YW5nZWQoKnRoaXMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi12b2lkIEhUTUxNZXRh
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUgPT0gbmFtZUF0dHIpIHsKICAgICAg
ICAgcHJvY2VzcygpOworICAgICAgICBpZiAoaXNJbkRvY3VtZW50VHJlZSgpKSB7CisgICAgICAg
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1j
b2xvciJfcykgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHZhbHVlLCAidGhlbWUt
Y29sb3IiX3MpKQorICAgICAgICAgICAgICAgIGRvY3VtZW50KCkubWV0YUVsZW1lbnRUaGVtZUNv
bG9yQ2hhbmdlZCgqdGhpcyk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTMwLDggKzEyMiw2IEBAIHZvaWQgSFRNTE1ldGFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAgICAgIHByb2Nl
c3MoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IEhUTUxNZXRhRWxlbWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBp
bnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCmluZGV4IDFiMTI3MDdiNGI2Yy4uNGZiMTUwZTRh
YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGFFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDYg
QEAgcHJpdmF0ZToKICAgICBIVE1MTWV0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSkgZmluYWw7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVk
SW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2
b2lkIGRpZEZpbmlzaEluc2VydGluZ05vZGUoKTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDE5NTMyZTNmYTI3OC4uMGI4MzgxZTFlYTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKQEAgLTcxLDEyICs3MSwx
MiBAQCBib29sIEhUTUxNZXRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZSYgY2hpbGQpIGNvbnN0CiAgICAgcmV0dXJuICFpczxSZW5kZXJNZXRlcj4ocmVuZGVy
ZXIoKSkgJiYgSFRNTEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY2hpbGQpOwog
fQogCi12b2lkIEhUTUxNZXRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTWV0ZXJFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAo
bmFtZSA9PSB2YWx1ZUF0dHIgfHwgbmFtZSA9PSBtaW5BdHRyIHx8IG5hbWUgPT0gbWF4QXR0ciB8
fCBuYW1lID09IGxvd0F0dHIgfHwgbmFtZSA9PSBoaWdoQXR0ciB8fCBuYW1lID09IG9wdGltdW1B
dHRyKQogICAgICAgICBkaWRFbGVtZW50U3RhdGVDaGFuZ2UoKTsKICAgICBlbHNlCi0gICAgICAg
IEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogZG91YmxlIEhUTUxNZXRlckVsZW1lbnQ6Om1pbigp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5oCmluZGV4IDYxZjQwZmQ3
ZTE5MS4uYTBlN2ZhN2ZjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxN
ZXRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQu
aApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1l
bnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVl
UG9zaXRpb24mKSBmaW5hbDsKICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZSYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBm
aW5hbDsKIAogICAgIHZvaWQgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgdm9pZCBkaWRB
ZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCmluZGV4IDQ0ZjkxYWNlYjYzZC4uZjFjMGRkMzY2YWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAKQEAgLTgzLDcgKzgz
LDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW0KICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTE9MaXN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxPTGlzdEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHN0YXJ0QXR0cikgewogICAgICAgICBpbnQgb2xkU3RhcnQgPSBzdGFydCgpOwpAQCAt
OTgsNyArOTgsNyBAQCB2b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgICAgICBtX2lzUmV2ZXJz
ZWQgPSByZXZlcnNlZDsKICAgICAgICAgUmVuZGVyTGlzdEl0ZW06OnVwZGF0ZUl0ZW1WYWx1ZXNG
b3JPcmRlcmVkTGlzdCgqdGhpcyk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpzZXRTdGFydEZvckJpbmRpbmdzKGlu
dCBzdGFydCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggODNkYzBi
OTY5ZWQzLi5hNzJjNTg0MzY2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVu
dC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHVuc2lnbmVkIGl0ZW1Db3VudCgpIGNvbnN0OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBiODZlNzdhZWViNDguLjJk
Zjc0MzI5ZDFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAK
QEAgLTEwMCw4ICsxMDAsMTAgQEAgdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6Y29sbGVjdFByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRN
TFBsdWdJbkltYWdlRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIEhUTUxPYmplY3RFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGJvb2wgaW52YWxpZGF0ZVJlbmRlcmVyID0gZmFsc2U7CiAgICAgYm9vbCBuZWVk
c1dpZGdldFVwZGF0ZSA9IGZhbHNlOwogCkBAIC0xMTcsMTAgKzExOSw4IEBAIHZvaWQgSFRNTE9i
amVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpCiAgICAgfSBlbHNlIGlmIChuYW1lID09IGNsYXNzaWRBdHRyKSB7CiAgICAg
ICAgIGludmFsaWRhdGVSZW5kZXJlciA9IHRydWU7CiAgICAgICAgIG5lZWRzV2lkZ2V0VXBkYXRl
ID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfSBlbHNlCiAgICAgICAgIEZvcm1MaXN0
ZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAgfQogCiAgICAgaWYg
KG5lZWRzV2lkZ2V0VXBkYXRlKSB7CiAgICAgICAgIHNldE5lZWRzV2lkZ2V0VXBkYXRlKHRydWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDg4YzdiYzA4ZDNj
ZC4uNzVhYjFlYWY4ODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmpl
Y3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5o
CkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAKICAgICBpbnQgZGVmYXVsdFRhYkluZGV4KCkg
Y29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRz
Rm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
T3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCA2ZjA0ZTUwZWJkY2IuLjg1ZTVhZDU2ZGY1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwCkBAIC05MSw5ICs5
MSw5IEBAIHZvaWQgSFRNTE9wdEdyb3VwRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgSFRNTEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFu
Z2UpOwogfQogCi12b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1M
T3B0R3JvdXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICByZWNhbGNTZWxlY3RPcHRpb25zKCk7CiAKICAg
ICBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
R3JvdXBFbGVtZW50LmgKaW5kZXggZTI1MTk1ZDIyNTk2Li5mMzg4ZWI1MWEwMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3IEBAIHBy
aXZhdGU6CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsK
ICAgICBib29sIGlzRm9jdXNhYmxlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5k
ZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2b2lkIGNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
cHRpb25FbGVtZW50LmNwcAppbmRleCA0Mjc3MDQyMjcyOTMuLjQ0N2I3YTEzNDc4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTE3Myw3ICsxNzMsNyBA
QCBpbnQgSFRNTE9wdGlvbkVsZW1lbnQ6OmluZGV4KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0K
IAotdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxPcHRpb25FbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIpIHsKQEAgLTIw
MCw3ICsyMDAsNyBAQCB2b2lkIEhUTUxPcHRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgICAgICAvLyBoYXMgbm8g
ZWZmZWN0IG9uIHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWQuCiAgICAgICAgIHNldFNl
bGVjdGVkU3RhdGUoIXZhbHVlLmlzTnVsbCgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiBTdHJpbmcgSFRNTE9wdGlvbkVsZW1lbnQ6OnZhbHVlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCA3NmE3Yzk2MTE4
ODYuLjMzNmMyNzg1NmE0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQu
aApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChj
b25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBtYXRj
aGVzRGVmYXVsdFBzZXVkb0NsYXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sKSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVtZW50LmNwcAppbmRleCA5
MmQzZmYyNGExYTQuLmZjNWMxZGVjY2NjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0
cHV0RWxlbWVudC5jcHAKQEAgLTcwLDExICs3MCwxMSBAQCBib29sIEhUTUxPdXRwdXRFbGVtZW50
OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6OnN1cHBvcnRz
Rm9jdXMoKTsKIH0KIAotdm9pZCBIVE1MT3V0cHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxPdXRwdXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKICAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6OmZvckF0dHIgJiYgbV9mb3JUb2tlbnMpCiAg
ICAgICAgIG1fZm9yVG9rZW5zLT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVl
KTsKLSAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQg
SFRNTE91dHB1dEVsZW1lbnQ6OnJlc2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE91dHB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVs
ZW1lbnQuaAppbmRleCBiZDhjNmE4YjUxY2IuLmU3N2NjOTU4ZjEyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaApAQCAtNTQsNyArNTQsOCBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgYm9vbCBjb21wdXRlV2lsbFZhbGlkYXRlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CisKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIGlzRW51bWVyYXRhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJv
b2wgaXNMYWJlbGFibGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCAwOTBkOTAzYTdmNTIuLjQw
ZWFjNDlhNmQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwCkBAIC03Nyw3ICs3Nyw3IEBAIFJlbmRlclByb2dyZXNzKiBIVE1MUHJvZ3Jlc3NFbGVtZW50
OjpyZW5kZXJQcm9ncmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlclByb2dy
ZXNzPihkZXNjZW5kYW50c09mVHlwZTxFbGVtZW50PigqdXNlckFnZW50U2hhZG93Um9vdCgpKS5m
aXJzdCgpLT5yZW5kZXJlcigpKTsKIH0KIAotdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CiAgICAgICAg
IHVwZGF0ZURldGVybWluYXRlU3RhdGUoKTsKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBIVE1MUHJv
Z3Jlc3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3QKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWF4QXR0cikKICAgICAgICAgZGlk
RWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggM2JiNDhmNzU5
MTBhLi41NWFhODNjZmNmODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGlsZFNob3VsZENy
ZWF0ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKICAgICBSZW5kZXJQcm9ncmVz
cyogcmVuZGVyUHJvZ3Jlc3MoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMDQ3NjMzYWQ2YzJl
Li5iYzQxNDVlYTc1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlw
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCkBAIC02NSwxNCArNjUsMTQgQEAgdm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiAgICAgU2NyaXB0RWxlbWVudDo6Y2hp
bGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiB9CiAKLXZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBIVE1MU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0cikKICAgICAgICAgaGFuZGxl
U291cmNlQXR0cmlidXRlKHZhbHVlKTsKICAgICBlbHNlIGlmIChuYW1lID09IGFzeW5jQXR0cikK
ICAgICAgICAgaGFuZGxlQXN5bmNBdHRyaWJ1dGUoKTsKICAgICBlbHNlCi0gICAgICAgIEhUTUxF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRN
TFNjcmlwdEVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKaW5kZXggMzFlOTEwMzI0MTA5Li5iNTQ4ZGZhYmI4
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTYyLDcgKzYy
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1MU2NyaXB0RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIHdhc0luc2VydGVkQnlQYXJzZXIsIGJvb2wgYWxy
ZWFkeVN0YXJ0ZWQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwog
ICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2Vy
dGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc2Vy
dGluZ05vZGUoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApp
bmRleCBkOWVhZjE0MzcyZjYuLmZiZGJkZjk2ZDJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTI5MCw3ICsyOTAsNyBAQCBib29sIEhUTUxTZWxlY3RF
bGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmCiAgICAgcmV0dXJuIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSk7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc2l6ZUF0dHIpIHsKICAgICAg
ICAgdW5zaWduZWQgb2xkU2l6ZSA9IG1fc2l6ZTsKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0aXBsZUF0dHIpCiAg
ICAgICAgIHBhcnNlTXVsdGlwbGVBdHRyaWJ1dGUodmFsdWUpOwogICAgIGVsc2UKLSAgICAgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogaW50IEhUTUxT
ZWxlY3RFbGVtZW50OjpkZWZhdWx0VGFiSW5kZXgoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDc1OWRhZjJiODZkOS4uZWViMWQ2MTM5ZDA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0xMzQsNyArMTM0LDggQEAg
cHJpdmF0ZToKICAgICBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CisKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKGNvbnN0IE5vZGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU291cmNlRWxlbWVudC5jcHAKaW5kZXggM2YzNTVmYTZjZjQ1Li5jYWNkODI2MTgzZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuY3BwCkBAIC0xNTEsMTUgKzE1
MSwxOCBAQCB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpzdG9wKCkKICAgICBjYW5jZWxQZW5kaW5n
RXJyb3JFdmVudCgpOwogfQogCi12b2lkIEhUTUxTb3VyY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgSFRNTFNvdXJjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IHNyY3NldEF0dHIg
fHwgbmFtZSA9PSBzaXplc0F0dHIgfHwgbmFtZSA9PSBtZWRpYUF0dHIgfHwgbmFtZSA9PSB0eXBl
QXR0cikgewogICAgICAgICBpZiAobmFtZSA9PSBtZWRpYUF0dHIpCiAgICAgICAgICAgICBtX2Nh
Y2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlID0gc3RkOjpudWxsb3B0OwogICAgICAgICBSZWZQdHIg
cGFyZW50ID0gcGFyZW50Tm9kZSgpOwogICAgICAgICBpZiAobV9zaG91bGRDYWxsU291cmNlc0No
YW5nZWQgJiYgcGFyZW50KQogICAgICAgICAgICAgZG93bmNhc3Q8SFRNTFBpY3R1cmVFbGVtZW50
PigqcGFyZW50KS5zb3VyY2VzQ2hhbmdlZCgpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSB3aWR0
aEF0dHIgfHwgbmFtZSA9PSBoZWlnaHRBdHRyKSB7CisgICAgICAgIGlmIChSZWZQdHIgcGFyZW50
ID0gcGFyZW50Tm9kZSgpOyBpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVudCkpCisgICAgICAg
ICAgICBkb3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNvdXJjZURpbWVuc2lv
bkF0dHJpYnV0ZXNDaGFuZ2VkKCp0aGlzKTsKICAgICB9CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1F
TlQpCiAgICAgaWYgKG5hbWUgPT0gc3JjQXR0ciB8fCAgbmFtZSA9PSB0eXBlQXR0cikgewpAQCAt
MTc5LDEzICsxODIsNCBAQCBjb25zdCBNUTo6TWVkaWFRdWVyeUxpc3QmIEhUTUxTb3VyY2VFbGVt
ZW50OjpwYXJzZWRNZWRpYUF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdQogICAgIHJldHVybiBtX2Nh
Y2hlZFBhcnNlZE1lZGlhQXR0cmlidXRlLnZhbHVlKCk7CiB9CiAKLXZvaWQgSFRNTFNvdXJjZUVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gcmVhc29uKQotewotICAgIGlmIChuYW1lID09IHdpZHRoQXR0
ciB8fCBuYW1lID09IGhlaWdodEF0dHIpIHsKLSAgICAgICAgaWYgKFJlZlB0ciBwYXJlbnQgPSBw
YXJlbnROb2RlKCk7IGlzPEhUTUxQaWN0dXJlRWxlbWVudD4ocGFyZW50KSkKLSAgICAgICAgICAg
IGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4oKnBhcmVudCkuc291cmNlRGltZW5zaW9uQXR0
cmlidXRlc0NoYW5nZWQoKnRoaXMpOwotICAgIH0KLSAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7Ci19Ci0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCBmZTZmNDBkMTIyM2QuLmVlNDJl
YjU0YzUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaApAQCAtNTQs
OSArNTQsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUo
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
LQotICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgVGFza0NhbmNlbGxhdGlvbkdyb3VwIG1fZXJyb3JFdmVudENhbmNlbGxhdGlvbkdyb3VwOwog
ICAgIGJvb2wgbV9zaG91bGRDYWxsU291cmNlc0NoYW5nZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggMTUxZTJkZTY1NDlhLi40MDY2Zjc0
OWU5NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtNzYs
NyArNzYsNyBAQCBSZWY8SFRNTFN0eWxlRWxlbWVudD4gSFRNTFN0eWxlRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MU3R5bGVF
bGVtZW50KHN0eWxlVGFnLCBkb2N1bWVudCwgZmFsc2UpKTsKIH0KIAotdm9pZCBIVE1MU3R5bGVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFN0eWxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gdGl0bGVBdHRyICYm
IHNoZWV0KCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHNoZWV0KCktPnNldFRpdGxl
KHZhbHVlKTsKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBIVE1MU3R5bGVFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAgICAg
ICAgaWYgKGF1dG8qIHNjb3BlID0gbV9zdHlsZVNoZWV0T3duZXIuc3R5bGVTY29wZSgpKQogICAg
ICAgICAgICAgc2NvcGUtPmRpZENoYW5nZVN0eWxlU2hlZXRDb250ZW50cygpOwogICAgIH0gZWxz
ZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
ICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgSFRNTFN0eWxlRWxlbWVu
dDo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmgKaW5kZXggZjY5ODRjMTJkZDlhLi4zM2I0ZmI2NGEzODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN0eWxlRWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgSFRNTFN0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBi
b29sIGNyZWF0ZWRCeVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0
b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3Zl
ZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZv
aWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGJkODZjOTBjMGZiZC4u
NzIwNzRkNTk3OGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVt
ZW50LmNwcApAQCAtMTEyLDE2ICsxMTIsMTQgQEAgdm9pZCBIVE1MVGFibGVDZWxsRWxlbWVudDo6
Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWUKICAg
ICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVGFibGVDZWxsRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgaWYgKG5hbWUgPT0gcm93c3BhbkF0
dHIpIHsKLSAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkpCi0gICAg
ICAgICAgICBkb3duY2FzdDxSZW5kZXJUYWJsZUNlbGw+KCpyZW5kZXJlcigpKS5jb2xTcGFuT3JS
b3dTcGFuQ2hhbmdlZCgpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjb2xzcGFuQXR0cikgewor
ICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKworICAgIGlmIChuYW1lID09
IHJvd3NwYW5BdHRyIHx8IG5hbWUgPT0gY29sc3BhbkF0dHIpIHsKICAgICAgICAgaWYgKGlzPFJl
bmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkpCiAgICAgICAgICAgICBkb3duY2FzdDxSZW5kZXJU
YWJsZUNlbGw+KCpyZW5kZXJlcigpKS5jb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpOwotICAgIH0g
ZWxzZQotICAgICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgIH0KIH0KIAogY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyogSFRNTFRh
YmxlQ2VsbEVsZW1lbnQ6OmFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmgKaW5kZXggNWJkM2Rm
ZTNiOGY1Li45NTNlOWFjNTRlMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBIVE1M
VGFibGVDZWxsRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICBib29sIGhhc1By
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQ
cm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgY29uc3QgTXV0YWJsZVN0eWxlUHJvcGVydGllcyog
YWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRleCBlNzlhYTg5MDA1
MTAuLjQ5Y2Y3ZjAzYjEwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVDb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVs
ZW1lbnQuY3BwCkBAIC03Miw4ICs3MiwxMCBAQCB2b2lkIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZAogICAg
ICAgICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MVGFibGVDb2xFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRhYmxlQ29sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gc3BhbkF0dHIpIHsKICAgICAgICAgbV9zcGFu
ID0gY2xhbXBIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyVG9SYW5nZSh2YWx1ZSwgbWluU3BhbiwgbWF4
U3BhbiwgZGVmYXVsdFNwYW4pOwogICAgICAgICBpZiAoaXM8UmVuZGVyVGFibGVDb2w+KHJlbmRl
cmVyKCkpKQpAQCAtODcsOCArODksNyBAQCB2b2lkIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgICAg
ICAgICAgICAgICAgICBjb2wuc2V0TmVlZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTFRhYmxlUGFy
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIGNvbnN0
IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmFkZGl0aW9uYWxQ
cmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRh
YmxlQ29sRWxlbWVudC5oCmluZGV4IGVlZTdmYmNlMWI0ZC4uYWUzZDA1ZTNkMDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1lbnQuaApAQCAtNDIsNyArNDIsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxUYWJsZUNvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgY29uc3QgTXV0
YWJsZVN0eWxlUHJvcGVydGllcyogYWRkaXRpb25hbFByZXNlbnRhdGlvbmFsSGludFN0eWxlKCkg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAppbmRl
eCA3ZGJhZjI3YjZiMjYuLjdiODBjOTg4OWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUVsZW1lbnQuY3BwCkBAIC0zNjIsOCArMzYyLDEwIEBAIGJvb2wgSFRNTFRhYmxlRWxlbWVu
dDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuCiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxUYWJsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MVGFibGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBDZWxsQm9yZGVycyBi
b3JkZXJzQmVmb3JlID0gY2VsbEJvcmRlcnMoKTsKICAgICB1bnNpZ25lZCBzaG9ydCBvbGRQYWRk
aW5nID0gbV9wYWRkaW5nOwogCkBAIC0zOTgsOCArNDAwLDcgQEAgdm9pZCBIVE1MVGFibGVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW4KICAgICAgICAgICAgIG1fcGFkZGluZyA9IDE7CiAgICAgfSBlbHNlIGlmIChuYW1lID09
IGNvbHNBdHRyKSB7CiAgICAgICAgIC8vICMjIwotICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0KIAogICAgIGlmIChib3Jk
ZXJzQmVmb3JlICE9IGNlbGxCb3JkZXJzKCkgfHwgb2xkUGFkZGluZyAhPSBtX3BhZGRpbmcpIHsK
ICAgICAgICAgbV9zaGFyZWRDZWxsU3R5bGUgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUVsZW1lbnQuaAppbmRleCBiYWNmYTQ2ZGRmZjUuLjc1MTI0NTg5OGU3MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKaW5kZXggOTUwZTExODYwNjA3Li5iYmYzZWU2MTBiZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMTQzLDggKzE0Myw5
IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkCiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MVGV4dEFyZWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikKIHsKKyAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAg
ICAgaWYgKG5hbWUgPT0gcm93c0F0dHIpIHsKICAgICAgICAgdW5zaWduZWQgcm93cyA9IGxpbWl0
VG9Pbmx5SFRNTE5vbk5lZ2F0aXZlTnVtYmVyc0dyZWF0ZXJUaGFuWmVybyh2YWx1ZSwgZGVmYXVs
dFJvd3MpOwogICAgICAgICBpZiAobV9yb3dzICE9IHJvd3MpIHsKQEAgLTE4MCw4ICsxODEsNyBA
QCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtaW5sZW5n
dGhBdHRyKSB7CiAgICAgICAgIGludGVybmFsU2V0TWluTGVuZ3RoKHBhcnNlSFRNTE5vbk5lZ2F0
aXZlSW50ZWdlcih2YWx1ZSkudmFsdWVfb3IoLTEpKTsKICAgICAgICAgdXBkYXRlVmFsaWRpdHko
KTsKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBIVE1MVGV4dEFyZWFFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5
bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggNzVjNWMxMzNjZTc0Li4zM2IyYzg0ZWUxY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC05Myw3ICs5
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdl
JikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJv
b2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVT
dHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCA1ZjNkMDcxNmNhNzkuLjk3Y2YxYWFjMzFkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAg
LTU0NywxNSArNTQ3LDE1IEBAIHZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVj
dGlvbkNoYW5nZWQoYm9vbCBzaG91bGRGaXJlU2VsZWN0RXZlbnQpCiB2b2lkIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpzY2hlZHVsZVNlbGVjdEV2ZW50KCkKIHsKICAgICBxdWV1ZVRhc2tU
b0Rpc3BhdGNoRXZlbnQoVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5zZWxlY3RFdmVudCwgRXZlbnQ6OkNhbkJ1YmJsZTo6WWVzLCBFdmVudDo6
SXNDYW5jZWxhYmxlOjpObykpOwotfSAKK30KIAotdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBwbGFj
ZWhvbGRlckF0dHIpIHsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJUZXh0KCk7CiAgICAgICAg
IHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSgpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAg
IEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50OjpkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggODUxMDZhZDQ0
OTk0Li5iM2QwZWJkNjVmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRl
eHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBpc1BsYWNlaG9sZGVyRW1wdHkoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
UGxhY2Vob2xkZXJUZXh0KCkgPSAwOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNhYmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDBjOTYzZGE3YjhjYS4uZWRkYzk4Yzhm
ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTEwMyw3
ICsxMDMsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVt
b3ZhbFR5cGUgcmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZAogICAgICAgICBkb3duY2FzdDxIVE1M
TWVkaWFFbGVtZW50PihvbGRQYXJlbnRPZlJlbW92ZWRUcmVlKS5kaWRSZW1vdmVUZXh0VHJhY2so
KnRoaXMpOwogfQogCi12b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1M
VHJhY2tFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsK
ICAgICBpZiAobmFtZSA9PSBzcmNBdHRyKSB7CiAgICAgICAgIHNjaGVkdWxlTG9hZCgpOwpAQCAt
MTE3LDcgKzExNyw3IEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgZWxzZSBpZiAobmFt
ZSA9PSBzcmNsYW5nQXR0cikKICAgICAgICAgdHJhY2soKS5zZXRMYW5ndWFnZSh2YWx1ZSk7CiAK
LSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogY29uc3QgQXRvbVN0cmluZyYgSFRNTFRyYWNrRWxl
bWVudDo6a2luZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDNm
NDRlMGE4ZTE0YS4uZTIyNTFlMDRmYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0Vs
ZW1lbnQuaApAQCAtNzMsNyArNzMsNyBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHZpcnR1YWxIYXNQZW5kaW5n
QWN0aXZpdHkoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBmaW5hbDsKIAogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0Fu
Y2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJl
bW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGJiNDgxMWEyMDkyOS4u
YWYwNGFjZDI5NDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
QEAgLTEzMyw3ICsxMzMsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6Omhhc1ByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbgogICAgIHJldHVybiBI
VE1MTWVkaWFFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUp
OwogfQogCi12b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVmlkZW9F
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBp
ZiAobmFtZSA9PSBwb3N0ZXJBdHRyKSB7CiAgICAgICAgIGlmIChzaG91bGREaXNwbGF5UG9zdGVy
SW1hZ2UoKSkgewpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAg
ICAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsgICAgCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICAgICAgaWYgKG5hbWUgPT0gd2Via2l0YWlycGxheUF0
dHIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKaW5kZXggOTBkMjg3OGJk
Y2FjLi5kZjdmYzJmZThjYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5o
CkBAIC0xMjYsNyArMTI2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlUmVzaXplRXZl
bnRJZlNpemVDaGFuZ2VkKCkgZmluYWw7CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBmaW5h
bDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgYm9vbCBoYXNQ
cmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25z
dCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIGZpbmFsOwogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCA5ZDJh
YjlhOGY2ODUuLjlhNWVlZjczM2MyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCB1bnNpZ25lZCBNYXRoTUxFbGVtZW50Ojpyb3dTcGFu
KCkgY29uc3QKICAgICByZXR1cm4gc3RkOjptYXgoMXUsIHN0ZDo6bWluKGxpbWl0VG9Pbmx5SFRN
TE5vbk5lZ2F0aXZlKHJvd1NwYW5WYWx1ZSwgMXUpLCBtYXhSb3dzcGFuKSk7CiB9CiAKLXZvaWQg
TWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IGhyZWZBdHRy
KSB7CiAgICAgICAgIGJvb2wgd2FzTGluayA9IGlzTGluaygpOwpAQCAtMTAzLDcgKzEwMyw3IEBA
IHZvaWQgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIFN0eWxlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICAgICAgU3R5bGVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuaAppbmRleCBlODg5NmFhZDNkZjEuLjUyZjNlZmJiNDY1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBNYXRoTUxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50JiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZU1hdGhNTEVsZW1l
bnQpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAg
IGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmNwcAppbmRleCA5ODgyOWQzMWY0ZGQuLmEwYTc5Mzcw
ZTQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVu
dC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBNYXRoTUxGcmFjdGlvbkVsZW1lbnQ6OkZyYWN0aW9u
QWxpZ25tZW50IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6ZGVub21pbmF0b3JBbGlnbgogICAgIHJl
dHVybiBjYWNoZWRGcmFjdGlvbkFsaWdubWVudChkZW5vbWFsaWduQXR0ciwgbV9kZW5vbWluYXRv
ckFsaWdubWVudCk7CiB9CiAKLXZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
K3ZvaWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBsaW5ldGhpY2tuZXNzQXR0cikKICAgICAg
ICAgbV9saW5lVGhpY2tuZXNzID0gc3RkOjpudWxsb3B0OwpAQCAtMTE4LDcgKzExOCw3IEBAIHZv
aWQgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tCiAgICAgZWxzZSBpZiAobmFtZSA9PSBkZW5vbWFsaWduQXR0
cikKICAgICAgICAgbV9kZW5vbWluYXRvckFsaWdubWVudCA9IHN0ZDo6bnVsbG9wdDsKIAotICAg
IE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhN
TEZyYWN0aW9uRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5
bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MRnJhY3Rpb25FbGVtZW50LmgKaW5kZXggNjk1YzU4MTMyMTY5Li42YzIwMmQ5ZWIwYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmgKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxGcmFjdGlvbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKICAgICBSZW5kZXJQ
dHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNv
bnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBmaW5hbDsKIAogICAgIEZyYWN0aW9uQWxpZ25tZW50IGNhY2hlZEZyYWN0aW9uQWxp
Z25tZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBzdGQ6Om9wdGlvbmFsPEZyYWN0aW9uQWxpZ25t
ZW50PiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcApp
bmRleCA1MTVjOWI5NTk1NDcuLjU4NzNjZTE0NjU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MTWF0aEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBNYXRoTUxNYXRoRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRl
clN0eWxlJiYKICAgICByZXR1cm4gY3JlYXRlUmVuZGVyZXI8UmVuZGVyTWF0aE1MTWF0aD4oKnRo
aXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAotdm9pZCBNYXRoTUxNYXRoRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBib29sIG1hdGhWYXJpYW50QXR0cmlidXRlID0gbmFtZSA9PSBt
YXRodmFyaWFudEF0dHI7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRlKQpAQCAtNjMsNyAr
NjMsNyBAQCB2b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogICAgIGlmICgobWF0aFZhcmlhbnRBdHRy
aWJ1dGUpICYmIHJlbmRlcmVyKCkpCiAgICAgICAgIE1hdGhNTFN0eWxlOjpyZXNvbHZlTWF0aE1M
U3R5bGVUcmVlKHJlbmRlcmVyKCkpOwogCi0gICAgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2
b2lkIE1hdGhNTE1hdGhFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MTWF0aEVsZW1lbnQuaAppbmRleCAzNWM5YzFmNjk4NjQuLmFhNjUzMGQx
MTQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKQEAgLTQx
LDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdGV4cHIgc3RhdGljIGF1dG8g
Q3JlYXRlTWF0aE1MTWF0aEVsZW1lbnQgPSBDcmVhdGVNYXRoTUxSb3dFbGVtZW50IHwgTm9kZUZs
YWc6Okhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrczsKICAgICBNYXRoTUxNYXRoRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5h
bDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygp
IGZpbmFsOwogCiAgICAgYm9vbCBhY2NlcHRzTWF0aFZhcmlhbnRBdHRyaWJ1dGUoKSBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
TWVuY2xvc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9z
ZUVsZW1lbnQuY3BwCmluZGV4IGNhNjI0Y2MzYmQxNC4uMTI0ZjlkYjUzYWUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmNwcApAQCAtMTMzLDEy
ICsxMzMsMTIgQEAgYm9vbCBNYXRoTUxNZW5jbG9zZUVsZW1lbnQ6Omhhc05vdGF0aW9uKE1lbmNs
b3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykKICAgICByZXR1cm4gbV9ub3RhdGlvbkZsYWdz
LnZhbHVlKCkgJiBub3RhdGlvbkZsYWc7CiB9CiAKLXZvaWQgTWF0aE1MTWVuY2xvc2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBub3RhdGlvbkF0dHIp
CiAgICAgICAgIG1fbm90YXRpb25GbGFncyA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIE1hdGhNTFJv
d0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxSb3dFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TE1lbmNsb3NlRWxlbWVudC5oCmluZGV4IDA1MDZiNWYwMDBmZi4uZTI4NTU5Y2U5ZTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCkBAIC01OSw3
ICs1OSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MTWVuY2xvc2VFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgcGFyc2VOb3RhdGlvbkF0dHJpYnV0ZSgpOwogICAgIHZvaWQgY2xlYXJOb3Rh
dGlvbnMoKSB7IG1fbm90YXRpb25GbGFncyA9IDA7IH0KICAgICB2b2lkIGFkZE5vdGF0aW9uKE1l
bmNsb3NlTm90YXRpb25GbGFnIG5vdGF0aW9uRmxhZykgeyBtX25vdGF0aW9uRmxhZ3MudmFsdWUo
KSB8PSBub3RhdGlvbkZsYWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9w
ZXJhdG9yRWxlbWVudC5jcHAKaW5kZXggZDk3Mjg4Y2RjNjM5Li4xMzhlMTA0YWI1MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuY3BwCkBAIC0y
MjksNyArMjI5LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8TWF0aE1MT3BlcmF0b3JEaWN0aW9u
YXJ5OjpGbGFnPiBhdHRyaWJ1dGVOYW1lVG9Qcm9wZXJ0eUZsYWcKICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogfQogCi12b2lkIE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IE1hdGhNTE9wZXJhdG9yRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gZm9ybUF0dHIpIHsKICAgICAgICAgbV9kaWN0aW9u
YXJ5UHJvcGVydHkgPSBzdGQ6Om51bGxvcHQ7CkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBNYXRo
TUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b20KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIE1hdGhNTFRva2Vu
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTFRva2VuRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxP
cGVyYXRvckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTE9wZXJhdG9yRWxlbWVudC5oCmluZGV4IGUxYzllNjc0Y2U2OC4uYmJhOTUxNzE1MzcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCkBAIC01
Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgTWF0aE1MT3BlcmF0b3JFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
IAogICAgIHN0ZDo6b3B0aW9uYWw8T3BlcmF0b3JDaGFyPiBtX29wZXJhdG9yQ2hhcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuY3BwCmluZGV4IDk0ZjJj
M2UyMjExYy4uYjc1YmJiOTU5OTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MUGFkZGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFBhZGRlZEVsZW1lbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6
Okxlbmd0aCYgTWF0aE1MUGFkZGVkRWxlbWVudDo6dm9mZnNldCgpCiAgICAgcmV0dXJuIGNhY2hl
ZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6dm9mZnNldEF0dHIsIG1fdm9mZnNldCk7CiB9CiAK
LXZvaWQgTWF0aE1MUGFkZGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTFBhZGRlZEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlm
IChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgbV93aWR0aCA9IHN0ZDo6bnVsbG9wdDsKQEAg
LTg2LDcgKzg2LDcgQEAgdm9pZCBNYXRoTUxQYWRkZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICBlbHNlIGlmIChuYW1l
ID09IHZvZmZzZXRBdHRyKQogICAgICAgICBtX3ZvZmZzZXQgPSBzdGQ6Om51bGxvcHQ7CiAKLSAg
ICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1M
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRo
TUxQYWRkZWRFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MUGFkZGVkRWxlbWVudC5oCmluZGV4IDYzOTQ3ODkxZDQyYy4uZWZjZmE5YjJjNWU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxQYWRkZWRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPExlbmd0aD4gbV93aWR0aDsKICAgICBzdGQ6Om9wdGlv
bmFsPExlbmd0aD4gbV9oZWlnaHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MUHJlc2VudGF0aW9uRWxlbWVudC5jcHAKaW5kZXggYjJmZWQ1MjFhZTkzLi5hZTJjMjJhYmU2
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9u
RWxlbWVudC5jcHAKQEAgLTM2Miw3ICszNjIsNyBAQCBzdGQ6Om9wdGlvbmFsPE1hdGhNTEVsZW1l
bnQ6Ok1hdGhWYXJpYW50PiBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50OjpzcGVjaWZpZWRNYQog
ICAgIHJldHVybiBtX21hdGhWYXJpYW50LnZhbHVlKCkgPT0gTWF0aFZhcmlhbnQ6Ok5vbmUgPyBz
dGQ6Om51bGxvcHQgOiBtX21hdGhWYXJpYW50OwogfQogCi12b2lkIE1hdGhNTFByZXNlbnRhdGlv
bkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBib29sIG1hdGhWYXJp
YW50QXR0cmlidXRlID0gbmFtZSA9PSBtYXRodmFyaWFudEF0dHIgJiYgYWNjZXB0c01hdGhWYXJp
YW50QXR0cmlidXRlKCk7CiAgICAgaWYgKG1hdGhWYXJpYW50QXR0cmlidXRlKQpAQCAtMzcwLDcg
KzM3MCw3IEBAIHZvaWQgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICBpZiAoKG1hdGhWYXJpYW50QXR0
cmlidXRlKSAmJiByZW5kZXJlcigpKQogICAgICAgICBNYXRoTUxTdHlsZTo6cmVzb2x2ZU1hdGhN
TFN0eWxlVHJlZShyZW5kZXJlcigpKTsKIAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50
LmgKaW5kZXggNzU2MWI5ZjMxMTk1Li43NTA4MDQzN2VhMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZU1h
dGhNTFByZXNlbnRhdGlvbkVsZW1lbnQgPSBDcmVhdGVNYXRoTUxFbGVtZW50OwogICAgIE1hdGhN
TFByZXNlbnRhdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQmLCBDb25zdHJ1Y3Rpb25UeXBlID0gQ3JlYXRlTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudCk7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgc3Rh
dGljIGJvb2wgaXNQaHJhc2luZ0NvbnRlbnQoY29uc3QgTm9kZSYpOwogICAgIHN0YXRpYyBib29s
IGlzRmxvd0NvbnRlbnQoY29uc3QgTm9kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxTY3JpcHRzRWxlbWVudC5jcHAKaW5kZXggMDY0ZWEwODlmOWNhLi40NDlmM2ZkMWU4NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNjcmlwdHNFbGVtZW50LmNwcApA
QCAtNzcsMTQgKzc3LDE0IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0aCYgTWF0aE1MU2Ny
aXB0c0VsZW1lbnQ6OnN1cGVyc2NyaXB0U2hpZnQoKQogICAgIHJldHVybiBjYWNoZWRNYXRoTUxM
ZW5ndGgoc3VwZXJzY3JpcHRzaGlmdEF0dHIsIG1fc3VwZXJzY3JpcHRTaGlmdCk7CiB9CiAKLXZv
aWQgTWF0aE1MU2NyaXB0c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxTY3JpcHRzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gc3Vic2NyaXB0c2hpZnRBdHRyKQogICAgICAgICBtX3N1YnNjcmlwdFNoaWZ0ID0g
c3RkOjpudWxsb3B0OwogICAgIGVsc2UgaWYgKG5hbWUgPT0gc3VwZXJzY3JpcHRzaGlmdEF0dHIp
CiAgICAgICAgIG1fc3VwZXJzY3JpcHRTaGlmdCA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIE1hdGhN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFNjcmlw
dHNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29u
c3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNj
cmlwdHNFbGVtZW50LmgKaW5kZXggNGFhNjMyYThkYTcwLi5jYzY5NDM5MTQ1MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3
IEBAIHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3Np
dGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVy
cmlkZTsKIAogICAgIGNvbnN0IFNjcmlwdFR5cGUgbV9zY3JpcHRUeXBlOwogICAgIHN0ZDo6b3B0
aW9uYWw8TGVuZ3RoPiBtX3N1YnNjcmlwdFNoaWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU3BhY2VFbGVtZW50LmNwcAppbmRleCBkNTZlM2EwNDBkNTkuLjE0OTczNjI1MTgzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5jcHAKQEAgLTYz
LDcgKzYzLDcgQEAgY29uc3QgTWF0aE1MRWxlbWVudDo6TGVuZ3RoJiBNYXRoTUxTcGFjZUVsZW1l
bnQ6OmRlcHRoKCkKICAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVuZ3RoKE1hdGhNTE5hbWVzOjpk
ZXB0aEF0dHIsIG1fZGVwdGgpOwogfQogCi12b2lkIE1hdGhNTFNwYWNlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIE1hdGhNTFNwYWNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gd2lkdGhBdHRyKQogICAgICAgICBtX3dp
ZHRoID0gc3RkOjpudWxsb3B0OwpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIE1hdGhNTFNwYWNlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cgogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGVwdGhBdHRyKQogICAgICAgICBtX2RlcHRoID0g
c3RkOjpudWxsb3B0OwogCi0gICAgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MU3BhY2VFbGVtZW50
OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxT
cGFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQu
aAppbmRleCBlZDUyNGFkYjUyY2MuLmY5M2MyMjUyOGEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbWF0aG1sL01hdGhNTFNwYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIE1hdGhNTFNwYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50
UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgc3RkOjpvcHRp
b25hbDxMZW5ndGg+IG1fd2lkdGg7CiAgICAgc3RkOjpvcHRpb25hbDxMZW5ndGg+IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3Bw
CmluZGV4IDA0ZmIwMTI3OTNkZi4uMzU0Njk4MDY0ZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCkBAIC01OCwxNCArNTgsMTQgQEAg
Y29uc3QgTWF0aE1MRWxlbWVudDo6Qm9vbGVhblZhbHVlJiBNYXRoTUxVbmRlck92ZXJFbGVtZW50
OjphY2NlbnRVbmRlcigpCiAgICAgcmV0dXJuIGNhY2hlZEJvb2xlYW5BdHRyaWJ1dGUoYWNjZW50
dW5kZXJBdHRyLCBtX2FjY2VudFVuZGVyKTsKIH0KIAotdm9pZCBNYXRoTUxVbmRlck92ZXJFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gYWNjZW50QXR0
cikKICAgICAgICAgbV9hY2NlbnQgPSBzdGQ6Om51bGxvcHQ7CiAgICAgZWxzZSBpZiAobmFtZSA9
PSBhY2NlbnR1bmRlckF0dHIpCiAgICAgICAgIG1fYWNjZW50VW5kZXIgPSBzdGQ6Om51bGxvcHQ7
CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
TWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBNYXRoTUxVbmRlck92ZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5
bGUmJiBzdHlsZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oCmluZGV4IDFjY2NhYjcwYzc4My4uN2Jl
MTc4ZDQ3NmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJP
dmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJF
bGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBNYXRoTUxV
bmRlck92ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7
CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5k
ZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBzdGQ6Om9wdGlvbmFsPEJvb2xlYW5W
YWx1ZT4gbV9hY2NlbnQ7CiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuVmFsdWU+IG1fYWNjZW50
VW5kZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBhMjllZDhmODg4NWEuLmVj
YTYzMmNlN2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBAIC03OSw4ICs3OSwx
MCBAQCBTdHJpbmcgU1ZHQUVsZW1lbnQ6OnRpdGxlKCkgY29uc3QKICAgICByZXR1cm4gU1ZHRWxl
bWVudDo6dGl0bGUoKTsKIH0KIAotdm9pZCBTVkdBRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNW
R0FFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAg
ICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0
YXJnZXRBdHRyKSB7CiAgICAgICAgIG1fdGFyZ2V0LT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUp
OwogICAgICAgICByZXR1cm47CkBAIC04OCw5ICs5MCw2IEBAIHZvaWQgU1ZHQUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhCiAgICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29j
aWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLQotICAgIFNWR0dyYXBo
aWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIFNWR1VSSVJlZmVy
ZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0FFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQUVsZW1lbnQuaAppbmRleCBjMDgzOWU0NWUzZTEuLjQxNjM2NjAwNmY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJpdmF0ZToKIAogICAg
IHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQUVs
ZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVs
ZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJU
cmVlUG9zaXRpb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRlTW90aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuY3BwCmluZGV4IDk4MzZhYmI0Y2U5OS4uZGMzN2Q3N2FhMWI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTk4LDE1
ICs5OCwxNCBAQCBib29sIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpoYXNWYWxpZEF0dHJpYnV0
ZU5hbWUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnBhdGhBdHRy
KSB7CiAgICAgICAgIG1fcGF0aCA9IGJ1aWxkUGF0aEZyb21TdHJpbmcodmFsdWUpOwogICAgICAg
ICB1cGRhdGVBbmltYXRpb25QYXRoKCk7Ci0gICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBT
VkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAgICAg
CiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Um90YXRlTW9kZSBTVkdBbmltYXRlTW90aW9uRWxl
bWVudDo6cm90YXRlTW9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
TW90aW9uRWxlbWVudC5oCmluZGV4IDgyZDg4YTM1MmIzYy4uYjZmOWEyNjIxYTgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApAQCAtMzksNyArMzks
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgYm9vbCBoYXNWYWxpZEF0dHJpYnV0ZU5hbWUoKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgc3RhcnRBbmltYXRpb24oKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BBbmltYXRpb24oU1ZH
RWxlbWVudCogdGFyZ2V0RWxlbWVudCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAppbmRleCBkMTUzZDE0YmI4NmEuLjJl
MTJlNzk2NjllNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIGJvb2wgU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQ6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNWR0Fu
aW1hdGVFbGVtZW50QmFzZTo6aGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCk7CiB9CiAKLXZvaWQgU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAgICAgIG1fdHlwZSA9IFNW
R1RyYW5zZm9ybWFibGU6OnBhcnNlVHJhbnNmb3JtVHlwZSh2YWx1ZSkudmFsdWVfb3IoU1ZHVHJh
bnNmb3JtVmFsdWU6OlNWR19UUkFOU0ZPUk1fVU5LTk9XTik7CkBAIC02Myw3ICs2Myw3IEBAIHZv
aWQgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdB
bmltYXRlRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdB
bmltYXRlRWxlbWVudEJhc2U6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVl
LCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBTdHJpbmcgU1ZHQW5pbWF0ZVRy
YW5zZm9ybUVsZW1lbnQ6OmFuaW1hdGVSYW5nZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50
LmgKaW5kZXggOThkYTcwZTI2ZDZmLi41YWU1Nzg2MWQzMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHBy
aXZhdGU6CiAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAgICAgCiAgICAgYm9vbCBoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSBj
b25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
U3RyaW5nIGFuaW1hdGVSYW5nZVN0cmluZyhjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKIAog
ICAgIFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIG1fdHlwZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcAppbmRleCAwNzA5ODQzNTE3NTguLjA3
YTQwM2E1OWZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNw
cApAQCAtMTYzLDggKzE2MywxMCBAQCBib29sIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OmF0dHJpYnV0
ZUNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYgogICAgIHJldHVy
biBFbGVtZW50OjphdHRyaWJ1dGVDb250YWluc0phdmFTY3JpcHRVUkwoYXR0cmlidXRlKTsKIH0K
IAotdm9pZCBTVkdBbmltYXRpb25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQW5pbWF0aW9u
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAg
U1ZHU01JTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OnZhbHVlc0F0dHIpIHsKICAgICAgICAgLy8gUGVyIHRoZSBTTUlMIHNwZWNpZmljYXRpb24sIGxl
YWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlLAogICAgICAgICAvLyBhbmQgd2hpdGUgc3Bh
Y2UgYmVmb3JlIGFuZCBhZnRlciBzZW1pY29sb24gc2VwYXJhdG9ycywgaXMgYWxsb3dlZCBhbmQg
d2lsbCBiZSBpZ25vcmVkLgpAQCAtMjE1LDcgKzIxNyw2IEBAIHZvaWQgU1ZHQW5pbWF0aW9uRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdTTUlMRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRp
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCmlu
ZGV4IGVkMWQ1NGMwZDU5ZS4uYmQ5YTJlZWE3Mjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgc3Rh
dGljIGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAg
IGJvb2wgYXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogCiAgICAgU3RyaW5nIHRvVmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
aXJjbGVFbGVtZW50LmNwcAppbmRleCA2ODkxODgxM2VmNzcuLjVjZmUzY2Q1Y2Y2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApAQCAtNTAsNyArNTAsNyBAQCBSZWY8
U1ZHQ2lyY2xlRWxlbWVudD4gU1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0NpcmNsZUVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdDaXJjbGVFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vy
cm9yOwogCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAKICAgICBy
ZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0g
ICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdDaXJjbGVFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKaW5kZXggYmQyODQ0YmU1NzBiLi42ZTM0
NDc4YmIxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaApAQCAtNDQsNyAr
NDQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdDaXJjbGVFbGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+Owog
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlz
VmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGU4YWZmZTdhYzIzZi4u
YWQxMDc1ZGZhOGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNw
cApAQCAtNTAsNyArNTAsNyBAQCBSZWY8U1ZHQ2xpcFBhdGhFbGVtZW50PiBTVkdDbGlwUGF0aEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR0NsaXBQYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
Ci12b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0NsaXBQYXRoRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OmNsaXBQYXRoVW5pdHNBdHRyKSB7CiAgICAgICAgIGF1dG8gcHJv
cGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+
Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBTVkdDbGlwUGF0aEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5oCmluZGV4IGViZDIyNzI1ODA5YS4uMGU5MGI2Nzk0NjQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHByaXZh
dGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5PFNWR0NsaXBQYXRoRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50PjsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCmluZGV4IDcy
MTAxODhkMDgyYS4uNTk5YTVmZTMzZjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKQEAgLTQ3LDcg
KzQ3LDcgQEAgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OlNWR0NvbXBvbmVu
dFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50KGNvbnN0IFEKICAgICB9KTsKIH0KIAotdm9pZCBTVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0NvbXBv
bmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0dHIpIHsKICAg
ICAgICAgQ29tcG9uZW50VHJhbnNmZXJUeXBlIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRy
YWl0czxDb21wb25lbnRUcmFuc2ZlclR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg2LDcg
Kzg2LDcgQEAgdm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmEKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50LmgKaW5kZXggZGJmZGM5YmVjODc2Li5lN2FkMzQwYjYzYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9u
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1
bmN0aW9uRWxlbWVudC5oCkBAIC05NCw3ICs5NCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHJlbmRlcmVySXNO
ZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCmluZGV4IDVjNDQwNTVlOTBmZi4uNzIw
ZTY5NjcyMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuY3BwCkBAIC01
OCw3ICs1OCw3IEBAIFNWR0N1cnNvckVsZW1lbnQ6On5TVkdDdXJzb3JFbGVtZW50KCkKICAgICAg
ICAgY2xpZW50LT5jdXJzb3JFbGVtZW50UmVtb3ZlZCgqdGhpcyk7CiB9CiAKLXZvaWQgU1ZHQ3Vy
c29yRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0N1cnNvckVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJz
ZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNjksOSArNjksOSBAQCB2b2lkIFNWR0N1cnNvckVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUs
IHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
LSAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJl
ZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOworICAgIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9
CiAKIHZvaWQgU1ZHQ3Vyc29yRWxlbWVudDo6YWRkQ2xpZW50KFN0eWxlQ3Vyc29ySW1hZ2UmIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKaW5kZXggM2FlYWQzNzA0Zjk4
Li4wNzZlMTJjMDhhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQuaApAQCAt
NDksOCArNDksOCBAQCBwcml2YXRlOgogICAgIFNWR0N1cnNvckVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZH
UHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0N1cnNvckVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1Rl
c3RzLCBTVkdVUklSZWZlcmVuY2U+OwotICAgIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXgg
MTc0YWFkOGVjZDZiLi45NzkyMTdjNzkzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAK
QEAgLTQxMCwyOCArNDEwLDYgQEAgdm9pZCBTVkdFbGVtZW50OjpzZXRDb3JyZXNwb25kaW5nRWxl
bWVudChTVkdFbGVtZW50KiBjb3JyZXNwb25kaW5nRWxlbWVudCkKICAgICAgICAgY29ycmVzcG9u
ZGluZ0VsZW1lbnQtPmVuc3VyZVNWR1JhcmVEYXRhKCkuYWRkSW5zdGFuY2UoKnRoaXMpOwogfQog
Ci12b2lkIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQotewotICAgIGlmIChuYW1lID09IEhUTUxOYW1l
czo6Y2xhc3NBdHRyKSB7Ci0gICAgICAgIG1fY2xhc3NOYW1lLT5zZXRCYXNlVmFsSW50ZXJuYWwo
dmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG5hbWUgPT0gSFRNTE5h
bWVzOjp0YWJpbmRleEF0dHIpIHsKLSAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIHNldFRhYkluZGV4RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOwotICAgICAgICBlbHNl
IGlmIChhdXRvIG9wdGlvbmFsVGFiSW5kZXggPSBwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKSkKLSAg
ICAgICAgICAgIHNldFRhYkluZGV4RXhwbGljaXRseShvcHRpb25hbFRhYkluZGV4LnZhbHVlKCkp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byYgZXZlbnROYW1lID0gSFRNTEVs
ZW1lbnQ6OmV2ZW50TmFtZUZvckV2ZW50SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKLSAgICBpZiAo
IWV2ZW50TmFtZS5pc051bGwoKSkgewotICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZSwgbmFtZSwgdmFsdWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCiBi
b29sIFNWR0VsZW1lbnQ6OmhhdmVMb2FkZWRSZXF1aXJlZFJlc291cmNlcygpCiB7CiAgICAgZm9y
IChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFNWR0VsZW1lbnQ+KCp0aGlzKSkgewpAQCAt
NjExLDEzICs1ODksMjQgQEAgYm9vbCBTVkdFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRl
cmVyKGNvbnN0IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiBzdmdDaGlsZC5pc1ZhbGlk
KCk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKK3ZvaWQgU1ZHRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU3R5bGVk
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgbmV3VmFsdWUpOworICAg
IFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVz
OjppZEF0dHIpCiAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlYnVp
bGRBbGxFbGVtZW50UmVmZXJlbmNlc0ZvclRhcmdldCgqdGhpcyk7Ci0KKyAgICBlbHNlIGlmIChu
YW1lID09IEhUTUxOYW1lczo6Y2xhc3NBdHRyKSB7CisgICAgICAgIG1fY2xhc3NOYW1lLT5zZXRC
YXNlVmFsSW50ZXJuYWwodmFsdWUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBIVE1MTmFtZXM6
OnRhYmluZGV4QXR0cikgeworICAgICAgICBpZiAodmFsdWUuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIGVsc2UgaWYg
KGF1dG8gb3B0aW9uYWxUYWJJbmRleCA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpKQorICAgICAg
ICAgICAgc2V0VGFiSW5kZXhFeHBsaWNpdGx5KG9wdGlvbmFsVGFiSW5kZXgudmFsdWUoKSk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byYgZXZlbnROYW1lID0gSFRNTEVsZW1lbnQ6OmV2ZW50
TmFtZUZvckV2ZW50SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKKyAgICAgICAgaWYgKCFldmVudE5h
bWUuaXNOdWxsKCkpCisgICAgICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZSwgbmFtZSwgdmFsdWUpOworICAgIH0KICAgICAvLyBDaGFuZ2VzIHRvIHRoZSBzdHlsZSBh
dHRyaWJ1dGUgYXJlIHByb2Nlc3NlZCBsYXppbHkgKHNlZSBFbGVtZW50OjpnZXRBdHRyaWJ1dGUo
KSBhbmQgcmVsYXRlZCBtZXRob2RzKSwKICAgICAvLyBzbyB3ZSBkb24ndCB3YW50IGNoYW5nZXMg
dG8gdGhlIHN0eWxlIGF0dHJpYnV0ZSB0byByZXN1bHQgaW4gZXh0cmEgd29yayBoZXJlIGV4Y2Vw
dCBpbnZhbGlkYXRlSW5zdGFuY2VzKCkuCiAgICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpzdHls
ZUF0dHIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAppbmRleCA4ZmZhZGJlNGE2MWMuLjE5MTVjNmNh
ZDVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC0xNzQsNyArMTc0LDYgQEAgcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgflNWR0VsZW1lbnQoKTsKIAogICAgIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAKaW5kZXggMWI0N2Y4Y2UyYjVkLi5kN2YyYzAyMWFjNTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBS
ZWY8U1ZHRWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0VsbGlw
c2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRWxsaXBzZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3Ig
PSBOb0Vycm9yOwogCkBAIC02Niw3ICs2Niw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAK
ICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUp
OwogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdFbGxp
cHNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgKaW5kZXggOTI2MDJjZjFk
Y2U2Li5kYTBhMTI0YWFjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxp
cHNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5o
CkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0VsbGlwc2VFbGVtZW50LCBTVkdHZW9tZXRy
eUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxp
ZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAppbmRleCA3MWZm
N2RjYmJiYTYuLjE4OGE5ODQ0YjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQmxlbmRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVs
ZW1lbnQuY3BwCkBAIC00OCw4ICs0OCw4IEBAIFJlZjxTVkdGRUJsZW5kRWxlbWVudD4gU1ZHRkVC
bGVuZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBECiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVCbGVuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KLSAgICAKLXZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQorCit2b2lk
IFNWR0ZFQmxlbmRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6bW9kZUF0dHIpIHsKICAgICAgICAgQmxl
bmRNb2RlIG1vZGUgPSBCbGVuZE1vZGU6Ok5vcm1hbDsKQEAgLTY4LDcgKzY4LDcgQEAgdm9pZCBT
VkdGRUJsZW5kRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CiB9CiAKIGJvb2wgU1ZHRkVCbGVuZEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShG
aWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCmluZGV4IGNmNTE0NjFhYWJjNy4uY2ExZjhj
YzU0NTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaApAQCAtNjUsNyAr
NjUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdGRUJsZW5kRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBv
dmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVy
RWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5kZXggZTUxOTIz
NmEyMjhkLi41NzkzMDA3ZDc5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbG9yTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCBib29sIFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50Ojppc0ludmFsaWRWYWx1ZXNMZW5ndGgoKSBjb25zdAogICAgICAgICB8fCAoZmls
dGVyVHlwZSA9PSBGRUNPTE9STUFUUklYX1RZUEVfU0FUVVJBVEUgICYmIHNpemUgIT0gMSk7CiB9
CiAKLXZvaWQgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRUNv
bG9yTWF0cml4RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAgICAgIGF1dG8g
cHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yTWF0cml4VHlwZT46OmZyb21T
dHJpbmcodmFsdWUpOwpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdAog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRUNv
bG9yTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYg
ZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKaW5kZXggMmFhNmIzMTQzMDc3Li4yYjU5YmZj
MzUzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5o
CkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzSW52YWxpZFZhbHVlc0xl
bmd0aCgpIGNvbnN0OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJy
aWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
b3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZl
Y3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAppbmRleCBmNjAyMWFk
NDY1N2UuLmZjNTVkNzlmNjMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCkBAIC01MSwxNCArNTEsMTQgQEAgUmVmPFNW
R0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJh
c2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAppbmRleCBiZjVhZDlk
MDUyZWMuLjNlMzRmMDEyZTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
RkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJbnB1dHNOYW1lcygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHsgQXRvbVN0cmluZyB7IGluMSgpIH0gfTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAppbmRleCBlZTk0MWRj
NDg4NzkuLmU2NjQ2ZjAwOGQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9z
aXRlRWxlbWVudC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgUmVmPFNWR0ZFQ29tcG9zaXRlRWxlbWVu
dD4gU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGEK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQor
dm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpIHsK
ICAgICAgICAgQ29tcG9zaXRlT3BlcmF0aW9uVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVy
dHlUcmFpdHM8Q29tcG9zaXRlT3BlcmF0aW9uVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAt
OTEsNyArOTEsNyBAQCB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b21wb3NpdGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmgKaW5kZXggNmY1ZWZiNzY2MzFkLi4yMjIzNjgwYzVjNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRl
OgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDU0OWYyNWZkYjY4Mi4uNDQ5Y2Zi
MzlhYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJp
eEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgUmVmPFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50PiBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmkKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0
dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CkBAIC0xMzIs
NyArMTMyLDcgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oCmluZGV4IDY5N2QwZWMxNzU0ZS4uMTZlYjJjNDYxOTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaApAQCAt
OTksNyArOTksNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCwgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNw
cAppbmRleCBlYzhjNjIwMzU0MWMuLjI4YWUyODRjN2VmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcg
QEAgUmVmPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNl
dEJhc2VWYWxJbnRlcm5hbCh2YWx1ZSk7CkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgU1ZHRkVEaWZm
dXNlTGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBi
b29sIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRl
KEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAppbmRl
eCBkNDFhNjg3YWU5M2QuLmNjYTJjMGZkMGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaApAQCAtNTIsOCArNTIsOCBAQCBwcml2YXRl
OgogICAgIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmKTsKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwotICAgIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKworICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJp
YnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCmlu
ZGV4IGM1YzBlYTIxNTNiZS4uOTg3MWZjODNjNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcApAQCAtNDksNyArNDksNyBAQCBS
ZWY8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50PiBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhDaGFubmVsU2VsZWN0b3JBdHRyKSB7CiAgICAgICAg
IGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENoYW5uZWxTZWxlY3RvclR5
cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBTVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJv
b2wgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUo
RmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCmluZGV4
IDcyYjJjNGM1NGU1ZS4uYjIxN2JlZWZkOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCkBAIC04Niw3ICs4Niw3IEBAIHByaXZhdGU6
CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCmluZGV4IDMwZTMxMmQ1ZjNmYi4u
YzI2NGE5ZTg3NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6
c2V0U3RkRGV2aWF0aW9uKGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgdXBkYXRlU1ZHUmVuZGVyZXJG
b3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpzdGREZXZp
YXRpb25BdHRyKSB7CiAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHBhcnNlTnVtYmVyT3B0aW9u
YWxOdW1iZXIodmFsdWUpKSB7CkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgU1ZHRkVEcm9wU2hhZG93
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1l
bnQuaAppbmRleCA3NDZmNzE4MzAwMTcuLjNlMjAwNzE4NjdiNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6
CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggNjkxMWIzOTk4MzE3Li41ODAxMzlkMTNj
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
Y3BwCkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzZXRT
dGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVs
ZW1lbnRDaGFuZ2UoKTsKIH0KIAotdm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpzdGREZXZp
YXRpb25BdHRyKSB7CiAgICAgICAgIGlmIChhdXRvIHJlc3VsdCA9IHBhcnNlTnVtYmVyT3B0aW9u
YWxOdW1iZXIodmFsdWUpKSB7CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgU1ZHRkVHYXVzc2lhbkJs
dXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdh
dXNzaWFuQmx1ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuaAppbmRleCA4NGNhMTU5ZDhiMjYuLjIxNWI3ZGY1Njc0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaApAQCAtNDksNyArNDksNyBA
QCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeTxTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDAyMzNjNzcyMTk1ZS4uM2JlMDczNTBjZWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTExNCwxNSAr
MTE0LDE1IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OmJ1aWxkUGVuZGluZ1Jlc291cmNlKCkK
ICAgICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAotdm9pZCBTVkdG
RUltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdVUklSZWZlcmVuY2U6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIG1fcHJlc2VydmVBc3BlY3RSYXRp
by0+c2V0QmFzZVZhbEludGVybmFsKFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSB7IHZhbHVl
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0gICAgU1ZHVVJJ
UmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHRkVJ
bWFnZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCmluZGV4IGQ3MzM2MGU0
YjVlNi4uMjFhOTU4MzJjMzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3Ry
eSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUltYWdlRWxlbWVudCwgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIG5v
dGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlJiwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAppbmRleCA2YmYy
ZTY3ZTYzZjEuLjY3ZjVhOGI1NjgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTGlnaHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVs
ZW1lbnQuY3BwCkBAIC02OCw3ICs2OCw3IEBAIFNWR0ZFTGlnaHRFbGVtZW50KiBTVkdGRUxpZ2h0
RWxlbWVudDo6ZmluZExpZ2h0RWxlbWVudChjb25zdCBTVkdFbGVtZW50KiBzdmdFbGVtCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLXZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQor
dm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmF6aW11dGhBdHRyKSB7CiAgICAg
ICAgIG1fYXppbXV0aC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlLnRvRmxvYXQoKSk7CkBAIC0x
MjAsNyArMTIwLDcgQEAgdm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmgKaW5kZXggMmFlNWQ5OGM1ZjE4Li5kMmI1ODNl
MWI5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCkBAIC02NSw3ICs2
NSw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUxpZ2h0RWxlbWVudCwgU1ZHRWxlbWVudD47
CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCmluZGV4IDczZTcw
YjAyMmFiMS4uMmE5NWM4MTY3OTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZU5vZGVFbGVtZW50LmNwcApAQCAtNDgsMTQgKzQ4LDE0IEBAIFJlZjxTVkdGRU1lcmdlTm9kZUVs
ZW1lbnQ+IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CiAg
ICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAppbmRleCBhYTNjZjlm
ZDAxNzIuLjQwMjNlM2Y0YmFiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRU1lcmdlTm9kZUVsZW1l
bnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmlu
YWw7CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwCmluZGV4IDgxZDZiNzE4MTlkZC4uYmFmYzJlYzhmZjU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3
IEBAIFJlZjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdG
RU1vcnBob2xvZ3lFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1l
ID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIpIHsKICAgICAgICAgTW9ycGhvbG9neU9wZXJhdG9y
VHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8TW9ycGhvbG9neU9wZXJhdG9y
VHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIFNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5h
bWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAog
Ym9vbCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmls
dGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmgKaW5kZXggYWUzYjRmNjcxNzJi
Li4xMmUxOGIzNmRiMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVs
ZW1lbnQuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRU1vcnBob2xvZ3lFbGVtZW50
LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJy
aWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCmluZGV4IDY4
NGM5Y2RmMjEyYy4uMzJiNTA4YjY0ZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVPZmZzZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZz
ZXRFbGVtZW50LmNwcApAQCAtNDgsNyArNDgsNyBAQCBSZWY8U1ZHRkVPZmZzZXRFbGVtZW50PiBT
VkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFT2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNW
R0ZFT2Zmc2V0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmR4QXR0cikgewogICAgICAgICBtX2R4LT5z
ZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUudG9GbG9hdCgpKTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9p
ZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIHZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudC5oCmluZGV4IGU0OGQxMmRhODdiYi4uYjliYTA1MDcyMmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCkBAIC00Myw3ICs0Myw3IEBAIHByaXZhdGU6CiAK
ICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R0ZFT2Zmc2V0RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsK
IAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lk
IHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
U3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGE3MmYxMTc3MzhhZi4uNGQ5NzhkZmNm
YTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50PiBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6aW5BdHRyKSB7CiAgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwpA
QCAtODQsNyArODQsNyBAQCB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKaW5kZXggOGIxMWI1OTQ0Y2E4Li4yZWYzZDI3
MGJkNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQuaApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29s
IHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5k
ZXggYzg0NjFmZjQ2YjAyLi5iZDBiZDUzMjZmMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
aWxlRWxlbWVudC5jcHAKQEAgLTQ2LDE0ICs0NiwxNCBAQCBSZWY8U1ZHRkVUaWxlRWxlbWVudD4g
U1ZHRkVUaWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
YwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFVGlsZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
RkVUaWxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0
QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVRpbGVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxl
bWVudC5oCmluZGV4IDNjNzVkZWM5MGMxYS4uMTZhZGVlODhhNWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVRpbGVFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAgIHVz
aW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVUaWxl
RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgVmVjdG9y
PEF0b21TdHJpbmc+IGZpbHRlckVmZmVjdElucHV0c05hbWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4geyBBdG9tU3RyaW5nIHsgaW4xKCkgfSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggNmVkNTVjOGI4MzNlLi45ZWM2ZDM3Nzgy
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAK
QEAgLTUxLDcgKzUxLDcgQEAgUmVmPFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ+IFNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0K
IAotdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVUdXJi
dWxlbmNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAgICAgIFR1cmJ1bGVu
Y2VUeXBlIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxUdXJidWxlbmNlVHlwZT46
OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtODUsNyArODUsNyBAQCB2b2lkIFNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBT
VkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZm
ZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgKaW5kZXggMGFiMGE5YjVjODg3Li44NDU5
ZjhlZmJjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lz
dHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQsIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZm
ZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAppbmRleCBi
ZWQ0MzI2YzFlM2MuLjRlMDQxYWM3OWM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCBSZWY8U1ZHRmlsdGVyRWxlbWVudD4gU1ZHRmls
dGVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZpbHRlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIAotdm9pZCBTVkdGaWx0ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRmlsdGVy
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
U1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC04Niw4ICs4Niw4IEBA
IHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJy
b3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R0ZpbHRlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRleCA4MjM2YWM0
ZjJkNTcuLjM1ZWE3OTRhOTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5o
CkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZpbHRlckVsZW1lbnQsIFNWR0VsZW1lbnQs
IFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBm
aW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFs
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMuY3BwCmluZGV4IDM2NDg1YmQ0OGVlZi4uNDJhNzZhNGZkMzRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAtNDYsNyArNDYsNyBAQCBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyhjb25zdAogICAgIH0pOwogfQogCi12b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
U1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02Myw3ICs2Myw3IEBA
IHZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJy
b3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBP
cHRpb25TZXQ8RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzPiBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OmVmZmVjdEdlb21ldHJ5RmxhZ3MoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy5oCmluZGV4IDQ4ZDA2NDU2ZjBkZC4uMjNjNTEyNjNkNDlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKICAgICB2b2lkIHByaW1pdGl2ZUF0dHJp
YnV0ZU9uQ2hpbGRDaGFuZ2VkKGNvbnN0IEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCmluZGV4IGRiMzk1NGM0
YjhlOS4uMzE5NmVhNjE3ZjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVt
ZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCBSZWY8U1ZHRm9udEZhY2VFbGVtZW50PiBTVkdGb250
RmFjZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLAogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkp
OwogfQogCi12b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZvbnRG
YWNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7ICAg
IAogICAgIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCA9IGNzc1Byb3BlcnR5SWRGb3JTVkdBdHRy
aWJ1dGVOYW1lKG5hbWUpOwogICAgIGlmIChwcm9wZXJ0eUlkID4gMCkgewpAQCAtOTQsNyArOTQs
NyBAQCB2b2lkIFNWR0ZvbnRGYWNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdW5zaWduZWQgU1ZHRm9udEZhY2VFbGVtZW50Ojp1
bml0c1BlckVtKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaApp
bmRleCBhYzE5MGZlYjU5MDIuLjE0NTdmZTA0NmZlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIFNWR0ZvbnRG
YWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICB+U1ZHRm9u
dEZhY2VFbGVtZW50KCk7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7
CiAKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwog
ICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2Vy
dGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKaW5kZXggODkwMGY2OTE5MTNjLi41Nzk3NGZjZTYxYzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCkBAIC02
NiwxMiArNjYsMTEgQEAgUmVmPENTU0ZvbnRGYWNlU3JjUmVzb3VyY2VWYWx1ZT4gU1ZHRm9udEZh
Y2VVcmlFbGVtZW50OjpjcmVhdGVTcmNWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIENTU0ZvbnRG
YWNlU3JjUmVzb3VyY2VWYWx1ZTo6Y3JlYXRlKFdURk1vdmUobG9jYXRpb24pLCBmb3JtYXQuaXNF
bXB0eSgpID8gInN2ZyJfcyA6IGZvcm1hdC5zdHJpbmcoKSwgTG9hZGVkRnJvbU9wYXF1ZVNvdXJj
ZTo6Tm8pOwogfQogCi12b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pCiB7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgaWYgKG5hbWUgPT0g
U1ZHTmFtZXM6OmhyZWZBdHRyIHx8IG5hbWUgPT0gWExpbmtOYW1lczo6aHJlZkF0dHIpCiAgICAg
ICAgIGxvYWRGb250KCk7Ci0gICAgZWxzZQotICAgICAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAppbmRleCBiYmE2NjgxYTZjNzAuLjZhODU2ZjdmZmJk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaApAQCAtMzgs
OCArMzgsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU1ZHRm9udEZhY2VVcmlFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwotICAgIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsK
KworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJikgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5z
ZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwog
ICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcAppbmRleCBlZTk4YzBhNjYxMGYuLjc5YTcxZjA0MDA3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBA
IFJlZjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4gU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRm9y
ZWlnbk9iamVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJz
aW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBT
VkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXQKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJz
ZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQuaAppbmRleCA2YjM0NTE4OTBjMzUuLmUwODRjOWZlZTIwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQsIFNWR0dyYXBoaWNz
RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAog
ICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRleCBlODc3ZGUzMTQ0MTQu
LjU2ZDc2YmZiODNlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5j
cHAKQEAgLTEzMywxNiArMTMzLDE1IEBAIGJvb2wgU1ZHR2VvbWV0cnlFbGVtZW50Ojppc1BvaW50
SW5TdHJva2UoRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHZW9tZXRyeUVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNW
R0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6cGF0aExlbmd0aEF0dHIpIHsKICAgICAgICAgbV9wYXRoTGVuZ3RoLT5zZXRCYXNlVmFsSW50
ZXJuYWwodmFsdWUudG9GbG9hdCgpKTsKICAgICAgICAgaWYgKG1fcGF0aExlbmd0aC0+YmFzZVZh
bCgpIDwgMCkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJl
cG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBwYXRoIGF0dHJpYnV0ZSA8cGF0aExlbmd0
aD4gaXMgbm90IGFsbG93ZWQiX3MpOwotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZH
R3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQg
U1ZHR2VvbWV0cnlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5oCmluZGV4
IDY5MWIxOTAyMDNlYS4uN2Y3NTkxNTU4ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2VvbWV0cnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21l
dHJ5RWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBT
VkdHZW9tZXRyeUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVl
UmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHbHlwaFJlZkVsZW1lbnQuY3BwCmluZGV4IDZiNTQzYzFlYWZlZC4uNTRlM2FhNGEyNjczIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmNwcApAQCAtNjAsNyArNjAs
NyBAQCBzdGF0aWMgZmxvYXQgcGFyc2VGbG9hdChjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKICAg
ICByZXR1cm4gcGFyc2VOdW1iZXIodmFsdWUpLnZhbHVlX29yKDApOwogfQogCi12b2lkIFNWR0ds
eXBoUmVmRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0dseXBoUmVmRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgLy8gRklYTUU6IElzIHRo
ZSBlcnJvciBoYW5kbGluZyBpbiBwYXJzZUZsb2F0IGNvcnJlY3QgZm9yIHRoZXNlIGF0dHJpYnV0
ZXM/CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyKQpAQCAtNzMsNyArNzMsNyBAQCB2
b2lkIFNWR0dseXBoUmVmRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICBtX2R5ID0gcGFyc2VGbG9hdCh2YWx1ZSk7
CiAgICAgZWxzZSB7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpOwotICAgICAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCmluZGV4IDBmMjdmNmJhYjFlMi4uODZhYzUy
YzEwNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5oCkBAIC00Niw3
ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5PFNWR0dseXBoUmVmRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHVVJJ
UmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgZmxvYXQgbV94IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmNwcAppbmRleCA1ZjM2MjkyYzA3MzcuLmVmNjQ1ZmI4ZDhkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgU1ZHR3JhZGllbnRFbGVtZW50OjpTVkdHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGQKICAgICB9KTsKIH0KIAotdm9pZCBTVkdHcmFkaWVu
dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVz
OjpncmFkaWVudFVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQ
cm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJvbVN0cmluZyh2YWx1
ZSk7CkBAIC03MCw4ICs3MCw4IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Cisg
ICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCmluZGV4IDk2M2Y2MDc2ZGQyMC4uMjMy
MTU5OGUxNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5oCkBAIC05
NCw3ICs5NCw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTVkdHcmFkaWVudEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVn
aXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3Jh
cGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQu
Y3BwCmluZGV4IDZjMTI0NmU5YjgzZi4uODgyYzg1ZDRkYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAtMTI5LDE0ICsxMjksMTQgQEAgQWZmaW5lVHJh
bnNmb3JtKiBTVkdHcmFwaGljc0VsZW1lbnQ6OmVuc3VyZVN1cHBsZW1lbnRhbFRyYW5zZm9ybSgp
CiAgICAgcmV0dXJuIG1fc3VwcGxlbWVudGFsVHJhbnNmb3JtLmdldCgpOwogfQogCi12b2lkIFNW
R0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpIHsK
ICAgICAgICAgbV90cmFuc2Zvcm0tPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogICAgIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAppbmRleCBmM2ZiYTYzNjI2MWQuLjI3
OTJhOGUxOTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaApAQCAt
NzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJl
Z2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggZTkzYzgxZTdhM2UxLi43ZGMxNDdl
MjM3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC04OSw4ICs4
OSwxMCBAQCBib29sIFNWR0ltYWdlRWxlbWVudDo6cmVuZGVyaW5nVGFpbnRzT3JpZ2luKCkgY29u
c3QKICAgICByZXR1cm4gaW1hZ2UgJiYgaW1hZ2UtPnJlbmRlcmluZ1RhaW50c09yaWdpbigpOwog
fQogCi12b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ltYWdlRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHVVJJ
UmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVB
c3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5zZXRCYXNl
VmFsSW50ZXJuYWwoU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIHsgdmFsdWUgfSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTEwOCw5ICsxMTAsNiBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwog
ICAgICAgICBtX2hlaWdodC0+c2V0QmFzZVZhbEludGVybmFsKFNWR0xlbmd0aFZhbHVlOjpjb25z
dHJ1Y3QoU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvciwgU1ZHTGVuZ3Ro
TmVnYXRpdmVWYWx1ZXNNb2RlOjpGb3JiaWQpKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7Ci0KLSAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdVUklSZWZlcmVuY2U6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggYTJhZWZmZjQ3ZDcyLi5kNDcwZjlmZDIyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0ltYWdlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdVUklSZWZl
cmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
RWxlbWVudC5jcHAKaW5kZXggOGJjM2U1Y2RiYTgyLi45Y2I5YzNlOTI5OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8U1ZHTGluZUVs
ZW1lbnQ+IFNWR0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xpbmVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdMaW5lRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02Niw3
ICs2Niw3IEBAIHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQ
YXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR2VvbWV0cnlF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmgKaW5kZXggNjZkZTg1YmEzZTdkLi5iNGQ2MWQ0NGM1OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0xpbmVF
bGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDE1ZmQyZDg4YTY2OS4uZmQ5NGRmOWQwYjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApA
QCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYQogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi12b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0xp
bmVhckdyYWRpZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC03
NSw3ICs3NSw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBCiAKICAgICByZXBvcnRBdHRyaWJ1
dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhZGll
bnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhZGllbnRF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTMxYmU0
ZmFiMzc1Li5kNDhjNjE2ZGM5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LCBTVkdHcmFkaWVudEVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNw
cAppbmRleCAxZDRjODY0NzlkZDYuLmJiMDg5MTdkMjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAKQEAgLTk4LDEwICs5OCwxMCBAQCB2b2lkIFNWR01QYXRoRWxlbWVu
dDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVy
Tm9kZQogICAgICAgICBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwogfQogCi12b2lkIFNWR01Q
YXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR01QYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R01QYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAppbmRleCBjNzNmMmUxODdj
MTIuLmVhZTI4MjUxZTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRo
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAt
NDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdNUGF0aEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VS
SVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsK
IAogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA2MjZjNTYwMWZhYzEuLmZmNTk1OWI3MWY1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBA
QCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2VyRWxlbWVudDo6dmlld0JveFRvVmlld1RyYW5zZm9y
bShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAgICAgcmV0dXJuIFNWR0ZpdFRvVmlld0JveDo6dmll
d0JveFRvVmlld1RyYW5zZm9ybSh2aWV3Qm94KCksIHByZXNlcnZlQXNwZWN0UmF0aW8oKSwgdmll
d1dpZHRoLCB2aWV3SGVpZ2h0KTsKIH0KIAotdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHTWFya2VyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1hcmtlclVuaXRzQXR0cikg
ewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBT
VkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJz
ZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHRml0VG9W
aWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDQ2MDVkY2E5OWI2Mi4uNDAzOThiYmU0ZmZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHTWFya2VyRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94PjsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDlkN2UyNzBiMTFhMS4uM2IzZWE1MGRjZmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAg
UmVmPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXNr
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR01hc2tFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgU1ZHTWFza0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjptYXNrVW5pdHNBdHRy
KSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1Vu
aXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTkyLDcgKzkyLDcg
QEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdF
cnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaAppbmRleCBiZmNjOWFkN2QzZjQuLjM5ZGQ3NTg2ZjkzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
TWFza0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1Rlc3RzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmlu
ZGV4IDc5ZmFmOTg5ZGM1NS4uNDliMGQ0MWVmY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5jcHAKQEAgLTUzLDE1ICs1MywxMyBAQCBSZWY8U1ZHUGF0aEVsZW1lbnQ+IFNWR1Bh
dGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbgog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLXZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdQYXRoRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZH
R2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
ZEF0dHIpIHsKICAgICAgICAgaWYgKCFtX3BhdGhTZWdMaXN0LT5iYXNlVmFsKCktPnBhcnNlKHZh
bHVlKSkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9y
dEVycm9yKCJQcm9ibGVtIHBhcnNpbmcgZD1cIiIgKyB2YWx1ZSArICJcIiIpOwotICAgICAgICBy
ZXR1cm47CiAgICAgfQotCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5oCmluZGV4IDIyNDE2YjI1ZjQ0Ni4uMjJhMTNkNmQ0NGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaApAQCAtMTA4LDggKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1BhdGhFbGVtZW50
LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwotICAgIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAppbmRleCA1YmYwNTBjMmQ1OTMuLmZlZGVkY2NjOWM3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFJlZjxTVkdQYXR0
ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0dGVybkVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0
cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdV
bml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC0xMDIsOCArMTAy
LDggQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZH
VGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50LmgKaW5kZXggY2NmZDZhMTc5Njc3Li5kZmVhYzA0ODczYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAK
ICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3gsIFNWR1Rlc3RzLCBT
VkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmlu
YWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggYjQ1ODlhYmVkMjU4Li4y
OTEyZWEzYzliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApAQCAtNDMs
NyArNDMsNyBAQCBTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIH0pOwogfQogCi12b2lkIFNW
R1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHUG9seUVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVz
Ojpwb2ludHNBdHRyKSB7CiAgICAgICAgIGlmICghbV9wb2ludHMtPmJhc2VWYWwoKS0+cGFyc2Uo
dmFsdWUpKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogdm9pZCBTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKaW5kZXggMDI0
YmE1ZGEwZGM4Li44ZGI3ZTZjMDRiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5o
CkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdQb2x5RWxlbWVudCwgU1ZH
R2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsgCisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggZTZjOGY2ZmFhNzEyLi44MzNkOTExODU0YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
CkBAIC02Miw3ICs2Miw3IEBAIFJlZjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKLXZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAg
LTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKIAogICAgIHJlcG9ydEF0dHJp
YnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFk
aWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFkaWVu
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCBlNjBm
NGIwNWYzYTUuLjg4YmI0NjA2YTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQsIFNWR0dyYWRpZW50RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNw
cAppbmRleCA0NDZlYWRhZWM1M2EuLmViYTNhYWY2MzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxTVkdSZWN0RWxlbWVudD4gU1ZH
UmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1JlY3RF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBT
VkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJv
cihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pOwogfQogCiB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAppbmRleCA0ODYzNGZmNjJhNGEuLmVmNWViM2RiMTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3Bl
cnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHUmVjdEVsZW1lbnQsIFNW
R0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBm
aW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3Rz
Ojppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCAyZWVl
YTAxNzk5ZmUuLmU5NjFmZWRhODhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cApAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRU
cmFuc2xhdGUoKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+cmVwYWludCgpOwog
fQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdTVkdFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKCFuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KCkgJiYgaXNDb25uZWN0ZWQoKSkgewogICAgICAgICAvLyBGb3IgdGhlc2UgZXZlbnRzLCB0aGUg
b3V0ZXJtb3N0IDxzdmc+IGVsZW1lbnQgd29ya3MgbGlrZSBhIDxib2R5PiBlbGVtZW50IGRvZXMs
CiAgICAgICAgIC8vIHNldHRpbmcgY2VydGFpbiBldmVudCBoYW5kbGVycyBkaXJlY3RseSBvbiB0
aGUgd2luZG93IG9iamVjdC4KQEAgLTIyMCw3ICsyMjIsNiBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwg
dmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggMjgzNGViOTZjYzc2Li5mYzNjZTBlYjA0YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTI0LDggKzEyNCw4IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVudCgpOwogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTVkdFbGVtZW50LCBTVkdHcmFw
aGljc0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveD47Ci0gICAgCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBib29sIHNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCAyMGNiYzhh
ODMxY2UuLjkwOTk4NzRlOGEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcApAQCAtNDQsMTAgKzQ0LDEwIEBAIFJlZjxTVkdTY3JpcHRFbGVtZW50PiBTVkdTY3JpcHRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgaW5z
ZXJ0ZWRCeVBhcnNlciwgZmFsc2UpKTsKIH0KIAotdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA5NDRjZTBkZDI1MmUuLjI5Mjk5MTYx
MzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC00MSw3ICs0MSw3
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5PFNWR1NjcmlwdEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5j
ZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIElu
c2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
Y3BwCmluZGV4IDdmZjliOTQzNDZlNS4uZDUyNmVlYzU3NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdG9wRWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmPFNWR1N0b3BFbGVtZW50PiBT
VkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdG9wRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU3Rv
cEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjpvZmZzZXRBdHRyKSB7CiAgICAgICAgIGlmICh2YWx1ZS5l
bmRzV2l0aCgnJScpKQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R1N0b3BFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCBlNGJhOTYwNDA2YWQu
LjQ0Yjc5YjAxMzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQwLDcg
KzQwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHU3RvcEVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzR3JhZGllbnRT
dG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmNwcAppbmRleCAxYjQ5MDE5MGM2MTkuLmJjYzJmOThmMTU0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgU3RyaW5nIFNW
R1N0eWxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJldHVybiBhdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjp0aXRsZUF0dHIpOwogfQogCi12b2lkIFNWR1N0eWxl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRp
dGxlQXR0cikgewogICAgICAgICBpZiAoc2hlZXQoKSAmJiAhaXNJblNoYWRvd1RyZWUoKSkKQEAg
LTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApp
bmRleCBkZGViZGFjZjM0NWUuLjE0ZmU3M2RiYzdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR1N0
eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRC
eVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9u
VHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3Rv
cihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3lt
Ym9sRWxlbWVudC5jcHAKaW5kZXggN2E5M2RmNThjMGI1Li4xM2I5MDA4OTdhYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgUmVmPFNW
R1N5bWJvbEVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTeW1ib2xFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHU3ltYm9sRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR1N5bWJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
U1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IGRiMDllNTExNTViYS4uOTBhYzJhMDhk
MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHU3ltYm9sRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdGaXRU
b1ZpZXdCb3g+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDZiM2ZhMzJiZjkwNC4uNWU1MDVjMTI5YWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE3MiwyMiArMTcyLDIxIEBA
IHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgICAgIGRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZSh0YXJnZXQuaWRlbnRpZmll
ciwgKnRoaXMpOwogfQogCi12b2lkIFNWR1RSZWZFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
VFJlZkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewot
ICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdU
UmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKKyAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKKwogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwogICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwogICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQot
ICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAppbmRleCBlNjc2OTg2YzUyYmMu
LjQ2MDRmZDAxODY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKQEAgLTQxLDcg
KzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVFJlZkVsZW1lbnQsIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IDljMmFhODg4Y2FjMC4uZjQ3NjFhNDQ5YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQgU1ZH
VGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpCiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIFNW
R1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1RleHRDb250ZW50RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFy
c2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9p
ZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b20KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihw
YXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCBjNzQ0NTg2NzU4ZDEuLmUyMTU0MGJkN2I0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApAQCAtOTYsNyArOTYs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDQwOWQ3
ZTljN2E5Ni4uNTVlOTZhODBkMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6Y2xl
YXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogICAgIHJlbW92ZUVsZW1lbnRSZWZlcmVuY2UoKTsKIH0K
IAotdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdUZXh0UGF0aEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNW
R1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtODEsOCArODEsOCBAQCB2
b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5oCmluZGV4IDM1OGM5MGY5M2RlMS4uNjJlMzEyM2E2ZDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHVGV4dFBhdGhFbGVtZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR1VSSVJlZmVy
ZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5kZXgg
MDk2NWUyODhiYzg5Li4xYjZlZjE3YjAzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW0KICAgICB9KTsKIH0KIAotdm9pZCBTVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OnhBdHRyKSB7CiAgICAgICAgIG1feC0+YmFzZVZhbCgpLT5wYXJzZSh2YWx1ZSk7CkBAIC03
OCw3ICs3OCw3IEBAIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOworICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBv
bGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQg
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgKaW5kZXggNDlkOTE2Y2EwMjI4Li45Njc5MWI3
OTQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHVGV4dFBv
c2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBVbmlxdWVS
ZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VF
bGVtZW50LmNwcAppbmRleCBkZTQ2NGY0YzhlODcuLjlhMjAzMTE0NGUzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtODAsNyArODAsNyBAQCBTVkdVc2VFbGVtZW50Ojp+
U1ZHVXNlRWxlbWVudCgpCiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+cmVtb3ZlQ2xpZW50
KCp0aGlzKTsKIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVXNl
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAg
U1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC05NSw4ICs5NSw4IEBA
IHZvaWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJv
cihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBTVkdVc2VFbGVtZW50Ojpp
bnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5l
ck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgK
aW5kZXggN2VjMTMyOTJhNDZmLi5iYTExZGFiMWYyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVs
ZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdVc2VFbGVtZW50LCBTVkdHcmFw
aGljc0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAppbmRl
eCA5OGYwYjI2ZmM4N2IuLmM3NDNmYzk5MWJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0Vs
ZW1lbnQuY3BwCkBAIC00NSw5ICs0NSw5IEBAIFJlZjxTVkdWaWV3RWxlbWVudD4gU1ZHVmlld0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVuCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmlld0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAotdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1ZpZXdFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBTVkdFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAppbmRleCBhMDQ3MWIyNGUxNTAuLmEyYzgzOGMxMmZj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJp
dmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHVmlld0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveD47CiAKLSAg
ICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgcmVu
ZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCmlu
ZGV4IGJmNGViZjBlODgyNS4uNGNhNzllNWNkMGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtNDc1LDggKzQ3NSwxMCBAQCBib29s
IFNWR1NNSUxFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWlu
czxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCi12b2lkIFNWR1NN
SUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU01JTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmJlZ2luQXR0cikgewogICAgICAgICBpZiAo
IW1fY29uZGl0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGRpc2Nvbm5lY3RDb25kaXRp
b25zKCk7CkBAIC00OTksOCArNTAxLDYgQEAgdm9pZCBTVkdTTUlMRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAg
ICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZW5kRXZlbnRFdmVudCwg
bmFtZSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om9uYmVnaW5BdHRy
KQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5iZWdpbkV2
ZW50RXZlbnQsIG5hbWUsIHZhbHVlKTsKLSAgICBlbHNlCi0gICAgICAgIFNWR0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdTTUlMRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaAppbmRleCBlNjdmOTZhOWUw
ZWUuLjBlZTA3MjgzYTEzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlv
bi9TVkdTTUlMRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZH
U01JTEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgU1ZHU01JTEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5
UmVnaXN0cnk+JiYpOwogICAgIHZpcnR1YWwgflNWR1NNSUxFbGVtZW50KCk7CiAKLSAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBJbnNlcnRlZElu
dG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250
YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92
YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Cg==
</data>
<flag name="commit-queue"
          id="493694"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465840</attachid>
            <date>2023-04-10 18:28:29 -0700</date>
            <delta_ts>2023-04-10 20:55:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_parseAttribute_func4.patch</filename>
            <type>text/plain</type>
            <size>226356</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYzgzYjU4ZTIyMGQuLjUwODQxM2YyMGFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6
aXNJbnRlcmFjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjppbnRlcmFjdGl2ZUF0dHIpOwogfQogCi12b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTW9kZWxFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRy
KQogICAgICAgICBzb3VyY2VzQ2hhbmdlZCgpOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21vZGVsUGxheWVyKQogICAgICAgICAgICAg
bV9tb2RlbFBsYXllci0+c2V0SW50ZXJhY3Rpb25FbmFibGVkKGlzSW50ZXJhY3RpdmUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IGY0OGMzY2NlYWQ5NS4uNzAzNGIxODRiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdE
b2N1bWVudCkgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICAvLyBTdHlsZWRFbGVtZW50CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBiNGVmN2VmN2U3MjguLjc3NjY3ZGEyOGYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjA5NSw4ICsyMDk1LDYgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHBhcnNlQXR0cmlidXRlKG5hbWUsIG5ld1ZhbHVlKTsKLQog
ICAgIGRvY3VtZW50KCkuaW5jRE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChVTkxJS0VMWShp
c0RlZmluZWRDdXN0b21FbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNWViYjg2Zjk5
MjgwLi4zODg3OWU4NTk3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzA2LDkgKzMwNiw4IEBA
IHB1YmxpYzoKICAgICAgICAgTW9kaWZpZWRCeUNsb25pbmcKICAgICB9OwogCi0gICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBj
aGFuZ2VkIG9yIHJlbW92ZWQuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgeyB9
CiAKICAgICAvLyBPbmx5IGNhbGxlZCBieSB0aGUgcGFyc2VyIGltbWVkaWF0ZWx5IGFmdGVyIGVs
ZW1lbnQgY29uc3RydWN0aW9uLgogICAgIHZvaWQgcGFyc2VyU2V0QXR0cmlidXRlcyhTcGFuPGNv
bnN0IEF0dHJpYnV0ZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGQ4
ODY5MDZjZDAxMS4uZTAzZWE2ZDI1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC05NSw2ICs5NSw3IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlZEVsZW1l
bnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKQEAgLTEwMyw4ICsxMDQsNiBAQCB2
b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0KIAogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjppbmxpbmVTdHlsZUNTU09NV3JhcHBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDBlNGU0ZDhlYTI4ZC4uOGY3
MGUzMmMyN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjM0LDggKzIzNCwxMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9v
bCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aQogICAgIEhUTUxFbGVt
ZW50OjpzZXRBY3RpdmUoZG93biwgaW52YWxpZGF0aW9uU2NvcGUpOwogfQogCi12b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2Fz
TGluayA9IGlzTGluaygpOwogICAgICAgICBzZXRJc0xpbmsoIXZhbHVlLmlzTnVsbCgpICYmICFz
aG91bGRQcm9oaWJpdExpbmtzKHRoaXMpKTsKQEAgLTI0OCw4ICsyNTAsNiBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaQogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPmxv
YWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGRvY3VtZW50KCkuY29tcGxldGVVUkwocGFyc2Vk
VVJMKS5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbmFtZUF0dHIgfHwgbmFtZSA9PSB0aXRsZUF0dHIpIHsKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAg
ICAgICAvLyBVcGRhdGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBh
dHRyaWJ1dGVzIHZhbHVlcyBhcmUgc3VwcG9ydGVkLgogICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
X3MpOwpAQCAtMjY1LDggKzI2NSw2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAg
IGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDUxMjRmMWIxMDI1ZC4u
MmZjZDZlODhiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBA
IC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmNwcAppbmRleCA3NTUzOGQ1YTJmM2UuLjUyMWE5NThjNDk1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8SFRNTEFyZWFFbGVt
ZW50PiBIVE1MQXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc2hhcGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImRlZmF1bHQiX3MpKQpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRBdHRy
KSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OmludmFs
aWRhdGVDYWNoZWRSZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5k
ZXggMDMyYWFiN2YxMGMyLi43YTNjNTFlZTc4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxB
cmVhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggYWQzYjM3
NDIyZjk5Li5lOWQxZTQ4ZjFiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dGFjaG1lbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8SFRNTEltYWdlRWxl
bWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjplbmNsb3NpbmdJbWFnZUVsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBhY3Rpb25BdHRyIHx8IG5hbWUg
PT0gc3VidGl0bGVBdHRyKCkgfHwgbmFtZSA9PSB0aXRsZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0
cikgewogICAgICAgICBpZiAobV9pbm5lckxlZ2FjeUF0dGFjaG1lbnQpCkBAIC00NjUsNyArNDY1
LDcgQEAgdm9pZCBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmlu
ZygpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gYWN0
aW9uQXR0cikgewogICAgICAgICBpZiAobV9hY3Rpb25UZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCmluZGV4IGU3NmQ5OTNiN2VmMS4uMGQw
Y2Q3ZTg0NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAK
aW5kZXggODA5YjZiMDNlNDNkLi42YzliNjM4YzNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCBSZWY8SFRNTEJhc2VFbGVtZW50
PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCYXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxCYXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gaHJlZkF0dHIgfHwgbmFtZSA9PSB0YXJnZXRBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NCYXNlRWxlbWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgSFRN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MQmFzZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA1OTlhMmI5M2FmNGEuLjliNDM1YThlN2MwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAK
aW5kZXggOGZkM2VjMGI2ZWIzLi5hNmQ3OGVhZjc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShj
b25zdAogICAgIHJldHVybiBldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSwgbWFwKTsKIH0KIAotdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHZsaW5rQXR0ciB8fCBuYW1lID09IGFsaW5rQXR0ciB8fCBu
YW1lID09IGxpbmtBdHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkQ29sb3IgPSBwYXJzZUxlZ2Fj
eUNvbG9yVmFsdWUodmFsdWUpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTEJvZHlFbGVtZW50OjppbnNl
cnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKaW5kZXggMzVmMTEzNmY3YjlkLi45ZWI5MGJlNDg3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5k
ZXggMzcxNTI1OWM4ZTU1Li43MDIwZDBjODgxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCdXR0b25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAg
IFR5cGUgb2xkVHlwZSA9IG1fdHlwZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEhUTUxCdXR0
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgICAgICAgICAgICAgIGZvcm0oKS0+cmVzZXREZWZhdWx0QnV0dG9uKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggNDY4OTk3MjE4MTEyLi42NzY4OWZhNDY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGYzODZkMWVkNjJmOC4uNmQ2MzE4NTBlZWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTY3LDExICsxNjcs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQo
KTsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBhNDA2M2VlODgyYmUuLmU3NTViMDhl
NTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTU3LDcg
KzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgdm9pZCBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAwOTU3MTcwYTY4YS4uZmI0MmIyM2NkOWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3Vt
bWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlT
bG90LmdldCgpOwogfQogCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxEZXRhaWxzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gb3BlbkF0dHIpIHsKICAgICAgICAgYm9vbCBvbGRWYWx1
ZSA9IG1faXNPcGVuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgICAgICBtX2lzVG9nZ2xlRXZlbnRUYXNrUXVldWVkID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggOGM3MzdhZDA3ZmM1Li41ZDY4
MmQwMTIyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKICAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGNmZjRiNzY5MDBlNi4uNGI4ZGJk
MzRkZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY5LDggKzM2OSwx
MCBAQCBib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25z
dAogICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKCp0aGlzLCBQ
YWdlSXNFZGl0YWJsZTo6Tm8pICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgZGlyQXR0cmlidXRlQ2hh
bmdlZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApp
bmRleCA1ZWJmZjNlYmVmOTQuLjYxNjhmY2FjZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGx5Qm9yZGVy
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
Tm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSAsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCAzMDE3
YTAzYTQ4MmIuLmFlN2RkZTY0MzI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC05NSw4ICs5NSw5IEBAIHN0YXRpYyBib29sIGhhc1R5cGVPclNyYyhjb25z
dCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKICAgICByZXR1cm4gZW1iZWQuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0cikgfHwgZW1iZWQuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKTsKIH0KIAotdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlw
ZSA9IHZhbHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoaXMgYW5kIEhUTUxPYmplY3RFbGVtZW50J3MgY29ycmVzcG9uZGluZwpAQCAtMTE0LDggKzEx
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
ICFoYXNUeXBlT3JTcmMoKnRoaXMpKQogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8QXRvbVN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxB
dG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCmluZGV4IGQxNmU2NzdhMGNiOC4uY2QxZGQ2NmJkYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggODQ5ODgxMDFlNDAzLi5k
ZmQxMmM0ODBlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21Db250cm9sRWxl
bWVudHNBbmNlc3RvckRpc2FibGVkU3RhdGVVbmRlcihIVE1MRWxlbWVudCYgc3RhCiAgICAgfQog
fQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRmllbGRT
ZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBib29sIG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlID0gaGFzRGlzYWJsZWRBdHRyaWJ1dGUoKTsK
IAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmICho
YXNEaXNhYmxlZEF0dHJpYnV0ZSgpICE9IG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlKSB7CiAgICAg
ICAgIGlmIChoYXNEaXNhYmxlZEF0dHJpYnV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCBkNjcxZjg2ODUxMmQuLjJhY2I2OTU3YzUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOWZkZjYxYjRmYWZm
Li5lYjc1NjkzNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFp
CiAgICAgY2hlY2tBbmRQb3NzaWJseUNsb3NlUG9wb3ZlclN0YWNrKCk7CiB9CiAKLXZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5ld1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHBvcG92ZXJ0YXJnZXRBdHRyKQogICAgICAgICBjaGVja0Fu
ZFBvc3NpYmx5Q2xvc2VQb3BvdmVyU3RhY2soKTsKICAgICBlbHNlIHsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMmU3NDhjMjVmOTUwLi40NzhkODY2MzEwMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCAyOTViMzhjNTJmZDUuLmZjMmJkNWUwMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpy
ZXNldExpc3RlZEZvcm1Db250cm9sRWxlbWVudHMoKQogICAgICAgICBjb250cm9sLT5yZXNldCgp
OwogfQogCi12b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gYWN0aW9uQXR0cikgewogICAgICAgICBtX2F0dHJpYnV0ZXMucGFyc2VBY3Rpb24o
dmFsdWUpOwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAg
ICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJbmRl
eFdpdGhGb3JtQXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJhbmdlU3RhcnQs
IHVuc2lnbmVkIHJhbmdlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggNGQ4MTBmNDYzNjU3Li44ZjFlOWIwN2IxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9u
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA2
NThiMTRiZjMxMjQuLjljYTBkNzk3YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIGludCBIVE1MRnJhbWVFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEhUTUxGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRnJhbWVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBmcmFtZWJvcmRlckF0
dHIpIHsKICAgICAgICAgbV9mcmFtZUJvcmRlciA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZh
bHVlX29yKDApOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAg
cmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjZDg3Yzg1NDk2
MGMuLjZlNGNiODllMmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwogICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1fZnJhbWVCb3Jk
ZXIgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0IHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggY2QyNDQ5M2M3
ZDBlLi42YjM4NTc5ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6b3BlblVSTChMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdAog
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSgq
dGhpcywgbV9mcmFtZVVSTCwgZnJhbWVOYW1lLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjZG9jQXR0cikgewogICAgICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVMKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gc3JjQXR0ciAmJiAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihzcmNkb2NBdHRyKSkKICAgICAgICAgc2V0TG9jYXRpb24oc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggZDM0NWYzYjAxNjZjLi43YzcxODQwOTkzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBjYW5Mb2FkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRv
QW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCAzMjVhOWJiZDA3NDMuLjdjNGQxMjAzYjhhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC04Myw4ICs4MywxNCBAQCB2b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgYXV0byYgZXZlbnRO
YW1lID0gSFRNTEJvZHlFbGVtZW50OjpldmVudE5hbWVGb3JXaW5kb3dFdmVudEhhbmRsZXJBdHRy
aWJ1dGUobmFtZSk7CisgICAgaWYgKCFldmVudE5hbWUuaXNOdWxsKCkpCisgICAgICAgIGRvY3Vt
ZW50KCkuc2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIG5hbWUsIHZh
bHVlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CisgICAgZWxzZQorICAgICAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSByb3dzQXR0cikgewogICAgICAg
ICAvLyBGSVhNRTogV2hhdCBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gd2hlbiByZW1vdmluZyB0
aGlzIGF0dHJpYnV0ZT8KICAgICAgICAgLy8gV2h5IG5vdCB0cmVhdCBpdCB0aGUgc2FtZSB3YXkg
d2UgdHJlYXQgc2V0dGluZyBpdCB0byB0aGUgZW1wdHkgc3RyaW5nPwpAQCAtMTQ1LDE0ICsxNTEs
NiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCB0byB0cmlnZ2VyIHJlcGFpbnRpbmc/CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBh
dXRvJiBldmVudE5hbWUgPSBIVE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50
SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgewot
ICAgICAgICBkb2N1bWVudCgpLnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lLCBuYW1lLCB2YWx1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKIH0KIAogYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgK
aW5kZXggMzdmZjFiMGY2OWIxLi45YjZlMTViYTdjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZUhUTUxGcmFtZVNldEVsZW1lbnQgPSBDcmVhdGVIVE1M
RWxlbWVudCB8IE5vZGVGbGFnOjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3M7CiAgICAg
SFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
aW5kZXggNDE4ZTA3MjVhYjY0Li5mMGY2NTA0NjJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgSFRNTElGcmFtZUVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxJ
RnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNhbmRi
b3hBdHRyKSB7CiAgICAgICAgIGlmIChtX3NhbmRib3gpCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9p
ZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgICAgIGxvYWREZWZlcnJlZEZyYW1lKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOwogfQogCiBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAppbmRleCBmYTY1Y2E0YjM1YTkuLjg1YjQxZWNmMWRmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI1NzFlOGQ1N2NkZi4u
MTRiY2EyNmUyZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAK
QEAgLTMyOSwyMyArMzI5LDEwIEBAIHN0YXRpYyBDcm9zc09yaWdpblN0YXRlIHBhcnNlQ3Jvc3Nv
cmlnaW5TdGF0ZShjb25zdCBBdG9tU3RyaW5nJiBjcm9zc29yaWdpblZhbHVlCiAgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3Nzb3JpZ2luVmFsdWUsICJ1c2UtY3Jl
ZGVudGlhbHMiX3MpID8gVXNlQ3JlZGVudGlhbHMgOiBBbm9ueW1vdXM7CiB9CiAKLXZvaWQgSFRN
TEltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIEhUTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29u
KTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAKLSAgICBpZiAobmFtZSA9PSByZWZl
cnJlcnBvbGljeUF0dHIgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLnJlZmVycmVyUG9saWN5QXR0
cmlidXRlRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gb2xkUmVmZXJyZXJQb2xpY3kgPSBwYXJz
ZVJlZmVycmVyUG9saWN5KG9sZFZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQ
b2xpY3lBdHRyaWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0g
ICAgICAgIGF1dG8gbmV3UmVmZXJyZXJQb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG5ld1Zh
bHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGUpLnZhbHVl
X29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0gICAgICAgIGlmIChvbGRSZWZlcnJl
clBvbGljeSAhPSBuZXdSZWZlcnJlclBvbGljeSkKLSAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIt
PnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRpb246
Olllcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNyb3Nzb3JpZ2luQXR0cikgewotICAgICAg
ICBpZiAocGFyc2VDcm9zc29yaWdpblN0YXRlKG9sZFZhbHVlKSAhPSBwYXJzZUNyb3Nzb3JpZ2lu
U3RhdGUobmV3VmFsdWUpKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVs
ZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoUmVsZXZhbnRNdXRhdGlvbjo6WWVzKTsKLSAgICB9
Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUg
PT0gYWx0QXR0cikgewogICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKCkpKQog
ICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcigpKS51cGRhdGVBbHRU
ZXh0KCk7CkBAIC0zNjQsMzEgKzM1MSwzNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5kTW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAo
IXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2NvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAg
fSBlbHNlIGlmIChpc0ltYWdlTWVudUVuYWJsZWQoKSkgewotICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24gbmVlZGVkIGZvciBl
YWdlciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6eUxvYWRhYmxlQXR0
cmlidXRlVmFsdWUodmFsdWUpKQogICAgICAgICAgICAgbG9hZERlZmVycmVkSW1hZ2UoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewotICAgICAgICAgICAg
Ym9vbCB3aWxsSGF2ZU5hbWUgPSAhdmFsdWUuaXNFbXB0eSgpOwotICAgICAgICAgICAgaWYgKG1f
aGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVj
dGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgp
KSkgewotICAgICAgICAgICAgICAgIEhUTUxEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxI
VE1MRG9jdW1lbnQ+KHRoaXMtPmRvY3VtZW50KCkpOwotICAgICAgICAgICAgICAgIGNvbnN0IEF0
b21TdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlk
LmlzRW1wdHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHdpbGxIYXZlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmFkZERvY3VtZW50TmFtZWRJdGVtKCppZC5pbXBsKCksICp0aGlzKTsKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRG9jdW1l
bnROYW1lZEl0ZW0oKmlkLmltcGwoKSwgKnRoaXMpOwotICAgICAgICAgICAgICAgIH0KKyAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gcmVmZXJyZXJwb2xpY3lBdHRyICYmIGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5yZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAgICBhdXRvIG9s
ZFJlZmVycmVyUG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShvbGRWYWx1ZSwgUmVmZXJyZXJQ
b2xpY3lTb3VyY2U6OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBv
bGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICBhdXRvIG5ld1JlZmVycmVyUG9saWN5ID0gcGFy
c2VSZWZlcnJlclBvbGljeSh2YWx1ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OlJlZmVycmVyUG9s
aWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAg
ICAgICBpZiAob2xkUmVmZXJyZXJQb2xpY3kgIT0gbmV3UmVmZXJyZXJQb2xpY3kpCisgICAgICAg
ICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJv
cihSZWxldmFudE11dGF0aW9uOjpZZXMpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjcm9zc29y
aWdpbkF0dHIpIHsKKyAgICAgICAgaWYgKHBhcnNlQ3Jvc3NvcmlnaW5TdGF0ZShvbGRWYWx1ZSkg
IT0gcGFyc2VDcm9zc29yaWdpblN0YXRlKHZhbHVlKSkKKyAgICAgICAgICAgIG1faW1hZ2VMb2Fk
ZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRp
b246Olllcyk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7CisgICAgICAgIGJv
b2wgd2lsbEhhdmVOYW1lID0gIXZhbHVlLmlzRW1wdHkoKTsKKyAgICAgICAgaWYgKG1faGFkTmFt
ZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVjdGVkKCkg
JiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgpKSkgewor
ICAgICAgICAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PEhUTUxEb2N1bWVu
dD4odGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBjb25zdCBBdG9tU3RyaW5nJiBpZCA9
IGdldElkQXR0cmlidXRlKCk7CisgICAgICAgICAgICBpZiAoIWlkLmlzRW1wdHkoKSAmJiBpZCAh
PSBnZXROYW1lQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2lsbEhhdmVOYW1l
KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGREb2N1bWVudE5hbWVkSXRlbSgqaWQu
aW1wbCgpLCAqdGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbSgqaWQuaW1wbCgpLCAqdGhpcyk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2hhZE5hbWVCZWZvcmVBdHRyaWJ1dGVDaGFuZ2Vk
ID0gd2lsbEhhdmVOYW1lOwogICAgICAgICB9Ci0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNo
YW5nZWQgPSB3aWxsSGF2ZU5hbWU7CiAgICAgfQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCisgICAgaWYgKGlzSW1hZ2VNZW51RW5hYmxlZCgpKQorICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxJ
bWFnZUVsZW1lbnQ6OmxvYWREZWZlcnJlZEltYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgKaW5kZXggYWUyNWRkZjUxNzQwLi5mMzZjOWVhN2RjN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xODUsNyArMTg1LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEZvcm1JbnRlcm5hbChSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiYmKSBmaW5h
bDsKIAogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xsZWN0RXh0cmFTdHls
ZUZvclByZXNlbnRhdGlvbmFsSGludHMoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZWFkZmQ2MTU4
MzAyLi4yMzAyNTVjYWZkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNzIwLDE2ICs3MjAsMTggQEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
aW5pdGlhbGl6ZUlucHV0VHlwZSgpCiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIAotdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgQVNTRVJUKG1faW5wdXRU
eXBlKTsKICAgICBSZWYgcHJvdGVjdGVkSW5wdXRUeXBlIHsgKm1faW5wdXRUeXBlIH07CiAKKyAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFt
ZSA9PSBuYW1lQXR0cikgewogICAgICAgICByZW1vdmVGcm9tUmFkaW9CdXR0b25Hcm91cCgpOwog
ICAgICAgICBtX25hbWUgPSB2YWx1ZTsKICAgICAgICAgYWRkVG9SYWRpb0J1dHRvbkdyb3VwKCk7
Ci0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYXV0b2NvbXBsZXRlQXR0cikgewogICAgICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJvZmYiX3MpKSB7CiAgICAg
ICAgICAgICBtX2F1dG9jb21wbGV0ZSA9IE9mZjsKQEAgLTc5OCw4ICs4MDAsNiBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbgogICAgICAgICB9CiAgICAgfQogI2VuZGlmCi0gICAgZWxzZQotICAg
ICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogCiAgICAgbV9pbnB1dFR5cGUtPmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDZjN2YyZTU2MGEzOS4uZTc2Nzcz
MGE0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMzc4LDcg
KzM3OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1v
ZGlmaWVkRGlyZWN0bHkpIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAg
ICB2b2lkIHBhcnNlckRpZFNldEF0dHJpYnV0ZXMoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuY3BwCmluZGV4IGQ5NTdlZDRiMTM5NS4uY2JkYzJiOTIyZTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKQEAgLTkzLDEzICs5MywxMyBAQCB2b2lkIEhU
TUxMSUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmCiAgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxM
SUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTElFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIpIHsK
ICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNMaXN0SXRlbSgpKQogICAg
ICAgICAgICAgcGFyc2VWYWx1ZSh2YWx1ZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTElFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAppbmRleCBmYjk4ZTA3OTExMTYuLjM2OTY4
OGI1NzJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHJpdmF0ZToKICAgICBjb25zdGV4cHIgc3RhdGljIGF1dG8gQ3JlYXRlSFRNTExJRWxlbWVu
dCA9IENyZWF0ZUhUTUxFbGVtZW50IHwgTm9kZUZsYWc6Okhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNh
bGxiYWNrczsKICAgICBIVE1MTElFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wg
aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCmluZGV4IGQ0YjQxMjVlMTBiMC4uNTkyZDczYTU1MzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OnNldERpc2FibGVkU3RhdGUoYm9vbCBkaXNhYmxlZCkKICAgICB9CiB9CiAKLXZvaWQg
SFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSByZWxB
dHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkUmVsID0gTGlua1JlbEF0dHJpYnV0ZShkb2N1bWVu
dCgpLCB2YWx1ZSk7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcK
ICAgICAgICAgICAgIG1fc2hlZXQtPnNldFRpdGxlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBIVE1MTGlua0VsZW1lbnQ6OnNo
b3VsZExvYWRMaW5rKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IGY1
YWJjNTdlNjdkNC4uZjhjMmE0ZDdiMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgIFJlcXVlc3RQcmlvcml0eSBmZXRj
aFByaW9yaXR5SGludCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkTG9hZExpbmsoKSBmaW5hbDsKICAg
ICB2b2lkIHByb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKaW5k
ZXggY2QwNDNmMjViMDllLi4wNGRlNmRmMTkwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuY3BwCkBAIC04NCwxNSArODQsMTcgQEAgSFRNTEltYWdlRWxlbWVudCogSFRNTE1h
cEVsZW1lbnQ6OmltYWdlRWxlbWVudCgpCiAgICAgcmV0dXJuIHRyZWVTY29wZSgpLmltYWdlRWxl
bWVudEJ5VXNlbWFwKCptX25hbWUuaW1wbCgpKTsKIH0KIAotdm9pZCBIVE1MTWFwRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCit2b2lkIEhUTUxNYXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICAv
LyBGSVhNRTogVGhpcyBsb2dpYyBzZWVtcyB3cm9uZyBmb3IgWE1MIGRvY3VtZW50cy4KICAgICAv
LyBFaXRoZXIgdGhlIGlkIG9yIG5hbWUgd2lsbCBiZSB1c2VkIGRlcGVuZGluZyBvbiB0aGUgb3Jk
ZXIgdGhlIGF0dHJpYnV0ZXMgYXJlIHBhcnNlZC4KIAogICAgIGlmIChuYW1lID09IEhUTUxOYW1l
czo6aWRBdHRyIHx8IG5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cikgewogICAgICAgICBpZiAo
bmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0cikgewogICAgICAgICAgICAgLy8gQ2FsbCBiYXNlIGNs
YXNzIHNvIHRoYXQgaGFzSUQgYml0IGdldHMgc2V0LgotICAgICAgICAgICAgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKICAgICAgICAgICAgIGlmIChkb2N1bWVudCgpLmlzSFRNTERvY3VtZW50KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDQsMTEgKzEwNiw3IEBA
IHZvaWQgSFRNTE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgICAgIG1fbmFtZSA9IFdURk1vdmUobWFwTmFt
ZSk7CiAgICAgICAgIGlmIChpc0luVHJlZVNjb3BlKCkpCiAgICAgICAgICAgICB0cmVlU2NvcGUo
KS5hZGRJbWFnZU1hcCgqdGhpcyk7Ci0KLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIEhU
TUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIFJlZjxIVE1MQ29s
bGVjdGlvbj4gSFRNTE1hcEVsZW1lbnQ6OmFyZWFzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaAppbmRleCA3ZjdlY2U1ZmZkYTMuLjNhNDFmNmI5MTc4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1hcEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgSW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFp
bmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCmluZGV4IDEw
ZDZhMDZmMTNhOS4uYTE3ODFmNTkyMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCkBAIC0x
NDksOSArMTQ5LDkgQEAgdm9pZCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6
OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3YKICAgICAgICAgZm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlw
ZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CiB9CiAKLXZvaWQgSFRNTE1heWJlRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1heWJlRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSkKICAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKaW5kZXggMDI5
YzM3YWZlMDgxLi5jYmZkMTA0YjgzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaApAQCAtNzIsNyAr
NzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFs
OwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmLCBEb2N1bWVudCYpIGZp
bmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVy
Tm9kZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGQ2MzcwMmMwZjg5Li43NDMwMjlkYmY1
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzcxLDE3
ICs3NzEsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzSW50ZXJhY3RpdmVDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gY29udHJvbHMoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIHJlYXNvbikKLXsKLSNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQotICAgIGlmIChuYW1lID09IHdlYmtpdHdpcmVsZXNzdmlkZW9wbGF5YmFja2Rpc2Fi
bGVkQXR0cikKLSAgICAgICAgbWVkaWFTZXNzaW9uKCkuc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQobmV3VmFsdWUgIT0gbnVsbEF0b20oKSk7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAg
ICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1
ZSwgcmVhc29uKTsKLX0KLQotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gaWRBdHRyKQogICAgICAgICBtX2lkID0gdmFsdWU7CkBAIC04
MjMsOCArODEzLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21l
ZGlhU2Vzc2lvbikKICAgICAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRDaGFyYWN0ZXJp
c3RpY3NDaGFuZ2VkKGZhbHNlKTsKICAgICB9CisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKKyAgICBlbHNlIGlmIChuYW1lID09IHdlYmtpdHdpcmVsZXNzdmlkZW9wbGF5YmFj
a2Rpc2FibGVkQXR0cikKKyAgICAgICAgbWVkaWFTZXNzaW9uKCkuc2V0V2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQodmFsdWUgIT0gbnVsbEF0b20oKSk7CisjZW5kaWYKICAgICBlbHNlCi0g
ICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpm
aW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBhNDU5NmY4M2I2MjUuLjU1YzgzZWQxY2Q0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTY0Nyw4ICs2NDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRN
TE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0
ZWRCeVBhcnNlcik7CiAgICAgdmlydHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwogCi0gICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IG92ZXJyaWRlOwogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lbnVFbGVtZW50LmNwcAppbmRleCBjZTcxOTFmNWMzODEuLmEzMDg2ZGYzZDdlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcApAQCAtNjMsMTAgKzYzLDEw
IEBAIHZvaWQgSFRNTE1lbnVFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBl
IHR5cGUsIENvbnRhaW5lck5vZGUmIGFuY2VzCiAgICAgfQogfQogCi12b2lkIEhUTUxNZW51RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxNZW51RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgIT0gdHlwZUF0dHIgfHwgIWRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5tZW51SXRlbUVsZW1lbnRFbmFibGVkKCkpIHsKLSAgICAgICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGJvb2wgd2Fz
VG91Y2hCYXJNZW51ID0gbV9pc1RvdWNoQmFyTWVudTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51
RWxlbWVudC5oCmluZGV4IDIwNWI4ZjUyYzQ5NS4uMjYzMmE0YjI1MDhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAg
IEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlv
blR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1faXNUb3VjaEJhck1lbnU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCmluZGV4IDJiMGQwYjNhOGU0NS4u
NWYxNGJmMjdjMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCkBA
IC05MywyNCArOTMsMTYgQEAgY29uc3QgQ29sb3ImIEhUTUxNZXRhRWxlbWVudDo6Y29udGVudENv
bG9yKCkKICAgICByZXR1cm4gKm1fY29udGVudENvbG9yOwogfQogCi12b2lkIEhUTUxNZXRhRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgSFRNTEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAotICAgIGlmICghaXNJbkRvY3VtZW50VHJlZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewotICAgICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1jb2xvciJf
cykgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG5ld1ZhbHVlLCAidGhlbWUtY29s
b3IiX3MpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5tZXRhRWxlbWVudFRoZW1lQ29sb3JDaGFu
Z2VkKCp0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotdm9pZCBIVE1MTWV0YUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQotewogICAgIGlmIChuYW1lID09IG5hbWVBdHRyKSB7CiAgICAgICAg
IHByb2Nlc3MoKTsKKyAgICAgICAgaWYgKGlzSW5Eb2N1bWVudFRyZWUoKSkgeworICAgICAgICAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG9sZFZhbHVlLCAidGhlbWUtY29s
b3IiX3MpICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInRoZW1lLWNv
bG9yIl9zKSkKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLm1ldGFFbGVtZW50VGhlbWVDb2xv
ckNoYW5nZWQoKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTEzMCw4ICsxMjIsNiBAQCB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICBwcm9jZXNz
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3Vs
dCBIVE1MTWV0YUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5z
ZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCAxYjEyNzA3YjRiNmMuLjRmYjE1MGU0YWE3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCkBAIC00Niw3ICs0Niw2IEBA
IHByaXZhdGU6CiAgICAgSFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZElu
dG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9y
KFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAxOTUzMmUzZmEyNzguLjBiODM4MWUxZWE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC03MSwxMiArNzEsMTIg
QEAgYm9vbCBIVE1MTWV0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiAhaXM8UmVuZGVyTWV0ZXI+KHJlbmRlcmVy
KCkpICYmIEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKIH0K
IAotdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1ldGVyRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5h
bWUgPT0gdmFsdWVBdHRyIHx8IG5hbWUgPT0gbWluQXR0ciB8fCBuYW1lID09IG1heEF0dHIgfHwg
bmFtZSA9PSBsb3dBdHRyIHx8IG5hbWUgPT0gaGlnaEF0dHIgfHwgbmFtZSA9PSBvcHRpbXVtQXR0
cikKICAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGRvdWJsZSBIVE1MTWV0ZXJFbGVtZW50OjptaW4oKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCA2MWY0MGZkN2Ux
OTEuLmEwZTdmYTdmYzUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgZmluYWw7CiAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAKICAgICB2b2lkIGRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpOwogICAgIHZvaWQgZGlkQWRk
VXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT0xpc3RFbGVtZW50LmNwcAppbmRleCA0NGY5MWFjZWI2M2QuLmYxYzBkZDM2NmFkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCkBAIC04Myw3ICs4Myw3
IEBAIHZvaWQgSFRNTE9MaXN0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtCiAgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
Ci12b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MT0xpc3RFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFt
ZSA9PSBzdGFydEF0dHIpIHsKICAgICAgICAgaW50IG9sZFN0YXJ0ID0gc3RhcnQoKTsKQEAgLTk4
LDcgKzk4LDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAgICAgICAgbV9pc1JldmVyc2Vk
ID0gcmV2ZXJzZWQ7CiAgICAgICAgIFJlbmRlckxpc3RJdGVtOjp1cGRhdGVJdGVtVmFsdWVzRm9y
T3JkZXJlZExpc3QoKnRoaXMpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIHZvaWQgSFRNTE9MaXN0RWxlbWVudDo6c2V0U3RhcnRGb3JCaW5kaW5ncyhpbnQg
c3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDgzZGMwYjk2
OWVkMy4uYTcyYzU4NDM2NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
TGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQu
aApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgICAgICAKICAgICBXRUJDT1JFX0VYUE9S
VCB1bnNpZ25lZCBpdGVtQ291bnQoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYjg2ZTc3YWVlYjQ4Li4yZGY3
NDMyOWQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBA
IC0xMDAsOCArMTAwLDEwIEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hCiAgICAgICAgIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CisKICAgICBib29sIGludmFsaWRhdGVSZW5kZXJlciA9IGZhbHNlOwogICAgIGJvb2wgbmVlZHNX
aWRnZXRVcGRhdGUgPSBmYWxzZTsKIApAQCAtMTE3LDEwICsxMTksOCBAQCB2b2lkIEhUTUxPYmpl
Y3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjbGFzc2lkQXR0cikgewogICAgICAg
ICBpbnZhbGlkYXRlUmVuZGVyZXIgPSB0cnVlOwogICAgICAgICBuZWVkc1dpZGdldFVwZGF0ZSA9
IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0gZWxzZQogICAgICAgICBGb3JtTGlzdGVk
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIH0KIAogICAgIGlmIChu
ZWVkc1dpZGdldFVwZGF0ZSkgewogICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCA4OGM3YmMwOGQzY2Qu
Ljc1YWIxZWFmODg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApA
QCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNv
bnN0IGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAKaW5kZXggNmYwNGU1MGViZGNiLi44NWU1YWQ1NmRmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtOTEsOSArOTEs
OSBAQCB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYgY2hhbmdlKQogICAgIEhUTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIH0KIAotdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE9w
dEdyb3VwRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
Ci0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBIVE1M
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogCiAgICAg
aWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5oCmluZGV4IGUyNTE5NWQyMjU5Ni4uZjM4OGViNTFhMDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2
YXRlOgogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5jcHAKaW5kZXggNDI3NzA0MjI3MjkzLi40NDdiN2ExMzQ3ODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
aW50IEhUTUxPcHRpb25FbGVtZW50OjppbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MT3B0aW9uRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAjaWYgRU5BQkxF
KERBVEFMSVNUX0VMRU1FTlQpCiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CkBAIC0yMDAs
NyArMjAwLDcgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgLy8gaGFzIG5vIGVm
ZmVjdCBvbiB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkLgogICAgICAgICBzZXRTZWxl
Y3RlZFN0YXRlKCF2YWx1ZS5pc051bGwoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggNzZhN2M5NjExODg2
Li4zMzZjMjc4NTZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgbWF0Y2hl
c0RlZmF1bHRQc2V1ZG9DbGFzcygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggOTJk
M2ZmMjRhMWE0Li5mYzVjMWRlY2NjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1
dEVsZW1lbnQuY3BwCkBAIC03MCwxMSArNzAsMTEgQEAgYm9vbCBIVE1MT3V0cHV0RWxlbWVudDo6
c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpzdXBwb3J0c0Zv
Y3VzKCk7CiB9CiAKLXZvaWQgSFRNTE91dHB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1M
T3V0cHV0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpmb3JBdHRyICYmIG1fZm9yVG9rZW5zKQogICAg
ICAgICBtX2ZvclRva2Vucy0+YXNzb2NpYXRlZEF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCh2YWx1ZSk7
Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhU
TUxPdXRwdXRFbGVtZW50OjpyZXNldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPdXRwdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVt
ZW50LmgKaW5kZXggYmQ4YzZhOGI1MWNiLi5lNzdjYzk1OGYxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDggQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOworCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29s
IGlzTGFiZWxhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggMDkwZDkwM2E3ZjUyLi40MGVh
YzQ5YTZkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cApAQCAtNzcsNyArNzcsNyBAQCBSZW5kZXJQcm9ncmVzcyogSFRNTFByb2dyZXNzRWxlbWVudDo6
cmVuZGVyUHJvZ3Jlc3MoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJQcm9ncmVz
cz4oZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkuZmly
c3QoKS0+cmVuZGVyZXIoKSk7CiB9CiAKLXZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHZhbHVlQXR0cikgewogICAgICAgICB1
cGRhdGVEZXRlcm1pbmF0ZVN0YXRlKCk7CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSFRNTFByb2dy
ZXNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0CiAgICAgfSBlbHNlIGlmIChuYW1lID09IG1heEF0dHIpCiAgICAgICAgIGRpZEVs
ZW1lbnRTdGF0ZUNoYW5nZSgpOwogICAgIGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IDNiYjQ4Zjc1OTEw
YS4uNTVhYTgzY2ZjZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CiAgICAgUmVuZGVyUHJvZ3Jlc3Mq
IHJlbmRlclByb2dyZXNzKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA0NzYzM2FkNmMyZS4u
YmM0MTQ1ZWE3NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cApAQCAtNjUsMTQgKzY1LDE0IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIFNjcmlwdEVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjaGFuZ2UpOwogfQogCi12b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNyY0F0dHIpCiAgICAgICAgIGhhbmRsZVNv
dXJjZUF0dHJpYnV0ZSh2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBhc3luY0F0dHIpCiAg
ICAgICAgIGhhbmRsZUFzeW5jQXR0cmlidXRlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxT
Y3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlv
blR5cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxZTkxMDMyNDEwOS4uYjU0OGRmYWJiOGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Miw3ICs2Miw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVh
ZHlTdGFydGVkKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRp
bmdOb2RlKCkgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5k
ZXggZDllYWYxNDM3MmY2Li5mYmRiZGY5NmQyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNpemVBdHRyKSB7CiAgICAgICAg
IHVuc2lnbmVkIG9sZFNpemUgPSBtX3NpemU7CkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmkKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbXVsdGlwbGVBdHRyKQogICAg
ICAgICBwYXJzZU11bHRpcGxlQXR0cmlidXRlKHZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGludCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAppbmRleCA3NTlkYWYyYjg2ZDkuLmVlYjFkNjEzOWQwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw4IEBAIHBy
aXZhdGU6CiAgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRy
b2xTdGF0ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OworCiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNvdXJjZUVsZW1lbnQuY3BwCmluZGV4IDNmMzU1ZmE2Y2Y0NS4uY2FjZDgyNjE4M2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcApAQCAtMTUxLDE1ICsxNTEs
MTggQEAgdm9pZCBIVE1MU291cmNlRWxlbWVudDo6c3RvcCgpCiAgICAgY2FuY2VsUGVuZGluZ0Vy
cm9yRXZlbnQoKTsKIH0KIAotdm9pZCBIVE1MU291cmNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxTb3VyY2VFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBzcmNzZXRBdHRyIHx8
IG5hbWUgPT0gc2l6ZXNBdHRyIHx8IG5hbWUgPT0gbWVkaWFBdHRyIHx8IG5hbWUgPT0gdHlwZUF0
dHIpIHsKICAgICAgICAgaWYgKG5hbWUgPT0gbWVkaWFBdHRyKQogICAgICAgICAgICAgbV9jYWNo
ZWRQYXJzZWRNZWRpYUF0dHJpYnV0ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgUmVmUHRyIHBh
cmVudCA9IHBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKG1fc2hvdWxkQ2FsbFNvdXJjZXNDaGFu
Z2VkICYmIHBhcmVudCkKICAgICAgICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4o
KnBhcmVudCkuc291cmNlc0NoYW5nZWQoKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gd2lkdGhB
dHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikgeworICAgICAgICBpZiAoUmVmUHRyIHBhcmVudCA9
IHBhcmVudE5vZGUoKTsgaXM8SFRNTFBpY3R1cmVFbGVtZW50PihwYXJlbnQpKQorICAgICAgICAg
ICAgZG93bmNhc3Q8SFRNTFBpY3R1cmVFbGVtZW50PigqcGFyZW50KS5zb3VyY2VEaW1lbnNpb25B
dHRyaWJ1dGVzQ2hhbmdlZCgqdGhpcyk7CiAgICAgfQogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5U
KQogICAgIGlmIChuYW1lID09IHNyY0F0dHIgfHwgIG5hbWUgPT0gdHlwZUF0dHIpIHsKQEAgLTE3
OSwxMyArMTgyLDQgQEAgY29uc3QgTVE6Ok1lZGlhUXVlcnlMaXN0JiBIVE1MU291cmNlRWxlbWVu
dDo6cGFyc2VkTWVkaWFBdHRyaWJ1dGUoRG9jdW1lbnQmIGRvY3UKICAgICByZXR1cm4gbV9jYWNo
ZWRQYXJzZWRNZWRpYUF0dHJpYnV0ZS52YWx1ZSgpOwogfQogCi12b2lkIEhUTUxTb3VyY2VFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIHJlYXNvbikKLXsKLSAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIg
fHwgbmFtZSA9PSBoZWlnaHRBdHRyKSB7Ci0gICAgICAgIGlmIChSZWZQdHIgcGFyZW50ID0gcGFy
ZW50Tm9kZSgpOyBpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVudCkpCi0gICAgICAgICAgICBk
b3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNvdXJjZURpbWVuc2lvbkF0dHJp
YnV0ZXNDaGFuZ2VkKCp0aGlzKTsKLSAgICB9Ci0gICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOwotfQotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggZmU2ZjQwZDEyMjNkLi5lZTQyZWI1
NGM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKQEAgLTU0LDkg
KzU0LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0K
LSAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAg
IFRhc2tDYW5jZWxsYXRpb25Hcm91cCBtX2Vycm9yRXZlbnRDYW5jZWxsYXRpb25Hcm91cDsKICAg
ICBib29sIG1fc2hvdWxkQ2FsbFNvdXJjZXNDaGFuZ2VkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDE1MWUyZGU2NTQ5YS4uNDA2NmY3NDll
OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgUmVmPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFN0eWxlRWxl
bWVudChzdHlsZVRhZywgZG9jdW1lbnQsIGZhbHNlKSk7CiB9CiAKLXZvaWQgSFRNTFN0eWxlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHRpdGxlQXR0ciAmJiBz
aGVldCgpICYmICFpc0luU2hhZG93VHJlZSgpKQogICAgICAgICBzaGVldCgpLT5zZXRUaXRsZSh2
YWx1ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAg
IGlmIChhdXRvKiBzY29wZSA9IG1fc3R5bGVTaGVldE93bmVyLnN0eWxlU2NvcGUoKSkKICAgICAg
ICAgICAgIHNjb3BlLT5kaWRDaGFuZ2VTdHlsZVNoZWV0Q29udGVudHMoKTsKICAgICB9IGVsc2UK
LSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVu
dC5oCmluZGV4IGY2OTg0YzEyZGQ5YS4uMzNiNGZiNjRhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZp
bmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRG
cm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAppbmRleCBiZDg2YzkwYzBmYmQuLjcy
MDc0ZDU5NzhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVu
dC5jcHAKQEAgLTExMiwxNiArMTEyLDE0IEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllCiAgICAg
ICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIGlmIChuYW1lID09IHJvd3NwYW5BdHRy
KSB7Ci0gICAgICAgIGlmIChpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpKQotICAgICAg
ICAgICAgZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqcmVuZGVyZXIoKSkuY29sU3Bhbk9yUm93
U3BhbkNoYW5nZWQoKTsKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gY29sc3BhbkF0dHIpIHsKKyAg
ICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKKyAgICBpZiAobmFtZSA9PSBy
b3dzcGFuQXR0ciB8fCBuYW1lID09IGNvbHNwYW5BdHRyKSB7CiAgICAgICAgIGlmIChpczxSZW5k
ZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpKQogICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyVGFi
bGVDZWxsPigqcmVuZGVyZXIoKSkuY29sU3Bhbk9yUm93U3BhbkNoYW5nZWQoKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICB9CiB9CiAKIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJs
ZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCmluZGV4IDViZDNkZmUz
YjhmNS4uOTUzZTlhYzU0ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRh
YmxlQ2VsbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIG92ZXJyaWRlOwogICAgIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIGFk
ZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKaW5kZXggZTc5YWE4OTAwNTEw
Li40OWNmN2YwM2IxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVt
ZW50LmNwcApAQCAtNzIsOCArNzIsMTAgQEAgdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWQKICAgICAg
ICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ29sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IHNwYW5BdHRyKSB7CiAgICAgICAgIG1fc3BhbiA9
IGNsYW1wSFRNTE5vbk5lZ2F0aXZlSW50ZWdlclRvUmFuZ2UodmFsdWUsIG1pblNwYW4sIG1heFNw
YW4sIGRlZmF1bHRTcGFuKTsKICAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlQ29sPihyZW5kZXJl
cigpKSkKQEAgLTg3LDggKzg5LDcgQEAgdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICAgICAg
ICAgICAgICAgICAgY29sLnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxUYWJsZVBhcnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfQogfQogCiBjb25zdCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVDb2xFbGVtZW50OjphZGRpdGlvbmFsUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuaAppbmRleCBlZWU3ZmJjZTFiNGQuLmFlM2QwNWUzZDA3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogICAgIGNvbnN0IE11dGFi
bGVTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNv
bnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXgg
N2RiYWYyN2I2YjI2Li43YjgwYzk4ODlkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcApAQCAtMzYyLDggKzM2MiwxMCBAQCBib29sIEhUTUxUYWJsZUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bgogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTFRhYmxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgQ2VsbEJvcmRlcnMgYm9y
ZGVyc0JlZm9yZSA9IGNlbGxCb3JkZXJzKCk7CiAgICAgdW5zaWduZWQgc2hvcnQgb2xkUGFkZGlu
ZyA9IG1fcGFkZGluZzsKIApAQCAtMzk4LDggKzQwMCw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluCiAgICAgICAgICAgICBtX3BhZGRpbmcgPSAxOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBj
b2xzQXR0cikgewogICAgICAgICAvLyAjIyMKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiAKICAgICBpZiAoYm9yZGVy
c0JlZm9yZSAhPSBjZWxsQm9yZGVycygpIHx8IG9sZFBhZGRpbmcgIT0gbV9wYWRkaW5nKSB7CiAg
ICAgICAgIG1fc2hhcmVkQ2VsbFN0eWxlID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmgKaW5kZXggYmFjZmE0NmRkZmY1Li43NTEyNDU4OThlNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTFRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCmluZGV4IDk1MGUxMTg2MDYwNy4uYmJmM2VlNjEwYmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTE0Myw4ICsxNDMsOSBA
QCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUs
IHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
bmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAg
IGlmIChuYW1lID09IHJvd3NBdHRyKSB7CiAgICAgICAgIHVuc2lnbmVkIHJvd3MgPSBsaW1pdFRv
T25seUhUTUxOb25OZWdhdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm8odmFsdWUsIGRlZmF1bHRS
b3dzKTsKICAgICAgICAgaWYgKG1fcm93cyAhPSByb3dzKSB7CkBAIC0xODAsOCArMTgxLDcgQEAg
dm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWlubGVuZ3Ro
QXR0cikgewogICAgICAgICBpbnRlcm5hbFNldE1pbkxlbmd0aChwYXJzZUhUTUxOb25OZWdhdGl2
ZUludGVnZXIodmFsdWUpLnZhbHVlX29yKC0xKSk7CiAgICAgICAgIHVwZGF0ZVZhbGlkaXR5KCk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfQogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IDc1YzVjMTMzY2U3NC4uMzNiMmM4NGVlMWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtOTMsNyArOTMs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29s
IGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKaW5kZXggNWYzZDA3MTZjYTc5Li45N2NmMWFhYzMxZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01
NDcsMTUgKzU0NywxNSBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rp
b25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVjdEV2ZW50KQogdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2NoZWR1bGVTZWxlY3RFdmVudCgpCiB7CiAgICAgcXVldWVUYXNrVG9E
aXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc2VsZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6Oklz
Q2FuY2VsYWJsZTo6Tm8pKTsKLX0gCit9CiAKLXZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gcGxhY2Vo
b2xkZXJBdHRyKSB7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICB1
cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDg1MTA2YWQ0NDk5
NC4uYjNkMGViZDY1ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgaXNQbGFjZWhvbGRlckVtcHR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCgpID0gMDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAwYzk2M2RhN2I4Y2EuLmVkZGM5OGM4ZmYw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92
YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2QKICAgICAgICAgZG93bmNhc3Q8SFRNTE1l
ZGlhRWxlbWVudD4ob2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkuZGlkUmVtb3ZlVGV4dFRyYWNrKCp0
aGlzKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRy
YWNrRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgaWYgKG5hbWUgPT0gc3JjQXR0cikgewogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKQEAgLTEx
Nyw3ICsxMTcsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgIGVsc2UgaWYgKG5hbWUg
PT0gc3JjbGFuZ0F0dHIpCiAgICAgICAgIHRyYWNrKCkuc2V0TGFuZ3VhZ2UodmFsdWUpOwogCi0g
ICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxUcmFja0VsZW1l
bnQ6OmtpbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCAzZjQ0
ZTBhOGUxNGEuLmUyMjUxZTA0ZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNl
c3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1v
dmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBiYjQ4MTFhMjA5MjkuLmFm
MDRhY2QyOTQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBA
IC0xMzMsNyArMTMzLDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG4KICAgICByZXR1cm4gSFRN
TE1lZGlhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsK
IH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gcG9zdGVyQXR0cikgewogICAgICAgICBpZiAoc2hvdWxkRGlzcGxheVBvc3Rlcklt
YWdlKCkpIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICB9CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBIVE1MTWVkaWFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7ICAgIAorICAgICAgICBIVE1MTWVkaWFFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpCiAgICAgICAgIGlmIChuYW1lID09IHdlYmtpdGFpcnBsYXlBdHRy
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IDkwZDI4NzhiZGNh
Yy4uZGY3ZmMyZmU4Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApA
QCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVJlc2l6ZUV2ZW50
SWZTaXplQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVmlkZW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5kZXggOWQyYWI5
YThmNjg1Li45YTVlZWY3MzNjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVu
dC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdW5zaWduZWQgTWF0aE1MRWxlbWVudDo6cm93U3Bhbigp
IGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4KDF1LCBzdGQ6Om1pbihsaW1pdFRvT25seUhUTUxO
b25OZWdhdGl2ZShyb3dTcGFuVmFsdWUsIDF1KSwgbWF4Um93c3BhbikpOwogfQogCi12b2lkIE1h
dGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBocmVmQXR0cikg
ewogICAgICAgICBib29sIHdhc0xpbmsgPSBpc0xpbmsoKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCB2
b2lkIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAot
ICAgICAgICBTdHlsZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
ICAgIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVl
LCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxFbGVtZW50LmgKaW5kZXggZTg4OTZhYWQzZGYxLi41MmYzZWZiYjQ2NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgTWF0aE1MRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVNYXRoTUxFbGVtZW50
KTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTEZyYWN0aW9uRWxlbWVudC5jcHAKaW5kZXggOTg4MjlkMzFmNGRkLi5hMGE3OTM3MGU0
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1lbnQu
Y3BwCkBAIC0xMDksNyArMTA5LDcgQEAgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpGcmFjdGlvbkFs
aWdubWVudCBNYXRoTUxGcmFjdGlvbkVsZW1lbnQ6OmRlbm9taW5hdG9yQWxpZ24KICAgICByZXR1
cm4gY2FjaGVkRnJhY3Rpb25BbGlnbm1lbnQoZGVub21hbGlnbkF0dHIsIG1fZGVub21pbmF0b3JB
bGlnbm1lbnQpOwogfQogCi12b2lkIE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gbGluZXRoaWNrbmVzc0F0dHIpCiAgICAgICAg
IG1fbGluZVRoaWNrbmVzcyA9IHN0ZDo6bnVsbG9wdDsKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lk
IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbQogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGVub21hbGlnbkF0dHIp
CiAgICAgICAgIG1fZGVub21pbmF0b3JBbGlnbm1lbnQgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBN
YXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxG
cmFjdGlvbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEZyYWN0aW9uRWxlbWVudC5oCmluZGV4IDY5NWM1ODEzMjE2OS4uNmMyMDJkOWViMGJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5oCkBAIC00
Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MRnJhY3Rpb25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBh
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikgZmluYWw7CiAKICAgICBGcmFjdGlvbkFsaWdubWVudCBjYWNoZWRGcmFjdGlvbkFsaWdu
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgc3RkOjpvcHRpb25hbDxGcmFjdGlvbkFsaWdubWVu
dD4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5k
ZXggNTE1YzliOTU5NTQ3Li41ODczY2UxNDY1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1hdGhFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTE1hdGg+KCp0aGlz
LCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKLXZvaWQgTWF0aE1MTWF0aEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBNYXRoTUxNYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgYm9vbCBtYXRoVmFyaWFudEF0dHJpYnV0ZSA9IG5hbWUgPT0gbWF0
aHZhcmlhbnRBdHRyOwogICAgIGlmIChtYXRoVmFyaWFudEF0dHJpYnV0ZSkKQEAgLTYzLDcgKzYz
LDcgQEAgdm9pZCBNYXRoTUxNYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICBpZiAoKG1hdGhWYXJpYW50QXR0cmli
dXRlKSAmJiByZW5kZXJlcigpKQogICAgICAgICBNYXRoTUxTdHlsZTo6cmVzb2x2ZU1hdGhNTFN0
eWxlVHJlZShyZW5kZXJlcigpKTsKIAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9p
ZCBNYXRoTUxNYXRoRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKaW5kZXggMzVjOWMxZjY5ODY0Li5hYTY1MzBkMTE0
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY29uc3RleHByIHN0YXRpYyBhdXRvIENy
ZWF0ZU1hdGhNTE1hdGhFbGVtZW50ID0gQ3JlYXRlTWF0aE1MUm93RWxlbWVudCB8IE5vZGVGbGFn
OjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3M7CiAgICAgTWF0aE1MTWF0aEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBm
aW5hbDsKIAogICAgIGJvb2wgYWNjZXB0c01hdGhWYXJpYW50QXR0cmlidXRlKCkgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmNwcAppbmRleCBjYTYyNGNjM2JkMTQuLjEyNGY5ZGI1M2FlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTEzMywxMiAr
MTMzLDEyIEBAIGJvb2wgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpoYXNOb3RhdGlvbihNZW5jbG9z
ZU5vdGF0aW9uRmxhZyBub3RhdGlvbkZsYWcpCiAgICAgcmV0dXJuIG1fbm90YXRpb25GbGFncy52
YWx1ZSgpICYgbm90YXRpb25GbGFnOwogfQogCi12b2lkIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCit2b2lkIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gbm90YXRpb25BdHRyKQog
ICAgICAgICBtX25vdGF0aW9uRmxhZ3MgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxSb3dF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MUm93RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
ZW5jbG9zZUVsZW1lbnQuaAppbmRleCAwNTA2YjVmMDAwZmYuLmUyODU1OWNlOWUzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaApAQCAtNTksNyAr
NTksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTE1lbmNsb3NlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
ICAgICB2b2lkIHBhcnNlTm90YXRpb25BdHRyaWJ1dGUoKTsKICAgICB2b2lkIGNsZWFyTm90YXRp
b25zKCkgeyBtX25vdGF0aW9uRmxhZ3MgPSAwOyB9CiAgICAgdm9pZCBhZGROb3RhdGlvbihNZW5j
bG9zZU5vdGF0aW9uRmxhZyBub3RhdGlvbkZsYWcpIHsgbV9ub3RhdGlvbkZsYWdzLnZhbHVlKCkg
fD0gbm90YXRpb25GbGFnOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MT3BlcmF0b3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVy
YXRvckVsZW1lbnQuY3BwCmluZGV4IGQ5NzI4OGNkYzYzOS4uMTM4ZTEwNGFiNTEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcApAQCAtMjI5
LDcgKzIyOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1hdGhNTE9wZXJhdG9yRGljdGlvbmFy
eTo6RmxhZz4gYXR0cmlidXRlTmFtZVRvUHJvcGVydHlGbGFnCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIAotdm9pZCBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBN
YXRoTUxPcGVyYXRvckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewogICAgIGlmIChuYW1lID09IGZvcm1BdHRyKSB7CiAgICAgICAgIG1fZGljdGlvbmFy
eVByb3BlcnR5ID0gc3RkOjpudWxsb3B0OwpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgTWF0aE1M
T3BlcmF0b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNYXRoTUxUb2tlbkVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxUb2tlbkVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MT3Bl
cmF0b3JFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxPcGVyYXRvckVsZW1lbnQuaAppbmRleCBlMWM5ZTY3NGNlNjguLmJiYTk1MTcxNTM3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaApAQCAtNTYs
NyArNTYsNyBAQCBwcml2YXRlOgogICAgIE1hdGhNTE9wZXJhdG9yRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPE9wZXJhdG9yQ2hhcj4gbV9vcGVyYXRvckNoYXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcAppbmRleCA5NGYyYzNl
MjIxMWMuLmI3NWJiYjk1OTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFBhZGRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBjb25zdCBNYXRoTUxFbGVtZW50OjpM
ZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnZvZmZzZXQoKQogICAgIHJldHVybiBjYWNoZWRN
YXRoTUxMZW5ndGgoTWF0aE1MTmFtZXM6OnZvZmZzZXRBdHRyLCBtX3ZvZmZzZXQpOwogfQogCi12
b2lkIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxQYWRkZWRFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAo
bmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIG1fd2lkdGggPSBzdGQ6Om51bGxvcHQ7CkBAIC04
Niw3ICs4Niw3IEBAIHZvaWQgTWF0aE1MUGFkZGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0CiAgICAgZWxzZSBpZiAobmFtZSA9
PSB2b2Zmc2V0QXR0cikKICAgICAgICAgbV92b2Zmc2V0ID0gc3RkOjpudWxsb3B0OwogCi0gICAg
TWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1M
UGFkZGVkRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFBhZGRlZEVsZW1lbnQuaAppbmRleCA2Mzk0Nzg5MWQ0MmMuLmVmY2ZhOWIyYzVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MUGFkZGVkRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogCiAgICAgc3RkOjpvcHRpb25hbDxMZW5ndGg+IG1fd2lkdGg7CiAgICAgc3RkOjpvcHRpb25h
bDxMZW5ndGg+IG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFByZXNlbnRhdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFByZXNlbnRhdGlvbkVsZW1lbnQuY3BwCmluZGV4IGIyZmVkNTIxYWU5My4uYWUyYzIyYWJlNmM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVs
ZW1lbnQuY3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgc3RkOjpvcHRpb25hbDxNYXRoTUxFbGVtZW50
OjpNYXRoVmFyaWFudD4gTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6c3BlY2lmaWVkTWEKICAg
ICByZXR1cm4gbV9tYXRoVmFyaWFudC52YWx1ZSgpID09IE1hdGhWYXJpYW50OjpOb25lID8gc3Rk
OjpudWxsb3B0IDogbV9tYXRoVmFyaWFudDsKIH0KIAotdm9pZCBNYXRoTUxQcmVzZW50YXRpb25F
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgYm9vbCBtYXRoVmFyaWFu
dEF0dHJpYnV0ZSA9IG5hbWUgPT0gbWF0aHZhcmlhbnRBdHRyICYmIGFjY2VwdHNNYXRoVmFyaWFu
dEF0dHJpYnV0ZSgpOwogICAgIGlmIChtYXRoVmFyaWFudEF0dHJpYnV0ZSkKQEAgLTM3MCw3ICsz
NzAsNyBAQCB2b2lkIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgaWYgKChtYXRoVmFyaWFudEF0dHJp
YnV0ZSkgJiYgcmVuZGVyZXIoKSkKICAgICAgICAgTWF0aE1MU3R5bGU6OnJlc29sdmVNYXRoTUxT
dHlsZVRyZWUocmVuZGVyZXIoKSk7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5o
CmluZGV4IDc1NjFiOWYzMTE5NS4uNzUwODA0MzdlYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgYXV0byBDcmVhdGVNYXRo
TUxQcmVzZW50YXRpb25FbGVtZW50ID0gQ3JlYXRlTWF0aE1MRWxlbWVudDsKICAgICBNYXRoTUxQ
cmVzZW50YXRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZU1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQpOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogICAgIHN0YXRp
YyBib29sIGlzUGhyYXNpbmdDb250ZW50KGNvbnN0IE5vZGUmKTsKICAgICBzdGF0aWMgYm9vbCBp
c0Zsb3dDb250ZW50KGNvbnN0IE5vZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2NyaXB0c0VsZW1lbnQuY3BwCmluZGV4IDA2NGVhMDg5ZjljYS4uNDQ5ZjNmZDFlODVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAKQEAg
LTc3LDE0ICs3NywxNCBAQCBjb25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIE1hdGhNTFNjcmlw
dHNFbGVtZW50OjpzdXBlcnNjcmlwdFNoaWZ0KCkKICAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVu
Z3RoKHN1cGVyc2NyaXB0c2hpZnRBdHRyLCBtX3N1cGVyc2NyaXB0U2hpZnQpOwogfQogCi12b2lk
IE1hdGhNTFNjcmlwdHNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MU2NyaXB0c0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHN1YnNjcmlwdHNoaWZ0QXR0cikKICAgICAgICAgbV9zdWJzY3JpcHRTaGlmdCA9IHN0
ZDo6bnVsbG9wdDsKICAgICBlbHNlIGlmIChuYW1lID09IHN1cGVyc2NyaXB0c2hpZnRBdHRyKQog
ICAgICAgICBtX3N1cGVyc2NyaXB0U2hpZnQgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxTY3JpcHRz
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU2NyaXB0c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3Jp
cHRzRWxlbWVudC5oCmluZGV4IDRhYTYzMmE4ZGE3MC4uY2M2OTQzOTE0NTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBA
QCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICBjb25zdCBTY3JpcHRUeXBlIG1fc2NyaXB0VHlwZTsKICAgICBzdGQ6Om9wdGlv
bmFsPExlbmd0aD4gbV9zdWJzY3JpcHRTaGlmdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNwYWNlRWxlbWVudC5jcHAKaW5kZXggZDU2ZTNhMDQwZDU5Li4xNDk3MzYyNTE4M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwCkBAIC02Myw3
ICs2Myw3IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0aCYgTWF0aE1MU3BhY2VFbGVtZW50
OjpkZXB0aCgpCiAgICAgcmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6ZGVw
dGhBdHRyLCBtX2RlcHRoKTsKIH0KIAotdm9pZCBNYXRoTUxTcGFjZUVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBNYXRoTUxTcGFjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgbV93aWR0
aCA9IHN0ZDo6bnVsbG9wdDsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBNYXRoTUxTcGFjZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHIKICAgICBlbHNlIGlmIChuYW1lID09IGRlcHRoQXR0cikKICAgICAgICAgbV9kZXB0aCA9IHN0
ZDo6bnVsbG9wdDsKIAotICAgIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFNwYWNlRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU3Bh
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50LmgK
aW5kZXggZWQ1MjRhZGI1MmNjLi5mOTNjMjI1MjhhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MU3BhY2VFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBNYXRoTUxTcGFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9u
YWw8TGVuZ3RoPiBtX3dpZHRoOwogICAgIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBtX2hlaWdodDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcApp
bmRleCAwNGZiMDEyNzkzZGYuLjM1NDY5ODA2NGU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcApAQCAtNTgsMTQgKzU4LDE0IEBAIGNv
bnN0IE1hdGhNTEVsZW1lbnQ6OkJvb2xlYW5WYWx1ZSYgTWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6
YWNjZW50VW5kZXIoKQogICAgIHJldHVybiBjYWNoZWRCb29sZWFuQXR0cmlidXRlKGFjY2VudHVu
ZGVyQXR0ciwgbV9hY2NlbnRVbmRlcik7CiB9CiAKLXZvaWQgTWF0aE1MVW5kZXJPdmVyRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IGFjY2VudEF0dHIp
CiAgICAgICAgIG1fYWNjZW50ID0gc3RkOjpudWxsb3B0OwogICAgIGVsc2UgaWYgKG5hbWUgPT0g
YWNjZW50dW5kZXJBdHRyKQogICAgICAgICBtX2FjY2VudFVuZGVyID0gc3RkOjpudWxsb3B0Owog
Ci0gICAgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1h
dGhNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
TWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaAppbmRleCAxY2NjYWI3MGM3ODMuLjdiZTE3
OGQ0NzZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3Zl
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxl
bWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MVW5k
ZXJPdmVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwog
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuVmFs
dWU+IG1fYWNjZW50OwogICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhblZhbHVlPiBtX2FjY2VudFVu
ZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggYTI5ZWQ4Zjg4ODVhLi5lY2E2
MzJjZTdhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtNzksOCArNzksMTAg
QEAgU3RyaW5nIFNWR0FFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNWR0VsZW1l
bnQ6OnRpdGxlKCk7CiB9CiAKLXZvaWQgU1ZHQUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdB
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAg
U1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dGFy
Z2V0QXR0cikgewogICAgICAgICBtX3RhcmdldC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtODgsOSArOTAsNiBAQCB2b2lkIFNWR0FFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YQogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxMaXN0LT5hc3NvY2lh
dGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICB9Ci0KLSAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdVUklSZWZlcmVu
Y2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdBRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmgKaW5kZXggYzA4MzllNDVlM2UxLi40MTYzNjYwMDZmODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAKICAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0FFbGVt
ZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAppbmRleCA5ODM2YWJiNGNlOTkuLmRjMzdkNzdhYTFiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC05OCwxNSAr
OTgsMTQgQEAgYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVO
YW1lKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTVkdBbmltYXRlTW90aW9u
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdBbmltYXRpb25FbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwYXRoQXR0cikg
ewogICAgICAgICBtX3BhdGggPSBidWlsZFBhdGhGcm9tU3RyaW5nKHZhbHVlKTsKICAgICAgICAg
dXBkYXRlQW5pbWF0aW9uUGF0aCgpOwotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZH
QW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogICAgIAog
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OlJvdGF0ZU1vZGUgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQ6OnJvdGF0ZU1vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuaAppbmRleCA4MmQ4OGEzNTJiM2MuLmI2ZjlhMjYyMWE4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKQEAgLTM5LDcgKzM5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHN0YXJ0QW5pbWF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9uKFNWR0Vs
ZW1lbnQqIHRhcmdldEVsZW1lbnQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKaW5kZXggZDE1M2QxNGJiODZhLi4yZTEy
ZTc5NjY5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCBib29sIFNWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50OjpoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBTVkdBbmlt
YXRlRWxlbWVudEJhc2U6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpOwogfQogCi12b2lkIFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikgewogICAgICAgICBtX3R5cGUgPSBTVkdU
cmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybVR5cGUodmFsdWUpLnZhbHVlX29yKFNWR1RyYW5z
Zm9ybVZhbHVlOjpTVkdfVFJBTlNGT1JNX1VOS05PV04pOwpAQCAtNjMsNyArNjMsNyBAQCB2b2lk
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogU3RyaW5nIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50OjphbmltYXRlUmFuZ2VTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5o
CmluZGV4IDk4ZGE3MGUyNmQ2Zi4uNWFlNTc4NjFkMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwcml2
YXRlOgogICAgIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogICAgIAogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIFN0
cmluZyBhbmltYXRlUmFuZ2VTdHJpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAg
ICBTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKaW5kZXggMDcwOTg0MzUxNzU4Li4wN2E0
MDNhNTlmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAK
QEAgLTE2Myw4ICsxNjMsMTAgQEAgYm9vbCBTVkdBbmltYXRpb25FbGVtZW50OjphdHRyaWJ1dGVD
b250YWluc0phdmFTY3JpcHRVUkwoY29uc3QgQXR0cmlidXRlJiBhdHRyaWIKICAgICByZXR1cm4g
RWxlbWVudDo6YXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGF0dHJpYnV0ZSk7CiB9CiAK
LXZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNW
R1NNSUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp2
YWx1ZXNBdHRyKSB7CiAgICAgICAgIC8vIFBlciB0aGUgU01JTCBzcGVjaWZpY2F0aW9uLCBsZWFk
aW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZSwKICAgICAgICAgLy8gYW5kIHdoaXRlIHNwYWNl
IGJlZm9yZSBhbmQgYWZ0ZXIgc2VtaWNvbG9uIHNlcGFyYXRvcnMsIGlzIGFsbG93ZWQgYW5kIHdp
bGwgYmUgaWdub3JlZC4KQEAgLTIxNSw3ICsyMTcsNiBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAppbmRl
eCBlZDFkNTRjMGQ1OWUuLmJkOWEyZWVhNzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5oCkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICBi
b29sIGF0dHJpYnV0ZUNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25zdCBBdHRyaWJ1dGUmKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFN0cmluZyB0b1ZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAKaW5kZXggNjg5MTg4MTNlZjc3Li41Y2ZlM2NkNWNmNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPFNW
R0NpcmNsZUVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdDaXJjbGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJv
cjsKIApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVw
b3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAg
IFNWR0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0dlb21ldHJ5RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ2lyY2xlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IGJkMjg0NGJlNTcwYi4uNmUzNDQ3
OGJiMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHQ2lyY2xlRWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50PjsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAppbmRleCBlOGFmZmU3YWMyM2YuLmFk
MTA3NWRmYThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmPFNWR0NsaXBQYXRoRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdDbGlwUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
dm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDbGlwUGF0aEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IFNWR05hbWVzOjpjbGlwUGF0aFVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3Bl
cnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6
ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pOwogfQogCiB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuaAppbmRleCBlYmQyMjcyNTgwOWEuLjBlOTBiNjc5NDY0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRl
OgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdDbGlwUGF0aEVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudD47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAppbmRleCA3MjEw
MTg4ZDA4MmEuLjU5OWE1ZmUzM2YyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCkBAIC00Nyw3ICs0
Nyw3IEBAIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudChjb25zdCBRCiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAg
ICAgIENvbXBvbmVudFRyYW5zZmVyVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFp
dHM8Q29tcG9uZW50VHJhbnNmZXJUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC04Niw3ICs4
Niw3IEBAIHZvaWQgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oCmluZGV4IGRiZmRjOWJlYzg3Ni4uZTdhZDM0MGI2M2E4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LCBTVkdFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAppbmRleCA1YzQ0MDU1ZTkwZmYuLjcyMGU2
OTY3MjI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcApAQCAtNTgs
NyArNTgsNyBAQCBTVkdDdXJzb3JFbGVtZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCiAgICAgICAg
IGNsaWVudC0+Y3Vyc29yRWxlbWVudFJlbW92ZWQoKnRoaXMpOwogfQogCi12b2lkIFNWR0N1cnNv
ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDdXJzb3JFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VF
cnJvciA9IE5vRXJyb3I7CiAKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBTVkdDdXJzb3JFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2
YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0g
ICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZl
cmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKyAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQog
CiB2b2lkIFNWR0N1cnNvckVsZW1lbnQ6OmFkZENsaWVudChTdHlsZUN1cnNvckltYWdlJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmluZGV4IDNhZWFkMzcwNGY5OC4u
MDc2ZTEyYzA4YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAgLTQ5
LDggKzQ5LDggQEAgcHJpdmF0ZToKICAgICBTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1By
b3BlcnR5T3duZXJSZWdpc3RyeTxTVkdDdXJzb3JFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdUZXN0
cywgU1ZHVVJJUmVmZXJlbmNlPjsKLSAgICAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4IDE3
NGFhZDhlY2Q2Yi4uOTc5MjE3Yzc5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBA
IC00MTAsMjggKzQxMCw2IEBAIHZvaWQgU1ZHRWxlbWVudDo6c2V0Q29ycmVzcG9uZGluZ0VsZW1l
bnQoU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQpCiAgICAgICAgIGNvcnJlc3BvbmRp
bmdFbGVtZW50LT5lbnN1cmVTVkdSYXJlRGF0YSgpLmFkZEluc3RhbmNlKCp0aGlzKTsKIH0KIAot
dm9pZCBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6
OmNsYXNzQXR0cikgewotICAgICAgICBtX2NsYXNzTmFtZS0+c2V0QmFzZVZhbEludGVybmFsKHZh
bHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChuYW1lID09IEhUTUxOYW1l
czo6dGFiaW5kZXhBdHRyKSB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHkoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgZWxzZSBp
ZiAoYXV0byBvcHRpb25hbFRhYkluZGV4ID0gcGFyc2VIVE1MSW50ZWdlcih2YWx1ZSkpCi0gICAg
ICAgICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHkob3B0aW9uYWxUYWJJbmRleC52YWx1ZSgpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8mIGV2ZW50TmFtZSA9IEhUTUxFbGVt
ZW50OjpldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUobmFtZSk7Ci0gICAgaWYgKCFl
dmVudE5hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWUsIG5hbWUsIHZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQogYm9v
bCBTVkdFbGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKQogewogICAgIGZvciAo
YXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxTVkdFbGVtZW50PigqdGhpcykpIHsKQEAgLTYx
MSwxMyArNTg5LDI0IEBAIGJvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gc3ZnQ2hpbGQuaXNWYWxpZCgp
OwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCit2b2lkIFNWR0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIFN0eWxlZEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTsKKyAgICBT
dHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6
aWRBdHRyKQogICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZWJ1aWxk
QWxsRWxlbWVudFJlZmVyZW5jZXNGb3JUYXJnZXQoKnRoaXMpOwotCisgICAgZWxzZSBpZiAobmFt
ZSA9PSBIVE1MTmFtZXM6OmNsYXNzQXR0cikgeworICAgICAgICBtX2NsYXNzTmFtZS0+c2V0QmFz
ZVZhbEludGVybmFsKHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjp0
YWJpbmRleEF0dHIpIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHNldFRhYkluZGV4RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOworICAgICAgICBlbHNlIGlmIChh
dXRvIG9wdGlvbmFsVGFiSW5kZXggPSBwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKSkKKyAgICAgICAg
ICAgIHNldFRhYkluZGV4RXhwbGljaXRseShvcHRpb25hbFRhYkluZGV4LnZhbHVlKCkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGF1dG8mIGV2ZW50TmFtZSA9IEhUTUxFbGVtZW50OjpldmVudE5h
bWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgIGlmICghZXZlbnROYW1l
LmlzTnVsbCgpKQorICAgICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWUsIG5hbWUsIHZhbHVlKTsKKyAgICB9CiAgICAgLy8gQ2hhbmdlcyB0byB0aGUgc3R5bGUgYXR0
cmlidXRlIGFyZSBwcm9jZXNzZWQgbGF6aWx5IChzZWUgRWxlbWVudDo6Z2V0QXR0cmlidXRlKCkg
YW5kIHJlbGF0ZWQgbWV0aG9kcyksCiAgICAgLy8gc28gd2UgZG9uJ3Qgd2FudCBjaGFuZ2VzIHRv
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgdG8gcmVzdWx0IGluIGV4dHJhIHdvcmsgaGVyZSBleGNlcHQg
aW52YWxpZGF0ZUluc3RhbmNlcygpLgogICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6c3R5bGVB
dHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggOGZmYWRiZTRhNjFjLi4xOTE1YzZjYWQ1
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtMTc0LDcgKzE3NCw2IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIH5TVkdFbGVtZW50KCk7CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gPSBNb2RpZmllZERpcmVjdGx5KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuY3BwCmluZGV4IDFiNDdmOGNlMmI1ZC4uZDdmMmMwMjFhYzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVm
PFNWR0VsbGlwc2VFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIEQKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdFbGxpcHNl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0VsbGlwc2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0g
Tm9FcnJvcjsKIApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFNWR0VsbGlwc2VFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogCiAg
ICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsK
IAotICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRWxsaXBz
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IDkyNjAyY2YxZGNl
Ni4uZGEwYTEyNGFhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBz
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaApA
QCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdFbGxpcHNlRWxlbWVudCwgU1ZHR2VvbWV0cnlF
bGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKaW5kZXggNzFmZjdk
Y2JiYmE2Li4xODhhOTg0NGI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVt
ZW50LmNwcApAQCAtNDgsOCArNDgsOCBAQCBSZWY8U1ZHRkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxl
bmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFQmxlbmRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9Ci0gICAgCi12b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKKwordm9pZCBT
VkdGRUJsZW5kRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1vZGVBdHRyKSB7CiAgICAgICAgIEJsZW5k
TW9kZSBtb2RlID0gQmxlbmRNb2RlOjpOb3JtYWw7CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgU1ZH
RkVCbGVuZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiBib29sIFNWR0ZFQmxlbmRFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmls
dGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAppbmRleCBjZjUxNDYxYWFiYzcuLmNhMWY4Y2M1
NDU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHRkVCbGVuZEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVm
ZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGU1MTkyMzZh
MjI4ZC4uNTc5MzAwN2Q3OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgYm9vbCBTVkdGRUNvbG9yTWF0cml4
RWxlbWVudDo6aXNJbnZhbGlkVmFsdWVzTGVuZ3RoKCkgY29uc3QKICAgICAgICAgfHwgKGZpbHRl
clR5cGUgPT0gRkVDT0xPUk1BVFJJWF9UWVBFX1NBVFVSQVRFICAmJiBzaXplICE9IDEpOwogfQog
Ci12b2lkIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikgewogICAgICAgICBhdXRvIHBy
b3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxDb2xvck1hdHJpeFR5cGU+Ojpmcm9tU3Ry
aW5nKHZhbHVlKTsKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVm
ZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCmluZGV4IDJhYTZiMzE0MzA3Ny4uMmI1OWJmYzM1
M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaApA
QCAtODMsNyArODMsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBpc0ludmFsaWRWYWx1ZXNMZW5n
dGgoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKaW5kZXggZjYwMjFhZDQ2
NTdlLi5mYzU1ZDc5ZjYzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApAQCAtNTEsMTQgKzUxLDE0IEBAIFJlZjxTVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudD4gU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CiAgICAgICAgIG1faW4xLT5zZXRCYXNl
VmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKIH0KIAogdm9pZCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmgKaW5kZXggYmY1YWQ5ZDA1
MmVjLi4zZTM0ZjAxMmUzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAg
ICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZF
Q29tcG9uZW50VHJhbnNmZXJFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CiAKICAgICBWZWN0b3I8QXRvbVN0cmluZz4gZmlsdGVyRWZmZWN0SW5wdXRzTmFtZXMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB7IEF0b21TdHJpbmcgeyBpbjEoKSB9IH07IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKaW5kZXggZWU5NDFkYzQ4
ODc5Li5lNjY0NmYwMDhkMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0
ZUVsZW1lbnQuY3BwCkBAIC01Miw3ICs1Miw3IEBAIFJlZjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+
IFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhCiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVDb21wb3NpdGVFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyKSB7CiAg
ICAgICAgIENvbXBvc2l0ZU9wZXJhdGlvblR5cGUgcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5
VHJhaXRzPENvbXBvc2l0ZU9wZXJhdGlvblR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29t
cG9zaXRlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVu
dC5oCmluZGV4IDZmNWVmYjc2NjMxZC4uMjIyMzY4MGM1YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0ZToK
IAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8
U1ZHRkVDb21wb3NpdGVFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCA1NDlmMjVmZGI2ODIuLjQ0OWNmYjM5
YWM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIFJlZjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dD4gU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpCiAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRy
KSB7CiAgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwpAQCAtMTMyLDcg
KzEzMiw3IEBAIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojpz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuaAppbmRleCA2OTdkMGVjMTc1NGUuLjE2ZWIyYzQ2MTkxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKQEAgLTk5
LDcgKzk5LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQsIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAK
aW5kZXggZWM4YzYyMDM1NDFjLi4yOGFlMjg0YzdlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IFJlZjxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsK
ICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CiAgICAgICAgIG1faW4xLT5zZXRC
YXNlVmFsSW50ZXJuYWwodmFsdWUpOwpAQCAtNzYsNyArNzYsNyBAQCB2b2lkIFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29ucwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9v
bCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShG
aWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKaW5kZXgg
ZDQxYTY4N2FlOTNkLi5jY2EyYzBmZDBmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKQEAgLTUyLDggKzUyLDggQEAgcHJpdmF0ZToK
ICAgICBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzPjsKLSAgICAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAppbmRl
eCBjNWMwZWEyMTUzYmUuLjk4NzFmYzgzYzQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVm
PFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4gU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGkKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjp4Q2hhbm5lbFNlbGVjdG9yQXR0cikgewogICAgICAgICBh
dXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxDaGFubmVsU2VsZWN0b3JUeXBl
Pjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgU1ZHRkVEaXNwbGFj
ZW1lbnRNYXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwg
b2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29s
IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZp
bHRlckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAppbmRleCA3
MmIyYzRjNTRlNWUuLmIyMTdiZWVmZDhjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaApAQCAtODYsNyArODYsNyBAQCBwcml2YXRlOgog
CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxT
VkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAppbmRleCAzMGUzMTJkNWYzZmIuLmMy
NjRhOWU4NzQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRv
d0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVt
ZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnNl
dFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5KQogICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9y
RWxlbWVudENoYW5nZSgpOwogfQogCi12b2lkIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6c3RkRGV2aWF0
aW9uQXR0cikgewogICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBwYXJzZU51bWJlck9wdGlvbmFs
TnVtYmVyKHZhbHVlKSkgewpAQCAtODIsNyArODIsNyBAQCB2b2lkIFNWR0ZFRHJvcFNoYWRvd0Vs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
bwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdG
RURyb3BTaGFkb3dFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNo
YWRvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50
LmgKaW5kZXggNzQ2ZjcxODMwMDE3Li4zZTIwMDcxODY3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgog
CiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxT
VkdGRURyb3BTaGFkb3dFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAg
IHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwCmluZGV4IDY5MTFiMzk5ODMxNy4uNTgwMTM5ZDEzY2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNw
cApAQCAtNTYsNyArNTYsNyBAQCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6c2V0U3Rk
RGV2aWF0aW9uKGZsb2F0IHgsIGZsb2F0IHkpCiAgICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVt
ZW50Q2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6c3RkRGV2aWF0
aW9uQXR0cikgewogICAgICAgICBpZiAoYXV0byByZXN1bHQgPSBwYXJzZU51bWJlck9wdGlvbmFs
TnVtYmVyKHZhbHVlKSkgewpAQCAtODAsNyArODAsNyBAQCB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50LmgKaW5kZXggODRjYTE1OWQ4YjI2Li4yMTViN2RmNTY3NGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnk8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJF
ZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCAwMjMzYzc3MjE5NWUuLjNiZTA3MzUwY2VjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMTQsMTUgKzEx
NCwxNSBAQCB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpidWlsZFBlbmRpbmdSZXNvdXJjZSgpCiAg
ICAgdXBkYXRlU1ZHUmVuZGVyZXJGb3JFbGVtZW50Q2hhbmdlKCk7CiB9CiAKLXZvaWQgU1ZHRkVJ
bWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRUltYWdlRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHVVJJUmVmZXJlbmNlOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpw
cmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cikgewogICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8t
PnNldEJhc2VWYWxJbnRlcm5hbChTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgeyB2YWx1ZSB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIFNWR1VSSVJl
ZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0ZFSW1h
Z2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAppbmRleCBkNzMzNjBlNGI1
ZTYuLjIxYTk1ODMyYzM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkg
PSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVJbWFnZUVsZW1lbnQsIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcywgU1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSYsIGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYpIGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKaW5kZXggNmJmMmU2
N2U2M2YxLi42N2Y1YThiNTY4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUxpZ2h0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVt
ZW50LmNwcApAQCAtNjgsNyArNjgsNyBAQCBTVkdGRUxpZ2h0RWxlbWVudCogU1ZHRkVMaWdodEVs
ZW1lbnQ6OmZpbmRMaWdodEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCogc3ZnRWxlbQogICAgIHJl
dHVybiBudWxscHRyOwogfQogCi12b2lkIFNWR0ZFTGlnaHRFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRkVMaWdodEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjphemltdXRoQXR0cikgewogICAgICAg
ICBtX2F6aW11dGgtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZS50b0Zsb2F0KCkpOwpAQCAtMTIw
LDcgKzEyMCw3IEBAIHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
U1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVMaWdodEVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5oCmluZGV4IDJhZTVkOThjNWYxOC4uZDJiNTgzZTFi
OTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaApAQCAtNjUsNyArNjUs
NyBAQCBwcm90ZWN0ZWQ6CiBwcml2YXRlOgogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBT
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVMaWdodEVsZW1lbnQsIFNWR0VsZW1lbnQ+Owog
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcAppbmRleCA3M2U3MGIw
MjJhYjEuLjJhOTVjODE2NzkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudC5jcHAKQEAgLTQ4LDE0ICs0OCwxNCBAQCBSZWY8U1ZHRkVNZXJnZU5vZGVFbGVt
ZW50PiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAg
ICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdGRU1lcmdlTm9kZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKaW5kZXggYWEzY2Y5ZmQw
MTcyLi40MDIzZTNmNGJhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVF
bGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5
UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVNZXJnZU5vZGVFbGVtZW50
LCBTVkdFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
ICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFs
OwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lF
bGVtZW50LmNwcAppbmRleCA4MWQ2YjcxODE5ZGQuLmJhZmMyZWM4ZmY1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcApAQCAtNDksNyArNDksNyBA
QCBSZWY8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4gU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFTW9y
cGhvbG9neUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9
PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyKSB7CiAgICAgICAgIE1vcnBob2xvZ3lPcGVyYXRvclR5
cGUgcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPE1vcnBob2xvZ3lPcGVyYXRvclR5
cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTcxLDcgKzcxLDcgQEAgdm9pZCBTVkdGRU1vcnBo
b2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJv
b2wgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCmluZGV4IGFlM2I0ZjY3MTcyYi4u
MTJlMThiMzZkYjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVt
ZW50LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudCwg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJF
ZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCA2ODRj
OWNkZjIxMmMuLjMyYjUwOGI2NGQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFT2Zmc2V0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudC5jcHAKQEAgLTQ4LDcgKzQ4LDcgQEAgUmVmPFNWR0ZFT2Zmc2V0RWxlbWVudD4gU1ZH
RkVPZmZzZXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRU9mZnNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdG
RU9mZnNldEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpkeEF0dHIpIHsKICAgICAgICAgbV9keC0+c2V0
QmFzZVZhbEludGVybmFsKHZhbHVlLnRvRmxvYXQoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQg
U1ZHRkVPZmZzZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVs
ZW1lbnQuaAppbmRleCBlNDhkMTJkYTg3YmIuLmI5YmEwNTA3MjJjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogCiAg
ICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdG
RU9mZnNldEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAg
IGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCBhNzJmMTE3NzM4YWYuLjRkOTc4ZGZjZmE3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCBSZWY8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudD4gU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YQogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKQEAg
LTg0LDcgKzg0LDcgQEAgdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb24KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYgZWZmZWN0LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCmluZGV4IDhiMTFiNTk0NGNhOC4uMmVmM2QyNzBi
ZDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdF
bGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5
UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZv
aWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBz
ZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCmluZGV4
IGM4NDYxZmY0NmIwMi4uYmQwYmQ1MzI2ZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGls
ZUVsZW1lbnQuY3BwCkBAIC00NiwxNCArNDYsMTQgQEAgUmVmPFNWR0ZFVGlsZUVsZW1lbnQ+IFNW
R0ZFVGlsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVRpbGVFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZF
VGlsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJh
c2VWYWxJbnRlcm5hbCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVUaWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1l
bnQuaAppbmRleCAzYzc1ZGVjOTBjMWEuLjE2YWRlZTg4YTVjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVUaWxlRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2lu
ZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFVGlsZUVs
ZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lk
IHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikg
b3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxB
dG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJbnB1dHNOYW1lcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHsgQXRvbVN0cmluZyB7IGluMSgpIH0gfTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCmluZGV4IDZlZDU1YzhiODMzZS4uOWVjNmQzNzc4MmIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCkBA
IC01MSw3ICs1MSw3IEBAIFJlZjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50PiBTVkdGRVR1cmJ1bGVu
Y2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
LXZvaWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFVHVyYnVs
ZW5jZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikgewogICAgICAgICBUdXJidWxlbmNl
VHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8VHVyYnVsZW5jZVR5cGU+Ojpm
cm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBTVkdGRVR1cmJ1bGVuY2VF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZH
RkVUdXJidWxlbmNlRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVj
dCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCmluZGV4IDBhYjBhOWI1Yzg4Ny4uODQ1OWY4
ZWZiY2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgK
QEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3Ry
eSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50LCBTVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVj
dEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKaW5kZXggYmVk
NDMyNmMxZTNjLi40ZTA0MWFjNzljNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgUmVmPFNWR0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRl
ckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGaWx0ZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKLXZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZpbHRlckVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNW
R1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtODYsOCArODYsOCBAQCB2
b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdG
aWx0ZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggODIzNmFjNGYy
ZDU3Li4zNWVhNzk0YTkyNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApA
QCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGaWx0ZXJFbGVtZW50LCBTVkdFbGVtZW50LCBT
VkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmlu
YWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRleCAzNjQ4NWJkNDhlZWYuLjQyYTc2YTRmZDM0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMoY29uc3QKICAgICB9KTsKIH0KIAotdm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNW
R1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNjMsNyArNjMsNyBAQCB2
b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogT3B0
aW9uU2V0PEZpbHRlckVmZmVjdEdlb21ldHJ5OjpGbGFncz4gU1ZHRmlsdGVyUHJpbWl0aXZlU3Rh
bmRhcmRBdHRyaWJ1dGVzOjplZmZlY3RHZW9tZXRyeUZsYWdzKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaAppbmRleCA0OGQwNjQ1NmYwZGQuLjIzYzUxMjYzZDQ5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYs
IFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2Vk
KGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcmltaXRpdmVBdHRyaWJ1
dGVPbkNoaWxkQ2hhbmdlZChjb25zdCBFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAppbmRleCBkYjM5NTRjNGI4
ZTkuLjMxOTZlYTYxN2Y1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVu
dC5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgUmVmPFNWR0ZvbnRGYWNlRWxlbWVudD4gU1ZHRm9udEZh
Y2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdGb250RmFjZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsK
IH0KIAotdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGb250RmFj
ZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeyAgICAK
ICAgICBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQgPSBjc3NQcm9wZXJ0eUlkRm9yU1ZHQXR0cmli
dXRlTmFtZShuYW1lKTsKICAgICBpZiAocHJvcGVydHlJZCA+IDApIHsKQEAgLTk0LDcgKzk0LDcg
QEAgdm9pZCBTVkdGb250RmFjZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
LSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIFNWR0ZvbnRGYWNlRWxlbWVudDo6dW5p
dHNQZXJFbSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmgKaW5k
ZXggYWMxOTBmZWI1OTAyLi4xNDU3ZmUwNDZmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VFbGVtZW50LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICBTVkdGb250RmFj
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAgICAgflNWR0ZvbnRG
YWNlRWxlbWVudCgpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwog
CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCmluZGV4IDg5MDBmNjkxOTEzYy4uNTc5NzRmY2U2MWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmNwcApAQCAtNjYs
MTIgKzY2LDExIEBAIFJlZjxDU1NGb250RmFjZVNyY1Jlc291cmNlVmFsdWU+IFNWR0ZvbnRGYWNl
VXJpRWxlbWVudDo6Y3JlYXRlU3JjVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBDU1NGb250RmFj
ZVNyY1Jlc291cmNlVmFsdWU6OmNyZWF0ZShXVEZNb3ZlKGxvY2F0aW9uKSwgZm9ybWF0LmlzRW1w
dHkoKSA/ICJzdmciX3MgOiBmb3JtYXQuc3RyaW5nKCksIExvYWRlZEZyb21PcGFxdWVTb3VyY2U6
Ok5vKTsKIH0KIAotdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdGb250RmFjZVVyaUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogeworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUs
IHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjpocmVmQXR0ciB8fCBuYW1lID09IFhMaW5rTmFtZXM6OmhyZWZBdHRyKQogICAgICAg
ICBsb2FkRm9udCgpOwotICAgIGVsc2UKLSAgICAgICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKaW5kZXggYmJhNjY4MWE2YzcwLi42YTg1NmY3ZmZiZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKQEAgLTM4LDgg
KzM4LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNWR0ZvbnRGYWNlVXJpRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKLSAgICAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBD
aGlsZENoYW5nZSYpIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2Vy
dGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAKaW5kZXggZWU5OGMwYTY2MTBmLi43OWE3MWYwNDAwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBS
ZWY8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFyc2lu
Z0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC03MCw3ICs3MCw3IEBAIHZvaWQgU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0CiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VF
cnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsK
IH0KIAogdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
cmVpZ25PYmplY3RFbGVtZW50LmgKaW5kZXggNmIzNDUxODkwYzM1Li5lMDg0YzlmZWUyMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50LCBTVkdHcmFwaGljc0Vs
ZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKaW5kZXggZTg3N2RlMzE0NDE0Li41
NmQ3NmJmYjgzZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3Bw
CkBAIC0xMzMsMTYgKzEzMywxNSBAQCBib29sIFNWR0dlb21ldHJ5RWxlbWVudDo6aXNQb2ludElu
U3Ryb2tlKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LXZvaWQgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR2VvbWV0cnlFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdH
cmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OnBhdGhMZW5ndGhBdHRyKSB7CiAgICAgICAgIG1fcGF0aExlbmd0aC0+c2V0QmFzZVZhbEludGVy
bmFsKHZhbHVlLnRvRmxvYXQoKSk7CiAgICAgICAgIGlmIChtX3BhdGhMZW5ndGgtPmJhc2VWYWwo
KSA8IDApCiAgICAgICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBv
cnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgcGF0aCBhdHRyaWJ1dGUgPHBhdGhMZW5ndGg+
IGlzIG5vdCBhbGxvd2VkIl9zKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIFNWR0dy
YXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNW
R0dlb21ldHJ5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaAppbmRleCA2
OTFiMTkwMjAzZWEuLjdmNzU5MTU1OGRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRy
eUVsZW1lbnQuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZH
R2VvbWV0cnlFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJl
ZjxTVkdQcm9wZXJ0eVJlZ2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R2x5cGhSZWZFbGVtZW50LmNwcAppbmRleCA2YjU0M2MxZWFmZWQuLjU0ZTNhYTRhMjY3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgc3RhdGljIGZsb2F0IHBhcnNlRmxvYXQoY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCiAgICAg
cmV0dXJuIHBhcnNlTnVtYmVyKHZhbHVlKS52YWx1ZV9vcigwKTsKIH0KIAotdm9pZCBTVkdHbHlw
aFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHbHlwaFJlZkVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIC8vIEZJWE1FOiBJcyB0aGUg
ZXJyb3IgaGFuZGxpbmcgaW4gcGFyc2VGbG9hdCBjb3JyZWN0IGZvciB0aGVzZSBhdHRyaWJ1dGVz
PwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp4QXR0cikKQEAgLTczLDcgKzczLDcgQEAgdm9p
ZCBTVkdHbHlwaFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgbV9keSA9IHBhcnNlRmxvYXQodmFsdWUpOwog
ICAgIGVsc2UgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKLSAgICAgICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgICAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAppbmRleCAwZjI3ZjZiYWIxZTIuLjg2YWM1MmMx
MDcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBoUmVmRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaApAQCAtNDYsNyAr
NDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdHbHlwaFJlZkVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJl
ZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIGZsb2F0IG1feCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dy
YWRpZW50RWxlbWVudC5jcHAKaW5kZXggNWYzNjI5MmMwNzM3Li5lZjY0NWZiOGQ4ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IFNWR0dyYWRpZW50RWxlbWVudDo6U1ZHR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50JiBkCiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHR3JhZGllbnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
Z3JhZGllbnRVbml0c0F0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJv
cGVydHlUcmFpdHM8U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZT46OmZyb21TdHJpbmcodmFsdWUp
OwpAQCAtNzAsOCArNzAsOCBAQCB2b2lkIFNWR0dyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0dyYWRpZW50RWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaAppbmRleCA5NjNmNjA3NmRkMjAuLjIzMjE1
OThlMTQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaApAQCAtOTQs
NyArOTQsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3JhZGllbnRFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJlZ2lz
dHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsK
ICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBo
aWNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNw
cAppbmRleCA2YzEyNDZlOWI4M2YuLjEyMGI4OTVjMTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKQEAgLTEyOSwxNSArMTI5LDE0IEBAIEFmZmluZVRyYW5z
Zm9ybSogU1ZHR3JhcGhpY3NFbGVtZW50OjplbnN1cmVTdXBwbGVtZW50YWxUcmFuc2Zvcm0oKQog
ICAgIHJldHVybiBtX3N1cHBsZW1lbnRhbFRyYW5zZm9ybS5nZXQoKTsKIH0KIAotdm9pZCBTVkdH
cmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR1Rlc3RzOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAg
ICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpIHsKICAgICAgICAgbV90cmFu
c2Zvcm0tPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIFNWR1Rl
c3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHR3JhcGhpY3NF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5oCmluZGV4IGYzZmJhNjM2MjYx
ZC4uMjc5MmE4ZTE5OTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhp
Y3NFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5o
CkBAIC03Myw3ICs3Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTVkdHcmFwaGljc0Vs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgVW5pcXVlUmVmPFNWR1Byb3Bl
cnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92
ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCBlOTNjODFlN2EzZTEuLjdk
YzE0N2UyMzc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTg5
LDggKzg5LDEwIEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50OjpyZW5kZXJpbmdUYWludHNPcmlnaW4o
KSBjb25zdAogICAgIHJldHVybiBpbWFnZSAmJiBpbWFnZS0+cmVuZGVyaW5nVGFpbnRzT3JpZ2lu
KCk7CiB9CiAKLXZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHSW1hZ2VF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBT
VkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFw
aGljc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwcmVz
ZXJ2ZUFzcGVjdFJhdGlvQXR0cikgewogICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8tPnNl
dEJhc2VWYWxJbnRlcm5hbChTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgeyB2YWx1ZSB9KTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMTA4LDkgKzExMCw2IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nCiAgICAgICAgIG1faGVpZ2h0LT5zZXRCYXNlVmFsSW50ZXJuYWwoU1ZHTGVuZ3RoVmFsdWU6
OmNvbnN0cnVjdChTVkdMZW5ndGhNb2RlOjpIZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9yLCBTVkdM
ZW5ndGhOZWdhdGl2ZVZhbHVlc01vZGU6OkZvcmJpZCkpOwogCiAgICAgcmVwb3J0QXR0cmlidXRl
UGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKLQotICAgIFNWR0dyYXBoaWNz
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIFNWR1VSSVJlZmVyZW5j
ZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0ltYWdlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAppbmRleCBhMmFlZmZmNDdkNzIuLmQ0NzBmOWZk
MjI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaApAQCAtNTMsNyArNTMsNyBA
QCBwcml2YXRlOgogICAgIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHSW1hZ2VFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR1VS
SVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsK
IAogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmNwcAppbmRleCA4YmMzZTVjZGJhODIuLjljYjljM2U5Mjk4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxTVkdM
aW5lRWxlbWVudD4gU1ZHTGluZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGluZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdMaW5lRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0xpbmVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAg
LTY2LDcgKzY2LDcgQEAgdm9pZCBTVkdMaW5lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJp
YnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9t
ZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRy
eUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0xpbmVFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuaAppbmRleCA2NmRlODViYTNlN2QuLmI0ZDYxZDQ0YzU5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
TGluZUVsZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggMTVmZDJkODhhNjY5Li5mZDk0ZGY5ZDBi
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
Y3BwCkBAIC02MCw3ICs2MCw3IEBAIFJlZjxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ+IFNWR0xp
bmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLXZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAK
QEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKIAogICAgIHJlcG9ydEF0
dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdH
cmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFk
aWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR0xpbmVhckdyYWRpZW50RWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCBl
MzFiZTRmYWIzNzUuLmQ0OGM2MTZkYzkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogCiAgICAg
dXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQsIFNWR0dyYWRpZW50RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5k
ZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVu
ZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1l
bnQuY3BwCmluZGV4IDFkNGM4NjQ3OWRkNi4uYmIwODkxN2QyNGEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcApAQCAtOTgsMTAgKzk4LDEwIEBAIHZvaWQgU1ZHTVBhdGhF
bGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250
YWluZXJOb2RlCiAgICAgICAgIGNsZWFyUmVzb3VyY2VSZWZlcmVuY2VzKCk7CiB9CiAKLXZvaWQg
U1ZHTVBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHTVBhdGhFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBTVkdFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZv
aWQgU1ZHTVBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5oCmluZGV4IGM3M2Yy
ZTE4N2MxMi4uZWFlMjgyNTFlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TVBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5o
CkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5
ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR01QYXRoRWxlbWVudCwgU1ZHRWxlbWVudCwg
U1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5h
bDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZp
bmFsOwogCiAgICAgdm9pZCBidWlsZFBlbmRpbmdSZXNvdXJjZSgpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4IDYyNmM1NjAxZmFjMS4uZmY1OTU5Yjcx
ZjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdNYXJrZXJFbGVtZW50Ojp2aWV3Qm94VG9WaWV3VHJh
bnNmb3JtKGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQKICAgICByZXR1cm4gU1ZHRml0VG9WaWV3Qm94
Ojp2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKHZpZXdCb3goKSwgcHJlc2VydmVBc3BlY3RSYXRpbygp
LCB2aWV3V2lkdGgsIHZpZXdIZWlnaHQpOwogfQogCi12b2lkIFNWR01hcmtlckVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlKQordm9pZCBTVkdNYXJrZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6bWFya2VyVW5pdHNB
dHRyKSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNW
R01hcmtlclVuaXRzVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtODgsNyArODgsNyBAQCB2
b2lkIFNWR01hcmtlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggNDYwNWRjYTk5YjYyLi40MDM5OGJiZTRmZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtNzQsNyArNzQsNyBAQCBw
cml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdNYXJrZXJFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3g+Owog
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKaW5kZXggOWQ3ZTI3MGIxMWExLi4zYjNlYTUw
ZGNmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcApAQCAtNjQsNyArNjQs
NyBAQCBSZWY8U1ZHTWFza0VsZW1lbnQ+IFNWR01hc2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R01hc2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHTWFza0VsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBTVkdNYXNrRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1hc2tVbml0
c0F0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFpdHM8
U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtOTIsNyAr
OTIsNyBAQCB2b2lkIFNWR01hc2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFy
c2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsK
ICAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4IGJmY2M5YWQ3ZDNmNC4uMzlkZDc1ODZmOTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwcml2YXRl
OgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdNYXNrRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHVGVzdHM+OwogCi0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKaW5kZXggNzlmYWY5ODlkYzU1Li40OWIwZDQxZWZjYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmNwcApAQCAtNTMsMTUgKzUzLDEzIEBAIFJlZjxTVkdQYXRoRWxlbWVudD4g
U1ZHUGF0aEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotdm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1Bh
dGhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAg
ICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlmIChuYW1lID09IFNWR05h
bWVzOjpkQXR0cikgewogICAgICAgICBpZiAoIW1fcGF0aFNlZ0xpc3QtPmJhc2VWYWwoKS0+cGFy
c2UodmFsdWUpKQogICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCku
cmVwb3J0RXJyb3IoIlByb2JsZW0gcGFyc2luZyBkPVwiIiArIHZhbHVlICsgIlwiIik7Ci0gICAg
ICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmgKaW5kZXggMjI0MTZiMjVmNDQ2Li4yMmExM2Q2ZDQ0YmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5oCkBAIC0xMDgsOCArMTA4LDggQEAgcHJpdmF0ZToKICAgICBT
VkdQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIHVz
aW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHUGF0aEVs
ZW1lbnQsIFNWR0dlb21ldHJ5RWxlbWVudD47Ci0gICAgCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworCisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVy
bkVsZW1lbnQuY3BwCmluZGV4IDViZjA1MGMyZDU5My4uZmVkZWRjY2M5Yzc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgUmVmPFNW
R1BhdHRlcm5FbGVtZW50PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEQKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXR0ZXJuRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR1BhdHRlcm5FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwYXR0ZXJuVW5p
dHNBdHRyKSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRz
PFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTEwMiw4
ICsxMDIsOCBAQCB2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogCiAgICAgcmVwb3J0QXR0cmlidXRl
UGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAg
ICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR0ZpdFRvVmll
d0JveDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0dGVybkVsZW1lbnQuaAppbmRleCBjY2ZkNmExNzk2NzcuLmRmZWFjMDQ4NzNjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHUGF0dGVybkVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveCwgU1ZHVGVz
dHMsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCBiNDU4OWFiZWQy
NTguLjI5MTJlYTNjOWI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBA
IC00Myw3ICs0Myw3IEBAIFNWR1BvbHlFbGVtZW50OjpTVkdQb2x5RWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgfSk7CiB9CiAKLXZv
aWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdQb2x5RWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZH
TmFtZXM6OnBvaW50c0F0dHIpIHsKICAgICAgICAgaWYgKCFtX3BvaW50cy0+YmFzZVZhbCgpLT5w
YXJzZSh2YWx1ZSkpCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BvbHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuaAppbmRl
eCAwMjRiYTVkYTBkYzguLjhkYjdlNmMwNGJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVt
ZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1BvbHlFbGVtZW50
LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOyAKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAppbmRleCBlNmM4ZjZmYWE3MTIuLjgzM2Q5MTE4
NTRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUmVmPFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudD4gU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsK
IApAQCAtODEsNyArODEsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQQogCiAgICAgcmVwb3J0
QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNW
R0dyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dy
YWRpZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4
IGU2MGY0YjA1ZjNhNS4uODhiYjQ2MDZhODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHByaXZhdGU6CiAKICAg
ICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudCwgU1ZHR3JhZGllbnRFbGVtZW50PjsKIAotICAgIHZvaWQgcGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyUHRyPFJl
bmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBS
ZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1l
bnQuY3BwCmluZGV4IDQ0NmVhZGFlYzUzYS4uZWJhM2FhZjYzMjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmPFNWR1JlY3RFbGVtZW50
PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0RWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIFNWR1JlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
UmVjdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewog
ICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNzMsNyArNzMs
NyBAQCB2b2lkIFNWR1JlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2lu
Z0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dlb21ldHJ5RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHUmVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxl
bWVudC5oCmluZGV4IDQ4NjM0ZmY2MmE0YS4uZWY1ZWIzZGIxMzAyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdEVsZW1lbnQuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcg
UHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdSZWN0RWxlbWVu
dCwgU1ZHR2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
VGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCmluZGV4
IDJlZWVhMDE3OTlmZS4uZTk2MWZlZGE4OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1l
bnQuY3BwCkBAIC0xNjMsOCArMTYzLDEwIEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6dXBkYXRlQ3Vy
cmVudFRyYW5zbGF0ZSgpCiAgICAgICAgIGRvY3VtZW50KCkucmVuZGVyVmlldygpLT5yZXBhaW50
KCk7CiB9CiAKLXZvaWQgU1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1NWR0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR0dy
YXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAoIW5lYXJlc3RWaWV3cG9ydEVs
ZW1lbnQoKSAmJiBpc0Nvbm5lY3RlZCgpKSB7CiAgICAgICAgIC8vIEZvciB0aGVzZSBldmVudHMs
IHRoZSBvdXRlcm1vc3QgPHN2Zz4gZWxlbWVudCB3b3JrcyBsaWtlIGEgPGJvZHk+IGVsZW1lbnQg
ZG9lcywKICAgICAgICAgLy8gc2V0dGluZyBjZXJ0YWluIGV2ZW50IGhhbmRsZXJzIGRpcmVjdGx5
IG9uIHRoZSB3aW5kb3cgb2JqZWN0LgpAQCAtMjIwLDcgKzIyMiw2IEBAIHZvaWQgU1ZHU1ZHRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBu
YW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKICAgICBTVkdab29tQW5kUGFuOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAppbmRleCAyODM0ZWI5NmNjNzYuLmZjM2NlMGVi
MDRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCkBAIC0xMjQsOCArMTI0LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIH5TVkdTVkdFbGVtZW50KCk7CiAKICAgICB1c2luZyBQcm9w
ZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1NWR0VsZW1lbnQsIFNW
R0dyYXBoaWNzRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94PjsKLSAgICAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2VsZkhhc1Jl
bGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDIw
Y2JjOGE4MzFjZS4uOTA5OTg3NGU4YTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU2NyaXB0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCkBAIC00NCwxMCArNDQsMTAgQEAgUmVmPFNWR1NjcmlwdEVsZW1lbnQ+IFNWR1Nj
cmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
LCBpbnNlcnRlZEJ5UGFyc2VyLCBmYWxzZSkpOwogfQogCi12b2lkIFNWR1NjcmlwdEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBTVkdTY3JpcHRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHU2NyaXB0RWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCmluZGV4IDk0NGNlMGRkMjUyZS4uMjky
OTkxNjEzMmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKQEAgLTQxLDcg
KzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHU2NyaXB0RWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHVVJJUmVm
ZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAg
ICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5jcHAKaW5kZXggN2ZmOWI5NDM0NmU1Li5kNTI2ZWVjNTc1M2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNDksNyArNDksNyBAQCBSZWY8U1ZHU3RvcEVsZW1l
bnQ+IFNWR1N0b3BFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0b3BFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHU3RvcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBT
VkdTdG9wRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om9mZnNldEF0dHIpIHsKICAgICAgICAgaWYgKHZh
bHVlLmVuZHNXaXRoKCclJykpCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU1ZHU3RvcEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZv
aWQgU1ZHU3RvcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5oCmluZGV4IGU0YmE5NjA0
MDZhZC4uNDRiNzliMDEzNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Rv
cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaApAQCAt
NDAsNyArNDAsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTdG9wRWxlbWVudCwgU1ZHRWxlbWVudD47CiAKLSAg
ICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgaXNHcmFk
aWVudFN0b3AoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDFiNDkwMTkwYzYxOS4uYmNjMmY5OGYxNTRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcApAQCAtOTEsNyArOTEsNyBAQCBTdHJp
bmcgU1ZHU3R5bGVFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZVdp
dGhvdXRTeW5jaHJvbml6YXRpb24oU1ZHTmFtZXM6OnRpdGxlQXR0cik7CiB9CiAKLXZvaWQgU1ZH
U3R5bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU3R5bGVFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6dGl0bGVBdHRyKSB7CiAgICAgICAgIGlmIChzaGVldCgpICYmICFpc0luU2hhZG93VHJlZSgp
KQpAQCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgU1ZHU3R5bGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHU3R5bGVFbGVt
ZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1N0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVu
dC5oCmluZGV4IGRkZWJkYWNmMzQ1ZS4uMTRmZTczZGJjN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0eWxlRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
U1ZHU3R5bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
ICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNl
cnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFu
Y2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTeW1ib2xFbGVtZW50LmNwcAppbmRleCA3YTkzZGY1OGMwYjUuLjEzYjkwMDg5N2FhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcApAQCAtNDQsOSArNDQsOSBAQCBS
ZWY8U1ZHU3ltYm9sRWxlbWVudD4gU1ZHU3ltYm9sRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvYwogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N5bWJv
bEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdTeW1ib2xFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU3ltYm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsK
ICAgICBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKaW5kZXggZGIwOWU1MTE1NWJhLi45MGFj
MmEwOGQyYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaApAQCAtMzYsNyAr
MzYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdTeW1ib2xFbGVtZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNW
R0ZpdFRvVmlld0JveD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3Zl
cnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJl
cihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggNmIzZmEzMmJmOTA0Li41ZTUwNWMxMjlh
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcApAQCAtMTcyLDIyICsxNzIs
MjEgQEAgdm9pZCBTVkdUUmVmRWxlbWVudDo6ZGV0YWNoVGFyZ2V0KCkKICAgICAgICAgZG9jdW1l
bnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkuYWRkUGVuZGluZ1Jlc291cmNlKHRhcmdldC5pZGVu
dGlmaWVyLCAqdGhpcyk7CiB9CiAKLXZvaWQgU1ZHVFJlZkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdUUmVmRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7Ci0gICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwg
b2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lk
IFNWR1RSZWZFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogeworICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0
ZUNoYW5nZWQoYXR0ck5hbWUpOworCiAgICAgaWYgKFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7CiAgICAgICAgIGJ1aWxkUGVuZGluZ1Jlc291cmNlKCk7CiAgICAgICAgIHVw
ZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwotICAgICAgICByZXR1cm47CiAgICAg
fQotCi0gICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChh
dHRyTmFtZSk7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5oCmluZGV4IGU2NzY5ODZj
NTJiYy4uNDYwNGZkMDE4NjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJl
ZkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdUUmVmRWxlbWVudCwgU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudCwgU1ZHVVJJUmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVu
dC5jcHAKaW5kZXggOWMyYWE4ODhjYWMwLi5mNDc2MWE0NDljNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC0xNjEsNyArMTYxLDcgQEAgdm9p
ZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmkKICAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmNvbGxlY3RQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZv
aWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVGV4dENvbnRlbnRF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBT
VkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTE3NCw3ICsxNzQsNyBA
QCB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbQogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vy
cm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5oCmluZGV4IGM3NDQ1ODY3NThkMS4uZTIxNTQwYmQ3YjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCkBAIC05Niw3
ICs5Niw3IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKaW5kZXgg
NDA5ZDdlOWM3YTk2Li41NWU5NmE4MGQzN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50
OjpjbGVhclJlc291cmNlUmVmZXJlbmNlcygpCiAgICAgcmVtb3ZlRWxlbWVudFJlZmVyZW5jZSgp
OwogfQogCi12b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1RleHRQ
YXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC04MSw4ICs4MSw4
IEBAIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5n
RXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHVGV4dENvbnRlbnRFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmgKaW5kZXggMzU4YzkwZjkzZGUxLi42MmUzMTIzYTZkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBw
cml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeTxTVkdUZXh0UGF0aEVsZW1lbnQsIFNWR1RleHRDb250ZW50RWxlbWVudCwgU1ZHVVJJ
UmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogCiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApp
bmRleCAwOTY1ZTI4OGJjODkuLjI3MDUzZDFlNjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApAQCAtNTEsOCArNTEsMTAgQEAgU1ZH
VGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW0KICAgICB9KTsKIH0KIAotdm9pZCBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHVGV4dENvbnRl
bnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp4QXR0
cikgewogICAgICAgICBtX3gtPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUpOwogICAgICAgICByZXR1
cm47CkBAIC03Nyw4ICs3OSw2IEBAIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QKICAgICAgICAgbV9y
b3RhdGUtPmJhc2VWYWwoKS0+cGFyc2UodmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQot
Ci0gICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiB9CiAKIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIHN0eWxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgKaW5kZXggNDlkOTE2Y2Ew
MjI4Li45Njc5MWI3OTQzMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
UG9zaXRpb25pbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmLCBVbmlxdWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkZTQ2NGY0YzhlODcuLjlhMjAzMTE0NGUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtODAsNyArODAsNyBAQCBTVkdV
c2VFbGVtZW50Ojp+U1ZHVXNlRWxlbWVudCgpCiAgICAgICAgIG1fZXh0ZXJuYWxEb2N1bWVudC0+
cmVtb3ZlQ2xpZW50KCp0aGlzKTsKIH0KIAotdm9pZCBTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
K3ZvaWQgU1ZHVXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC05
NSw4ICs5NSw4IEBAIHZvaWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0
ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZlcmVu
Y2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBTVkdV
c2VFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmgKaW5kZXggN2VjMTMyOTJhNDZmLi5iYTExZGFiMWYyZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdVc2VFbGVt
ZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxS
ZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3Qg
UmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmNwcAppbmRleCA5OGYwYjI2ZmM4N2IuLmRhZDUzYjc5NWFhYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuY3BwCkBAIC00NSwxMSArNDUsMTEgQEAgUmVmPFNWR1ZpZXdFbGVt
ZW50PiBTVkdWaWV3RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdWaWV3RWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
U1ZHVmlld0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdG
aXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdab29tQW5k
UGFuOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHVmlld0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVmlld0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5o
CmluZGV4IGEwNDcxYjI0ZTE1MC4uYTJjODM4YzEyZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmll
d0VsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdWaWV3RWxlbWVudCwgU1ZH
RWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRl
clN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggYmY0ZWJmMGU4ODI1Li40Y2E3OWU1
Y2QwYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1l
bnQuY3BwCkBAIC00NzUsOCArNDc1LDEwIEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmdldCgpLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CiB9CiAKLXZvaWQgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdTTUlMRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSBTVkdO
YW1lczo6YmVnaW5BdHRyKSB7CiAgICAgICAgIGlmICghbV9jb25kaXRpb25zLmlzRW1wdHkoKSkg
ewogICAgICAgICAgICAgZGlzY29ubmVjdENvbmRpdGlvbnMoKTsKQEAgLTQ5OSw4ICs1MDEsNiBA
QCB2b2lkIFNWR1NNSUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3Rl
bmVyKGV2ZW50TmFtZXMoKS5lbmRFdmVudEV2ZW50LCBuYW1lLCB2YWx1ZSk7CiAgICAgZWxzZSBp
ZiAobmFtZSA9PSBTVkdOYW1lczo6b25iZWdpbkF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJlZ2luRXZlbnRFdmVudCwgbmFtZSwgdmFsdWUpOwot
ICAgIGVsc2UKLSAgICAgICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OwogfQogCiB2b2lkIFNWR1NNSUxFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2Fu
aW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9T
VkdTTUlMRWxlbWVudC5oCmluZGV4IGU2N2Y5NmE5ZTBlZS4uMGVlMDcyODNhMTNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKICAgICBTVkdTTUlMRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQmLCBVbmlxdWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAgICAgdmlydHVh
bCB+U1ZHU01JTEVsZW1lbnQoKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVk
SW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBvdmVycmlkZTsKICAg
ICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBv
dmVycmlkZTsK
</data>
<flag name="commit-queue"
          id="493696"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465842</attachid>
            <date>2023-04-10 20:55:47 -0700</date>
            <delta_ts>2023-04-11 09:01:35 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>drop_parseAttribute_func5.patch</filename>
            <type>text/plain</type>
            <size>226579</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1M
TW9kZWxFbGVtZW50LmNwcAppbmRleCAxYzgzYjU4ZTIyMGQuLjUwODQxM2YyMGFjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L0hUTUxNb2RlbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9k
ZWxFbGVtZW50LmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIGJvb2wgSFRNTE1vZGVsRWxlbWVudDo6
aXNJbnRlcmFjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc0F0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24oSFRNTE5hbWVzOjppbnRlcmFjdGl2ZUF0dHIpOwogfQogCi12b2lkIEhUTUxN
b2RlbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTW9kZWxFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBzcmNBdHRy
KQogICAgICAgICBzb3VyY2VzQ2hhbmdlZCgpOwpAQCAtMzg4LDcgKzM4OCw3IEBAIHZvaWQgSFRN
TE1vZGVsRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21vZGVsUGxheWVyKQogICAgICAgICAgICAg
bV9tb2RlbFBsYXllci0+c2V0SW50ZXJhY3Rpb25FbmFibGVkKGlzSW50ZXJhY3RpdmUoKSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTW9k
ZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5o
CmluZGV4IGY0OGMzY2NlYWQ5NS4uNzAzNGIxODRiZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvSFRNTE1vZGVsRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9IVE1MTW9kZWxFbGVtZW50LmgKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIC8vIERPTSBvdmVycmlkZXMuCiAgICAgdm9pZCBk
aWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdE
b2N1bWVudCkgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUm
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICAvLyBTdHlsZWRFbGVtZW50CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBiNGVmN2VmN2U3MjguLjc3NjY3ZGEyOGYyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcApAQCAtMjA5NSw4ICsyMDk1LDYgQEAgdm9pZCBFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFYKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHBhcnNlQXR0cmlidXRlKG5hbWUsIG5ld1ZhbHVlKTsKLQog
ICAgIGRvY3VtZW50KCkuaW5jRE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChVTkxJS0VMWShp
c0RlZmluZWRDdXN0b21FbGVtZW50KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNWViYjg2Zjk5
MjgwLi4zODg3OWU4NTk3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMzA2LDkgKzMwNiw4IEBA
IHB1YmxpYzoKICAgICAgICAgTW9kaWZpZWRCeUNsb25pbmcKICAgICB9OwogCi0gICAgLy8gVGhl
c2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgd2hlbmV2ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBj
aGFuZ2VkIG9yIHJlbW92ZWQuCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbmV2
ZXIgYW4gYXR0cmlidXRlIGlzIGFkZGVkLCBjaGFuZ2VkIG9yIHJlbW92ZWQuCiAgICAgdmlydHVh
bCB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uID0gTW9kaWZpZWREaXJlY3RseSk7Ci0gICAgdmlydHVhbCB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgeyB9
CiAKICAgICAvLyBPbmx5IGNhbGxlZCBieSB0aGUgcGFyc2VyIGltbWVkaWF0ZWx5IGFmdGVyIGVs
ZW1lbnQgY29uc3RydWN0aW9uLgogICAgIHZvaWQgcGFyc2VyU2V0QXR0cmlidXRlcyhTcGFuPGNv
bnN0IEF0dHJpYnV0ZT4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCmluZGV4IGQ4
ODY5MDZjZDAxMS4uZTAzZWE2ZDI1ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC05NSw2ICs5NSw3IEBAIE11dGFibGVTdHlsZVByb3BlcnRpZXMmIFN0eWxlZEVsZW1l
bnQ6OmVuc3VyZU11dGFibGVJbmxpbmVTdHlsZSgpCiAKIHZvaWQgU3R5bGVkRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiByZWFzb24pCiB7CisgICAgRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHJlYXNvbik7CiAgICAgaWYgKG9sZFZhbHVlICE9IG5ld1Zh
bHVlKSB7CiAgICAgICAgIGlmIChuYW1lID09IHN0eWxlQXR0cikKICAgICAgICAgICAgIHN0eWxl
QXR0cmlidXRlQ2hhbmdlZChuZXdWYWx1ZSwgcmVhc29uKTsKQEAgLTEwMyw4ICsxMDQsNiBAQCB2
b2lkIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIH0KICAgICB9Ci0KLSAgICBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29uKTsKIH0KIAogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uKiBTdHlsZWRFbGVtZW50OjppbmxpbmVTdHlsZUNTU09NV3JhcHBlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDBlNGU0ZDhlYTI4ZC4uOGY3
MGUzMmMyN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMjM0LDggKzIzNCwxMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRBY3RpdmUoYm9v
bCBkb3duLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aQogICAgIEhUTUxFbGVt
ZW50OjpzZXRBY3RpdmUoZG93biwgaW52YWxpZGF0aW9uU2NvcGUpOwogfQogCi12b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IGhyZWZBdHRyKSB7CiAgICAgICAgIGJvb2wgd2Fz
TGluayA9IGlzTGluaygpOwogICAgICAgICBzZXRJc0xpbmsoIXZhbHVlLmlzTnVsbCgpICYmICFz
aG91bGRQcm9oaWJpdExpbmtzKHRoaXMpKTsKQEAgLTI0OCw4ICsyNTAsNiBAQCB2b2lkIEhUTUxB
bmNob3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaQogICAgICAgICAgICAgICAgICAgICBkb2N1bWVudCgpLmZyYW1lKCktPmxv
YWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGRvY3VtZW50KCkuY29tcGxldGVVUkwocGFyc2Vk
VVJMKS5ob3N0KCkudG9TdHJpbmcoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gbmFtZUF0dHIgfHwgbmFtZSA9PSB0aXRsZUF0dHIpIHsKLSAgICAg
ICAgLy8gRG8gbm90aGluZy4KICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcmVsQXR0cikgewogICAg
ICAgICAvLyBVcGRhdGUgSFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBpZiBtb3JlIHJlbCBh
dHRyaWJ1dGVzIHZhbHVlcyBhcmUgc3VwcG9ydGVkLgogICAgICAgICBzdGF0aWMgTWFpblRocmVh
ZE5ldmVyRGVzdHJveWVkPGNvbnN0IEF0b21TdHJpbmc+IG5vUmVmZXJyZXIoIm5vcmVmZXJyZXIi
X3MpOwpAQCAtMjY1LDggKzI2NSw2IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAgICAgICAg
IGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1
dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIGJvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCmluZGV4IDUxMjRmMWIxMDI1ZC4u
MmZjZDZlODhiYTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBA
IC04Myw3ICs4Myw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50
LmNwcAppbmRleCA3NTUzOGQ1YTJmM2UuLjUyMWE5NThjNDk1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFyZWFFbGVtZW50LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8SFRNTEFyZWFFbGVt
ZW50PiBIVE1MQXJlYUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxBcmVhRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gc2hhcGVBdHRyKSB7CiAgICAgICAgIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgImRlZmF1bHQiX3MpKQpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEhUTUxBcmVhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhbHRBdHRy
KSB7CiAgICAgICAgIC8vIERvIG5vdGhpbmcuCiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxBbmNo
b3JFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQXJlYUVsZW1lbnQ6OmludmFs
aWRhdGVDYWNoZWRSZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKaW5k
ZXggMDMyYWFiN2YxMGMyLi43YTNjNTFlZTc4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXJl
YUVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEhUTUxB
cmVhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAgIHZvaWQg
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBm
aW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRm9jdXMoKSBj
b25zdCBmaW5hbDsKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgaXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5jcHAKaW5kZXggYWQzYjM3
NDIyZjk5Li5lOWQxZTQ4ZjFiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEF0dGFjaG1lbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRh
Y2htZW50RWxlbWVudC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8SFRNTEltYWdlRWxl
bWVudD4gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjplbmNsb3NpbmdJbWFnZUVsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgSFRNTEF0dGFjaG1lbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBhY3Rpb25BdHRyIHx8IG5hbWUg
PT0gc3VidGl0bGVBdHRyKCkgfHwgbmFtZSA9PSB0aXRsZUF0dHIgfHwgbmFtZSA9PSB0eXBlQXR0
cikgewogICAgICAgICBpZiAobV9pbm5lckxlZ2FjeUF0dGFjaG1lbnQpCkBAIC00NjUsNyArNDY1
LDcgQEAgdm9pZCBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KICAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmlu
ZygpOwogICAgIH0KIAotICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogCiAgICAgaWYgKG5hbWUgPT0gYWN0
aW9uQXR0cikgewogICAgICAgICBpZiAobV9hY3Rpb25UZXh0RWxlbWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBdHRhY2htZW50RWxlbWVudC5oCmluZGV4IGU3NmQ5OTNiN2VmMS4uMGQw
Y2Q3ZTg0NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBdHRhY2htZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dGFjaG1lbnRFbGVtZW50
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgfQogICAgIGJvb2wg
Y2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihjb25zdCBO
b2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
YXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5jcHAK
aW5kZXggODA5YjZiMDNlNDNkLi42YzliNjM4YzNiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKQEAgLTQ3LDEyICs0NywxMiBAQCBSZWY8SFRNTEJhc2VFbGVtZW50
PiBIVE1MQmFzZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxCYXNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwogfQogCi12b2lkIEhUTUxCYXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhU
TUxCYXNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gaHJlZkF0dHIgfHwgbmFtZSA9PSB0YXJnZXRBdHRyKQogICAgICAg
ICBkb2N1bWVudCgpLnByb2Nlc3NCYXNlRWxlbWVudCgpOwogICAgIGVsc2UKLSAgICAgICAgSFRN
TEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBI
VE1MQmFzZUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5zZXJ0
aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQmFzZUVsZW1lbnQuaAppbmRleCA1OTlhMmI5M2FmNGEuLjliNDM1YThlN2MwZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCYXNlRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBBdG9tU3RyaW5nIHRhcmdldCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZp
bmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVz
dWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBm
aW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5l
ck5vZGUmKSBmaW5hbDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxC
b2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5RWxlbWVudC5jcHAK
aW5kZXggOGZkM2VjMGI2ZWIzLi5hNmQ3OGVhZjc2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCb2R5RWxlbWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBjb25zdCBBdG9tU3RyaW5nJiBI
VE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50SGFuZGxlckF0dHJpYnV0ZShj
b25zdAogICAgIHJldHVybiBldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUoYXR0cmli
dXRlTmFtZSwgbWFwKTsKIH0KIAotdm9pZCBIVE1MQm9keUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBIVE1MQm9keUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KQogewogICAgIGlmIChuYW1lID09IHZsaW5rQXR0ciB8fCBuYW1lID09IGFsaW5rQXR0ciB8fCBu
YW1lID09IGxpbmtBdHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkQ29sb3IgPSBwYXJzZUxlZ2Fj
eUNvbG9yVmFsdWUodmFsdWUpOwpAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgSFRNTEJvZHlFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgSFRNTEJvZHlFbGVtZW50OjppbnNl
cnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlvblR5cGUsIENvbnRhaW5lck5v
ZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50
LmgKaW5kZXggMzVmMTEzNmY3YjlkLi45ZWI5MGJlNDg3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuaApAQCAtMzksNyArMzksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IEhUTUxCb2R5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRh
dGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVz
JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5k
ZXggMzcxNTI1OWM4ZTU1Li43MDIwZDBjODgxOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBIVE1MQnV0dG9uRWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxCdXR0b25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTEJ1dHRvbkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHR5cGVBdHRyKSB7CiAgICAgICAg
IFR5cGUgb2xkVHlwZSA9IG1fdHlwZTsKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIEhUTUxCdXR0
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgICAgICAgICAgICAgIGZvcm0oKS0+cmVzZXREZWZhdWx0QnV0dG9uKCk7
CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggNDY4OTk3MjE4MTEyLi42NzY4OWZhNDY5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogICAg
IGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IGYzODZkMWVkNjJmOC4uNmQ2MzE4NTBlZWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtMTY3LDExICsxNjcs
MTEgQEAgdm9pZCBIVE1MQ2FudmFzRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmEKICAgICAgICAgSFRNTEVsZW1lbnQ6OmNvbGxl
Y3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9
CiAKLXZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MQ2FudmFzRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gd2lkdGhBdHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikKICAgICAgICAgcmVzZXQo
KTsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IEhU
TUxDYW52YXNFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJiBpbnNlcnRpb25Qb3NpdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCBhNDA2M2VlODgyYmUuLmU3NTViMDhl
NTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuaApAQCAtMTU3LDcg
KzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gRXZlbnRUYXJnZXQuCiAgICAgdm9pZCBldmVudExp
c3RlbmVyc0RpZENoYW5nZSgpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8
UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0
YWlsc0VsZW1lbnQuY3BwCmluZGV4IDAwOTU3MTcwYTY4YS4uZmI0MmIyM2NkOWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCkBAIC0xMzAsNyArMTMwLDcg
QEAgYm9vbCBIVE1MRGV0YWlsc0VsZW1lbnQ6OmlzQWN0aXZlU3VtbWFyeShjb25zdCBIVE1MU3Vt
bWFyeUVsZW1lbnQmIHN1bW1hcnkpIGNvbnMKICAgICByZXR1cm4gc2xvdCA9PSBtX3N1bW1hcnlT
bG90LmdldCgpOwogfQogCi12b2lkIEhUTUxEZXRhaWxzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxEZXRhaWxzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gb3BlbkF0dHIpIHsKICAgICAgICAgYm9vbCBvbGRWYWx1
ZSA9IG1faXNPcGVuOwpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgSFRNTERldGFpbHNFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
CiAgICAgICAgICAgICBtX2lzVG9nZ2xlRXZlbnRUYXNrUXVldWVkID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVtZW50LmgKaW5kZXggOGM3MzdhZDA3ZmM1Li41ZDY4
MmQwMTIyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERldGFpbHNFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwcml2YXRlOgogICAgIEhUTUxEZXRhaWxzRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAg
ICAgdm9pZCBkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmKSBmaW5hbDsKICAg
ICBib29sIGhhc0N1c3RvbUZvY3VzTG9naWMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGNmZjRiNzY5MDBlNi4uNGI4ZGJk
MzRkZTEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMzY5LDggKzM2OSwx
MCBAQCBib29sIEhUTUxFbGVtZW50OjptYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25z
dAogICAgIHJldHVybiBlZGl0YWJpbGl0eUZyb21Db250ZW50RWRpdGFibGVBdHRyKCp0aGlzLCBQ
YWdlSXNFZGl0YWJsZTo6Tm8pICE9IEVkaXRhYmlsaXR5OjpSZWFkT25seTsKIH0KIAotdm9pZCBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTdHlsZWRFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKKwogICAgIGlmIChuYW1lID09IGRpckF0dHIpIHsKICAgICAgICAgZGlyQXR0cmlidXRlQ2hh
bmdlZCh2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaApp
bmRleCA1ZWJmZjNlYmVmOTQuLjYxNjhmY2FjZWVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuaApAQCAtMTgyLDcgKzE4Miw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFwcGx5Qm9yZGVy
QXR0cmlidXRlVG9TdHlsZShjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGll
cyYpOwogCiAgICAgYm9vbCBtYXRjaGVzUmVhZFdyaXRlUHNldWRvQ2xhc3MoKSBjb25zdCBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
Tm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5z
ZXJ0aW9uVHlwZSAsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5v
ZGUmIG9sZFBhcmVudE9mUmVtb3ZlZFRyZWUpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzUHJlc2Vu
dGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAppbmRleCAzMDE3
YTAzYTQ4MmIuLmFlN2RkZTY0MzI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC05NSw4ICs5NSw5IEBAIHN0YXRpYyBib29sIGhhc1R5cGVPclNyYyhjb25z
dCBIVE1MRW1iZWRFbGVtZW50JiBlbWJlZCkKICAgICByZXR1cm4gZW1iZWQuaGFzQXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbih0eXBlQXR0cikgfHwgZW1iZWQuaGFzQXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihzcmNBdHRyKTsKIH0KIAotdm9pZCBIVE1MRW1iZWRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEVtYmVkRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiAgICAgaWYgKG5hbWUgPT0gdHlwZUF0dHIpIHsKICAgICAgICAgbV9zZXJ2aWNlVHlw
ZSA9IHZhbHVlLnN0cmluZygpLmxlZnQodmFsdWUuZmluZCgnOycpKS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogICAgICAgICAvLyBGSVhNRTogVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
IHRoaXMgYW5kIEhUTUxPYmplY3RFbGVtZW50J3MgY29ycmVzcG9uZGluZwpAQCAtMTE0LDggKzEx
NSw3IEBAIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChyZW5kZXJlcigpICYm
ICFoYXNUeXBlT3JTcmMoKnRoaXMpKQogICAgICAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBJZiBib3RoIGNvZGUgYW5kIHNyYyBhdHRyaWJ1dGVzIGFyZSBzcGVj
aWZpZWQsIGxhc3Qgb25lIHBhcnNlZC9jaGFuZ2VkIHdpbnMuIFRoYXQgY2FuJ3QgYmUgcmlnaHQh
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTEVtYmVkRWxlbWVudDo6cGFy
YW1ldGVyc0ZvclBsdWdpbihWZWN0b3I8QXRvbVN0cmluZz4mIHBhcmFtTmFtZXMsIFZlY3RvcjxB
dG9tU3RyaW5nPiYgcGFyYW1WYWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVu
dC5oCmluZGV4IGQxNmU2NzdhMGNiOC4uY2QxZGQ2NmJkYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbWJlZEVsZW1lbnQuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxFbWJlZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIAogICAgIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXggODQ5ODgxMDFlNDAzLi5k
ZmQxMmM0ODBlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50
LmNwcApAQCAtODMsMTEgKzgzLDExIEBAIHN0YXRpYyB2b2lkIHVwZGF0ZUZyb21Db250cm9sRWxl
bWVudHNBbmNlc3RvckRpc2FibGVkU3RhdGVVbmRlcihIVE1MRWxlbWVudCYgc3RhCiAgICAgfQog
fQogCi12b2lkIEhUTUxGaWVsZFNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRmllbGRT
ZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAg
ICBib29sIG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlID0gaGFzRGlzYWJsZWRBdHRyaWJ1dGUoKTsK
IAotICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKKyAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9s
ZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmICho
YXNEaXNhYmxlZEF0dHJpYnV0ZSgpICE9IG9sZEhhc0Rpc2FibGVkQXR0cmlidXRlKSB7CiAgICAg
ICAgIGlmIChoYXNEaXNhYmxlZEF0dHJpYnV0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaAppbmRleCBkNjcxZjg2ODUxMmQuLjJhY2I2OTU3YzUzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmgKQEAgLTQ5LDcgKzQ5LDcgQEAg
cHJpdmF0ZToKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRl
cmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwogICAg
IGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIGJv
b2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZWRT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQm
IG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggOWZkZjYxYjRmYWZm
Li5lYjc1NjkzNWY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFp
CiAgICAgY2hlY2tBbmRQb3NzaWJseUNsb3NlUG9wb3ZlclN0YWNrKCk7CiB9CiAKLXZvaWQgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHJlcXVpcmVkQXR0cikgewogICAgICAgICBib29sIG5ld1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAg
ICAgfSBlbHNlIGlmIChuYW1lID09IHBvcG92ZXJ0YXJnZXRBdHRyKQogICAgICAgICBjaGVja0Fu
ZFBvc3NpYmx5Q2xvc2VQb3BvdmVyU3RhY2soKTsKICAgICBlbHNlIHsKLSAgICAgICAgSFRNTEVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogICAgICAgICBWYWxpZGF0ZWRGb3JtTGlzdGVkRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggMmU3NDhjMjVmOTUwLi40NzhkODY2MzEwMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRNb3ZlVG9OZXdEb2N1bWVudChEb2N1bWVudCYgb2xkRG9j
dW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmlu
ZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaXNh
YmxlZFN0YXRlQ2hhbmdlZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5n
ZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAppbmRl
eCAyOTViMzhjNTJmZDUuLmZjMmJkNWUwMjY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcApAQCAtNTAyLDcgKzUwMiw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpy
ZXNldExpc3RlZEZvcm1Db250cm9sRWxlbWVudHMoKQogICAgICAgICBjb250cm9sLT5yZXNldCgp
OwogfQogCi12b2lkIEhUTUxGb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxGb3JtRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gYWN0aW9uQXR0cikgewogICAgICAgICBtX2F0dHJpYnV0ZXMucGFyc2VBY3Rpb24o
dmFsdWUpOwpAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAgICAg
ICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRBdHRy
aWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbik7CiB9CiAKIHVuc2lnbmVkIEhUTUxGb3JtRWxlbWVudDo6Zm9ybUVsZW1lbnRJbmRl
eFdpdGhGb3JtQXR0cmlidXRlKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHJhbmdlU3RhcnQs
IHVuc2lnbmVkIHJhbmdlRW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5k
ZXggNGQ4MTBmNDYzNjU3Li44ZjFlOWIwN2IxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVk
RnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKSBmaW5hbDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCByZXN1bWVGcm9tRG9jdW1lbnRTdXNwZW5zaW9u
KCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA2
NThiMTRiZjMxMjQuLjljYTBkNzk3YmE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZUVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIGludCBIVE1MRnJhbWVFbGVtZW50OjpkZWZh
dWx0VGFiSW5kZXgoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIEhUTUxGcmFtZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MRnJhbWVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBmcmFtZWJvcmRlckF0
dHIpIHsKICAgICAgICAgbV9mcmFtZUJvcmRlciA9IHBhcnNlSFRNTEludGVnZXIodmFsdWUpLnZh
bHVlX29yKDApOwpAQCAtOTAsNyArOTAsNyBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAg
cmVuZGVyZXItPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxG
cmFtZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhU
TUxGcmFtZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuaAppbmRleCBjZDg3Yzg1NDk2
MGMuLjZlNGNiODllMmM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3Jl
YXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlv
biYpIGZpbmFsOwogICAgIGludCBkZWZhdWx0VGFiSW5kZXgoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1fZnJhbWVCb3Jk
ZXIgeyB0cnVlIH07CiAgICAgYm9vbCBtX2ZyYW1lQm9yZGVyU2V0IHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggY2QyNDQ5M2M3
ZDBlLi42YjM4NTc5ZDRjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZy
YW1lRWxlbWVudEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxl
bWVudEJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFz
ZTo6b3BlblVSTChMb2NrSGlzdG9yeSBsb2NrSGlzdG9yeSwgTG9ja0JhY2tGb3J3YXJkTGlzdAog
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSgq
dGhpcywgbV9mcmFtZVVSTCwgZnJhbWVOYW1lLCBsb2NrSGlzdG9yeSwgbG9ja0JhY2tGb3J3YXJk
TGlzdCk7CiB9CiAKLXZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBI
VE1MRnJhbWVFbGVtZW50QmFzZTo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gc3JjZG9jQXR0cikgewogICAgICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVMKICAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gc3JjQXR0ciAmJiAhaGFzQXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihzcmNkb2NBdHRyKSkKICAgICAgICAgc2V0TG9jYXRpb24oc3RyaXBMZWFkaW5n
QW5kVHJhaWxpbmdIVE1MU3BhY2VzKHZhbHVlKSk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRnJh
bWVPd25lckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRN
TEZyYW1lT3duZXJFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgSFRNTEZyYW1lRWxlbWVudEJhc2U6Omluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUgaW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNl
cnRlZFRyZWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1l
bnRCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgKaW5k
ZXggZDM0NWYzYjAxNjZjLi43YzcxODQwOTkzZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZUVsZW1lbnRCYXNlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgcHJvdGVjdGVkOgogCiAgICAg
Ym9vbCBjYW5Mb2FkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRv
QW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVy
ZXJzKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmNwcAppbmRleCAzMjVhOWJiZDA3NDMuLjdjNGQxMjAzYjhhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC04Myw4ICs4MywxNCBAQCB2b2lkIEhU
TUxGcmFtZVNldEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MRWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlv
bmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUsIHN0eWxlKTsKIH0KIAotdm9pZCBIVE1M
RnJhbWVTZXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTEZyYW1lU2V0RWxlbWVudDo6YXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgYXV0byYgZXZlbnRO
YW1lID0gSFRNTEJvZHlFbGVtZW50OjpldmVudE5hbWVGb3JXaW5kb3dFdmVudEhhbmRsZXJBdHRy
aWJ1dGUobmFtZSk7CisgICAgaWYgKCFldmVudE5hbWUuaXNOdWxsKCkpCisgICAgICAgIGRvY3Vt
ZW50KCkuc2V0V2luZG93QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIG5hbWUsIHZh
bHVlLCBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSk7CisgICAgZWxzZQorICAgICAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSByb3dzQXR0cikgewogICAgICAg
ICAvLyBGSVhNRTogV2hhdCBpcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8gd2hlbiByZW1vdmluZyB0
aGlzIGF0dHJpYnV0ZT8KICAgICAgICAgLy8gV2h5IG5vdCB0cmVhdCBpdCB0aGUgc2FtZSB3YXkg
d2UgdHJlYXQgc2V0dGluZyBpdCB0byB0aGUgZW1wdHkgc3RyaW5nPwpAQCAtMTQ1LDE0ICsxNTEs
NiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdAogICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCB0byB0cmlnZ2VyIHJlcGFpbnRpbmc/CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBh
dXRvJiBldmVudE5hbWUgPSBIVE1MQm9keUVsZW1lbnQ6OmV2ZW50TmFtZUZvcldpbmRvd0V2ZW50
SGFuZGxlckF0dHJpYnV0ZShuYW1lKTsKLSAgICBpZiAoIWV2ZW50TmFtZS5pc051bGwoKSkgewot
ICAgICAgICBkb2N1bWVudCgpLnNldFdpbmRvd0F0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnRO
YW1lLCBuYW1lLCB2YWx1ZSwgbWFpblRocmVhZE5vcm1hbFdvcmxkKCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKIH0KIAogYm9vbCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0
IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1l
U2V0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgK
aW5kZXggMzdmZjFiMGY2OWIxLi45YjZlMTViYTdjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC01Niw3ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3RleHByIHN0YXRpYyBhdXRvIENyZWF0ZUhUTUxGcmFtZVNldEVsZW1lbnQgPSBDcmVhdGVIVE1M
RWxlbWVudCB8IE5vZGVGbGFnOjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3M7CiAgICAg
SFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNl
bnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0
aWVzJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFt
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAK
aW5kZXggNDE4ZTA3MjVhYjY0Li5mMGY2NTA0NjJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgSFRNTElGcmFtZUVs
ZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hCiAgICAgICAgIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxJ
RnJhbWVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElGcmFtZUVsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNhbmRi
b3hBdHRyKSB7CiAgICAgICAgIGlmIChtX3NhbmRib3gpCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9p
ZCBIVE1MSUZyYW1lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgICAgIGxvYWREZWZlcnJlZEZyYW1lKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pOwogfQogCiBib29sIEhUTUxJRnJhbWVFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVk
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuaAppbmRleCBmYTY1Y2E0YjM1YTkuLjg1YjQxZWNmMWRmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAg
IEhUTUxJRnJhbWVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAg
ICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29s
bGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGI1NzFlOGQ1N2NkZi4u
MTRiY2EyNmUyZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAK
QEAgLTMyOSwyMyArMzI5LDEwIEBAIHN0YXRpYyBDcm9zc09yaWdpblN0YXRlIHBhcnNlQ3Jvc3Nv
cmlnaW5TdGF0ZShjb25zdCBBdG9tU3RyaW5nJiBjcm9zc29yaWdpblZhbHVlCiAgICAgcmV0dXJu
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGNyb3Nzb3JpZ2luVmFsdWUsICJ1c2UtY3Jl
ZGVudGlhbHMiX3MpID8gVXNlQ3JlZGVudGlhbHMgOiBBbm9ueW1vdXM7CiB9CiAKLXZvaWQgSFRN
TEltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIEhUTUxF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1ZSwgcmVhc29u
KTsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFs
dWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAKLSAgICBpZiAobmFtZSA9PSByZWZl
cnJlcnBvbGljeUF0dHIgJiYgZG9jdW1lbnQoKS5zZXR0aW5ncygpLnJlZmVycmVyUG9saWN5QXR0
cmlidXRlRW5hYmxlZCgpKSB7Ci0gICAgICAgIGF1dG8gb2xkUmVmZXJyZXJQb2xpY3kgPSBwYXJz
ZVJlZmVycmVyUG9saWN5KG9sZFZhbHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQ
b2xpY3lBdHRyaWJ1dGUpLnZhbHVlX29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0g
ICAgICAgIGF1dG8gbmV3UmVmZXJyZXJQb2xpY3kgPSBwYXJzZVJlZmVycmVyUG9saWN5KG5ld1Zh
bHVlLCBSZWZlcnJlclBvbGljeVNvdXJjZTo6UmVmZXJyZXJQb2xpY3lBdHRyaWJ1dGUpLnZhbHVl
X29yKFJlZmVycmVyUG9saWN5OjpFbXB0eVN0cmluZyk7Ci0gICAgICAgIGlmIChvbGRSZWZlcnJl
clBvbGljeSAhPSBuZXdSZWZlcnJlclBvbGljeSkKLSAgICAgICAgICAgIG1faW1hZ2VMb2FkZXIt
PnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRpb246
Olllcyk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IGNyb3Nzb3JpZ2luQXR0cikgewotICAgICAg
ICBpZiAocGFyc2VDcm9zc29yaWdpblN0YXRlKG9sZFZhbHVlKSAhPSBwYXJzZUNyb3Nzb3JpZ2lu
U3RhdGUobmV3VmFsdWUpKQotICAgICAgICAgICAgbV9pbWFnZUxvYWRlci0+dXBkYXRlRnJvbUVs
ZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoUmVsZXZhbnRNdXRhdGlvbjo6WWVzKTsKLSAgICB9
Ci19Ci0KLXZvaWQgSFRNTEltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCi17CiAgICAgaWYgKG5hbWUg
PT0gYWx0QXR0cikgewogICAgICAgICBpZiAoaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVyKCkpKQog
ICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcigpKS51cGRhdGVBbHRU
ZXh0KCk7CkBAIC0zNjQsMzEgKzM1MSwzNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICBCbGVuZE1vZGUgYmxlbmRPcCA9IEJsZW5kTW9kZTo6Tm9ybWFsOwogICAgICAgICBpZiAo
IXBhcnNlQ29tcG9zaXRlQW5kQmxlbmRPcGVyYXRvcih2YWx1ZSwgbV9jb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRPcCkpCiAgICAgICAgICAgICBtX2NvbXBvc2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRl
T3BlcmF0b3I6OlNvdXJjZU92ZXI7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAg
fSBlbHNlIGlmIChpc0ltYWdlTWVudUVuYWJsZWQoKSkgewotICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBsb2FkaW5nQXR0cikgewogICAgICAgICAvLyBObyBhY3Rpb24gbmVlZGVkIGZvciBl
YWdlciB0byBsYXp5IHRyYW5zaXRpb24uCiAgICAgICAgIGlmICghaGFzTGF6eUxvYWRhYmxlQXR0
cmlidXRlVmFsdWUodmFsdWUpKQogICAgICAgICAgICAgbG9hZERlZmVycmVkSW1hZ2UoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewotICAgICAgICAgICAg
Ym9vbCB3aWxsSGF2ZU5hbWUgPSAhdmFsdWUuaXNFbXB0eSgpOwotICAgICAgICAgICAgaWYgKG1f
aGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVj
dGVkKCkgJiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgp
KSkgewotICAgICAgICAgICAgICAgIEhUTUxEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxI
VE1MRG9jdW1lbnQ+KHRoaXMtPmRvY3VtZW50KCkpOwotICAgICAgICAgICAgICAgIGNvbnN0IEF0
b21TdHJpbmcmIGlkID0gZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgICAgICAgICBpZiAoIWlk
LmlzRW1wdHkoKSAmJiBpZCAhPSBnZXROYW1lQXR0cmlidXRlKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHdpbGxIYXZlTmFtZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50
LmFkZERvY3VtZW50TmFtZWRJdGVtKCppZC5pbXBsKCksICp0aGlzKTsKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRG9jdW1l
bnROYW1lZEl0ZW0oKmlkLmltcGwoKSwgKnRoaXMpOwotICAgICAgICAgICAgICAgIH0KKyAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gcmVmZXJyZXJwb2xpY3lBdHRyICYmIGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS5yZWZlcnJlclBvbGljeUF0dHJpYnV0ZUVuYWJsZWQoKSkgeworICAgICAgICBhdXRvIG9s
ZFJlZmVycmVyUG9saWN5ID0gcGFyc2VSZWZlcnJlclBvbGljeShvbGRWYWx1ZSwgUmVmZXJyZXJQ
b2xpY3lTb3VyY2U6OlJlZmVycmVyUG9saWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBv
bGljeTo6RW1wdHlTdHJpbmcpOworICAgICAgICBhdXRvIG5ld1JlZmVycmVyUG9saWN5ID0gcGFy
c2VSZWZlcnJlclBvbGljeSh2YWx1ZSwgUmVmZXJyZXJQb2xpY3lTb3VyY2U6OlJlZmVycmVyUG9s
aWN5QXR0cmlidXRlKS52YWx1ZV9vcihSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcpOworICAg
ICAgICBpZiAob2xkUmVmZXJyZXJQb2xpY3kgIT0gbmV3UmVmZXJyZXJQb2xpY3kpCisgICAgICAg
ICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJv
cihSZWxldmFudE11dGF0aW9uOjpZZXMpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjcm9zc29y
aWdpbkF0dHIpIHsKKyAgICAgICAgaWYgKHBhcnNlQ3Jvc3NvcmlnaW5TdGF0ZShvbGRWYWx1ZSkg
IT0gcGFyc2VDcm9zc29yaWdpblN0YXRlKHZhbHVlKSkKKyAgICAgICAgICAgIG1faW1hZ2VMb2Fk
ZXItPnVwZGF0ZUZyb21FbGVtZW50SWdub3JpbmdQcmV2aW91c0Vycm9yKFJlbGV2YW50TXV0YXRp
b246Olllcyk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG5hbWVBdHRyKSB7CisgICAgICAgIGJv
b2wgd2lsbEhhdmVOYW1lID0gIXZhbHVlLmlzRW1wdHkoKTsKKyAgICAgICAgaWYgKG1faGFkTmFt
ZUJlZm9yZUF0dHJpYnV0ZUNoYW5nZWQgIT0gd2lsbEhhdmVOYW1lICYmIGlzQ29ubmVjdGVkKCkg
JiYgIWlzSW5TaGFkb3dUcmVlKCkgJiYgaXM8SFRNTERvY3VtZW50Pihkb2N1bWVudCgpKSkgewor
ICAgICAgICAgICAgSFRNTERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PEhUTUxEb2N1bWVu
dD4odGhpcy0+ZG9jdW1lbnQoKSk7CisgICAgICAgICAgICBjb25zdCBBdG9tU3RyaW5nJiBpZCA9
IGdldElkQXR0cmlidXRlKCk7CisgICAgICAgICAgICBpZiAoIWlkLmlzRW1wdHkoKSAmJiBpZCAh
PSBnZXROYW1lQXR0cmlidXRlKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAod2lsbEhhdmVOYW1l
KQorICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGREb2N1bWVudE5hbWVkSXRlbSgqaWQu
aW1wbCgpLCAqdGhpcyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5yZW1vdmVEb2N1bWVudE5hbWVkSXRlbSgqaWQuaW1wbCgpLCAqdGhpcyk7CiAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBtX2hhZE5hbWVCZWZvcmVBdHRyaWJ1dGVDaGFuZ2Vk
ID0gd2lsbEhhdmVOYW1lOwogICAgICAgICB9Ci0gICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIG1faGFkTmFtZUJlZm9yZUF0dHJpYnV0ZUNo
YW5nZWQgPSB3aWxsSGF2ZU5hbWU7CiAgICAgfQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCisgICAgaWYgKGlzSW1hZ2VNZW51RW5hYmxlZCgpKQorICAgICAgICBJbWFnZUNvbnRyb2xz
TWFjOjp1cGRhdGVJbWFnZUNvbnRyb2xzKCp0aGlzKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxJ
bWFnZUVsZW1lbnQ6OmxvYWREZWZlcnJlZEltYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgKaW5kZXggYWUyNWRkZjUxNzQwLi5mMzZjOWVhN2RjN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xODUsNyArMTg1LDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNldEZvcm1JbnRlcm5hbChSZWZQdHI8SFRNTEZvcm1FbGVtZW50PiYmKSBmaW5h
bDsKIAogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNG
b3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xsZWN0RXh0cmFTdHls
ZUZvclByZXNlbnRhdGlvbmFsSGludHMoTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggZWFkZmQ2MTU4
MzAyLi4yMzAyNTVjYWZkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcApAQCAtNzIwLDE2ICs3MjAsMTggQEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
aW5pdGlhbGl6ZUlucHV0VHlwZSgpCiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIAotdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgQVNTRVJUKG1faW5wdXRU
eXBlKTsKICAgICBSZWYgcHJvdGVjdGVkSW5wdXRUeXBlIHsgKm1faW5wdXRUeXBlIH07CiAKKyAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFt
ZSA9PSBuYW1lQXR0cikgewogICAgICAgICByZW1vdmVGcm9tUmFkaW9CdXR0b25Hcm91cCgpOwog
ICAgICAgICBtX25hbWUgPSB2YWx1ZTsKICAgICAgICAgYWRkVG9SYWRpb0J1dHRvbkdyb3VwKCk7
Ci0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSk7CisgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYXV0b2NvbXBsZXRlQXR0cikgewogICAgICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UodmFsdWUsICJvZmYiX3MpKSB7CiAgICAg
ICAgICAgICBtX2F1dG9jb21wbGV0ZSA9IE9mZjsKQEAgLTc5OCw4ICs4MDAsNiBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbgogICAgICAgICB9CiAgICAgfQogI2VuZGlmCi0gICAgZWxzZQotICAg
ICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogCiAgICAgbV9pbnB1dFR5cGUtPmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDZjN2YyZTU2MGEzOS4uZTc2Nzcz
MGE0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMzc4LDcg
KzM3OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRN
b3VzZUV2ZW50cykgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1v
ZGlmaWVkRGlyZWN0bHkpIGZpbmFsOwogICAgIGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBj
b2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKICAg
ICB2b2lkIHBhcnNlckRpZFNldEF0dHJpYnV0ZXMoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxMSUVsZW1lbnQuY3BwCmluZGV4IGQ5NTdlZDRiMTM5NS4uY2JkYzJiOTIyZTU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAKQEAgLTkzLDEzICs5MywxMyBAQCB2b2lkIEhU
TUxMSUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmCiAgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxM
SUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MTElFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSB2YWx1ZUF0dHIpIHsK
ICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNMaXN0SXRlbSgpKQogICAg
ICAgICAgICAgcGFyc2VWYWx1ZSh2YWx1ZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTElFbGVtZW50OjpkaWRBdHRhY2hSZW5kZXJlcnMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQuaAppbmRleCBmYjk4ZTA3OTExMTYuLjM2OTY4
OGI1NzJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHJpdmF0ZToKICAgICBjb25zdGV4cHIgc3RhdGljIGF1dG8gQ3JlYXRlSFRNTExJRWxlbWVu
dCA9IENyZWF0ZUhUTUxFbGVtZW50IHwgTm9kZUZsYWc6Okhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNh
bGxiYWNrczsKICAgICBIVE1MTElFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wg
aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHls
ZVByb3BlcnRpZXMmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCmluZGV4IGQ0YjQxMjVlMTBiMC4uNTkyZDczYTU1MzI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OnNldERpc2FibGVkU3RhdGUoYm9vbCBkaXNhYmxlZCkKICAgICB9CiB9CiAKLXZvaWQg
SFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTExpbmtFbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSByZWxB
dHRyKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkUmVsID0gTGlua1JlbEF0dHJpYnV0ZShkb2N1bWVu
dCgpLCB2YWx1ZSk7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcK
ICAgICAgICAgICAgIG1fc2hlZXQtPnNldFRpdGxlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBIVE1MTGlua0VsZW1lbnQ6OnNo
b3VsZExvYWRMaW5rKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IGY1
YWJjNTdlNjdkNC4uZjhjMmE0ZDdiMGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgIFJlcXVlc3RQcmlvcml0eSBmZXRj
aFByaW9yaXR5SGludCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIGJvb2wgc2hvdWxkTG9hZExpbmsoKSBmaW5hbDsKICAg
ICB2b2lkIHByb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5jcHAKaW5k
ZXggY2QwNDNmMjViMDllLi4wNGRlNmRmMTkwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1h
cEVsZW1lbnQuY3BwCkBAIC04NCwxNSArODQsMTcgQEAgSFRNTEltYWdlRWxlbWVudCogSFRNTE1h
cEVsZW1lbnQ6OmltYWdlRWxlbWVudCgpCiAgICAgcmV0dXJuIHRyZWVTY29wZSgpLmltYWdlRWxl
bWVudEJ5VXNlbWFwKCptX25hbWUuaW1wbCgpKTsKIH0KIAotdm9pZCBIVE1MTWFwRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCit2b2lkIEhUTUxNYXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKKyAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICAv
LyBGSVhNRTogVGhpcyBsb2dpYyBzZWVtcyB3cm9uZyBmb3IgWE1MIGRvY3VtZW50cy4KICAgICAv
LyBFaXRoZXIgdGhlIGlkIG9yIG5hbWUgd2lsbCBiZSB1c2VkIGRlcGVuZGluZyBvbiB0aGUgb3Jk
ZXIgdGhlIGF0dHJpYnV0ZXMgYXJlIHBhcnNlZC4KIAogICAgIGlmIChuYW1lID09IEhUTUxOYW1l
czo6aWRBdHRyIHx8IG5hbWUgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cikgewogICAgICAgICBpZiAo
bmFtZSA9PSBIVE1MTmFtZXM6OmlkQXR0cikgewogICAgICAgICAgICAgLy8gQ2FsbCBiYXNlIGNs
YXNzIHNvIHRoYXQgaGFzSUQgYml0IGdldHMgc2V0LgotICAgICAgICAgICAgSFRNTEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKICAgICAgICAgICAgIGlmIChkb2N1bWVudCgpLmlzSFRNTERvY3VtZW50KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0xMDQsMTEgKzEwNiw3IEBA
IHZvaWQgSFRNTE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgICAgIG1fbmFtZSA9IFdURk1vdmUobWFwTmFt
ZSk7CiAgICAgICAgIGlmIChpc0luVHJlZVNjb3BlKCkpCiAgICAgICAgICAgICB0cmVlU2NvcGUo
KS5hZGRJbWFnZU1hcCgqdGhpcyk7Ci0KLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIEhU
TUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKIFJlZjxIVE1MQ29s
bGVjdGlvbj4gSFRNTE1hcEVsZW1lbnQ6OmFyZWFzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuaAppbmRleCA3ZjdlY2U1ZmZkYTMuLjNhNDFmNmI5MTc4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1hcEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxNYXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
LCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgSW5zZXJ0ZWRJbnRv
QW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFp
bmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCmluZGV4IDEw
ZDZhMDZmMTNhOS4uYTE3ODFmNTkyMzZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNYXliZUZvcm1Bc3NvY2lhdGVkQ3VzdG9tRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuY3BwCkBAIC0x
NDksOSArMTQ5LDkgQEAgdm9pZCBIVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQ6
OnJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUgcmVtb3YKICAgICAgICAgZm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucmVtb3ZlZEZyb21BbmNlc3RvcihyZW1vdmFsVHlw
ZSwgb2xkUGFyZW50T2ZSZW1vdmVkVHJlZSk7CiB9CiAKLXZvaWQgSFRNTE1heWJlRm9ybUFzc29j
aWF0ZWRDdXN0b21FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1heWJlRm9ybUFzc29jaWF0
ZWRDdXN0b21FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAoaXNGb3JtQXNzb2NpYXRlZEN1c3RvbUVs
ZW1lbnQoKSkKICAgICAgICAgZm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50VW5zYWZlKCkucGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKaW5kZXggMDI5
YzM3YWZlMDgxLi5jYmZkMTA0YjgzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1heWJlRm9ybUFzc29jaWF0ZWRDdXN0b21FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWF5YmVGb3JtQXNzb2NpYXRlZEN1c3RvbUVsZW1lbnQuaApAQCAtNzIsNyAr
NzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNoSW5zZXJ0aW5nTm9kZSgpIGZpbmFs
OwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmLCBEb2N1bWVudCYpIGZp
bmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVy
Tm9kZSYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIGZpbmFsOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZGQ2MzcwMmMwZjg5Li43NDMwMjlkYmY1
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzcxLDE3
ICs3NzEsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzSW50ZXJhY3RpdmVDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gY29udHJvbHMoKTsKIH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIHJlYXNvbikKLXsKLSNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQotICAgIGlmIChuYW1lID09IHdlYmtpdHdpcmVsZXNzdmlkZW9wbGF5YmFja2Rpc2Fi
bGVkQXR0cikKLSAgICAgICAgbWVkaWFTZXNzaW9uKCkuc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQobmV3VmFsdWUgIT0gbnVsbEF0b20oKSk7Ci0gICAgZWxzZQotI2VuZGlmCi0gICAg
ICAgIEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCBuZXdWYWx1
ZSwgcmVhc29uKTsKLX0KLQotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gaWRBdHRyKQogICAgICAgICBtX2lkID0gdmFsdWU7CkBAIC04
MjMsOCArODEzLDEyIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAgIGlmIChtX21l
ZGlhU2Vzc2lvbikKICAgICAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5jbGllbnRDaGFyYWN0ZXJp
c3RpY3NDaGFuZ2VkKGZhbHNlKTsKICAgICB9CisjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKKyAgICBlbHNlIGlmIChuYW1lID09IHdlYmtpdHdpcmVsZXNzdmlkZW9wbGF5YmFj
a2Rpc2FibGVkQXR0cikKKyAgICAgICAgbWVkaWFTZXNzaW9uKCkuc2V0V2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQodmFsdWUgIT0gbnVsbEF0b20oKSk7CisjZW5kaWYKICAgICBlbHNlCi0g
ICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpm
aW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
aAppbmRleCBhNDU5NmY4M2I2MjUuLjU1YzgzZWQxY2Q0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTY0Nyw4ICs2NDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRN
TE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0
ZWRCeVBhcnNlcik7CiAgICAgdmlydHVhbCB+SFRNTE1lZGlhRWxlbWVudCgpOwogCi0gICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IG92ZXJyaWRlOwogICAgIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHdpbGxBdHRhY2hSZW5kZXJlcnMoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lbnVFbGVtZW50LmNwcAppbmRleCBjZTcxOTFmNWMzODEuLmEzMDg2ZGYzZDdlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVudUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmNwcApAQCAtNjMsMTAgKzYzLDEw
IEBAIHZvaWQgSFRNTE1lbnVFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBl
IHR5cGUsIENvbnRhaW5lck5vZGUmIGFuY2VzCiAgICAgfQogfQogCi12b2lkIEhUTUxNZW51RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxNZW51RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgIT0gdHlwZUF0dHIgfHwgIWRv
Y3VtZW50KCkuc2V0dGluZ3MoKS5tZW51SXRlbUVsZW1lbnRFbmFibGVkKCkpIHsKLSAgICAgICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGJvb2wgd2Fz
VG91Y2hCYXJNZW51ID0gbV9pc1RvdWNoQmFyTWVudTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lbnVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51
RWxlbWVudC5oCmluZGV4IDIwNWI4ZjUyYzQ5NS4uMjYzMmE0YjI1MDhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZW51RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lbnVFbGVtZW50LmgKQEAgLTM4LDcgKzM4LDcgQEAgcHJpdmF0ZToKIAogICAg
IEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlv
blR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRGcm9tQW5jZXN0
b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgZmluYWw7CiAKICAgICBib29sIG1faXNUb3VjaEJhck1lbnU7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCmluZGV4IDJiMGQwYjNhOGU0NS4u
NWYxNGJmMjdjMjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCkBA
IC05MywyNCArOTMsMTYgQEAgY29uc3QgQ29sb3ImIEhUTUxNZXRhRWxlbWVudDo6Y29udGVudENv
bG9yKCkKICAgICByZXR1cm4gKm1fY29udGVudENvbG9yOwogfQogCi12b2lkIEhUTUxNZXRhRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiByZWFzb24pCit2b2lkIEhUTUxNZXRhRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgSFRNTEVsZW1lbnQ6OmF0
dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOworICAgIEhU
TUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAotICAgIGlmICghaXNJbkRvY3VtZW50VHJlZSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobmFtZSA9PSBuYW1lQXR0cikgewotICAgICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uob2xkVmFsdWUsICJ0aGVtZS1jb2xvciJf
cykgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG5ld1ZhbHVlLCAidGhlbWUtY29s
b3IiX3MpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5tZXRhRWxlbWVudFRoZW1lQ29sb3JDaGFu
Z2VkKCp0aGlzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotdm9pZCBIVE1MTWV0YUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlKQotewogICAgIGlmIChuYW1lID09IG5hbWVBdHRyKSB7CiAgICAgICAg
IHByb2Nlc3MoKTsKKyAgICAgICAgaWYgKGlzSW5Eb2N1bWVudFRyZWUoKSkgeworICAgICAgICAg
ICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKG9sZFZhbHVlLCAidGhlbWUtY29s
b3IiX3MpICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZSwgInRoZW1lLWNv
bG9yIl9zKSkKKyAgICAgICAgICAgICAgICBkb2N1bWVudCgpLm1ldGFFbGVtZW50VGhlbWVDb2xv
ckNoYW5nZWQoKnRoaXMpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTEzMCw4ICsxMjIsNiBAQCB2b2lkIEhUTUxNZXRhRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICBwcm9jZXNz
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiBOb2RlOjpJbnNlcnRlZEludG9BbmNlc3RvclJlc3Vs
dCBIVE1MTWV0YUVsZW1lbnQ6Omluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUgaW5z
ZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYgcGFyZW50T2ZJbnNlcnRlZFRyZWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAppbmRleCAxYjEyNzA3YjRiNmMuLjRmYjE1MGU0YWE3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRhRWxlbWVudC5oCkBAIC00Niw3ICs0Niw2IEBA
IHByaXZhdGU6CiAgICAgSFRNTE1ldGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCYpOwogCiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgbmV3VmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiA9IE1vZGlmaWVkRGlyZWN0bHkpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZElu
dG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRGaW5pc2hJbnNlcnRpbmdOb2RlKCk7CiAgICAgdm9pZCByZW1vdmVkRnJvbUFuY2VzdG9y
KFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmNwcAppbmRleCAxOTUzMmUzZmEyNzguLjBiODM4MWUxZWE2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC03MSwxMiArNzEsMTIg
QEAgYm9vbCBIVE1MTWV0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmIGNoaWxkKSBjb25zdAogICAgIHJldHVybiAhaXM8UmVuZGVyTWV0ZXI+KHJlbmRlcmVy
KCkpICYmIEhUTUxFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNoaWxkKTsKIH0K
IAotdm9pZCBIVE1MTWV0ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE1ldGVyRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5h
bWUgPT0gdmFsdWVBdHRyIHx8IG5hbWUgPT0gbWluQXR0ciB8fCBuYW1lID09IG1heEF0dHIgfHwg
bmFtZSA9PSBsb3dBdHRyIHx8IG5hbWUgPT0gaGlnaEF0dHIgfHwgbmFtZSA9PSBvcHRpbXVtQXR0
cikKICAgICAgICAgZGlkRWxlbWVudFN0YXRlQ2hhbmdlKCk7CiAgICAgZWxzZQotICAgICAgICBI
VE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGRvdWJsZSBIVE1MTWV0ZXJFbGVtZW50OjptaW4oKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuaAppbmRleCA2MWY0MGZkN2Ux
OTEuLmEwZTdmYTdmYzUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmgK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50
PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBv
c2l0aW9uJikgZmluYWw7CiAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKGNvbnN0
IE5vZGUmKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAKICAgICB2b2lkIGRpZEVsZW1lbnRTdGF0ZUNoYW5nZSgpOwogICAgIHZvaWQgZGlkQWRk
VXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MT0xpc3RFbGVtZW50LmNwcAppbmRleCA0NGY5MWFjZWI2M2QuLmYxYzBkZDM2NmFkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCkBAIC04Myw3ICs4Myw3
IEBAIHZvaWQgSFRNTE9MaXN0RWxlbWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtCiAgICAgICAgIEhUTUxFbGVtZW50Ojpjb2xsZWN0
UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQog
Ci12b2lkIEhUTUxPTGlzdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MT0xpc3RFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFt
ZSA9PSBzdGFydEF0dHIpIHsKICAgICAgICAgaW50IG9sZFN0YXJ0ID0gc3RhcnQoKTsKQEAgLTk4
LDcgKzk4LDcgQEAgdm9pZCBIVE1MT0xpc3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW4KICAgICAgICAgbV9pc1JldmVyc2Vk
ID0gcmV2ZXJzZWQ7CiAgICAgICAgIFJlbmRlckxpc3RJdGVtOjp1cGRhdGVJdGVtVmFsdWVzRm9y
T3JkZXJlZExpc3QoKnRoaXMpOwogICAgIH0gZWxzZQotICAgICAgICBIVE1MRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bik7CiB9CiAKIHZvaWQgSFRNTE9MaXN0RWxlbWVudDo6c2V0U3RhcnRGb3JCaW5kaW5ncyhpbnQg
c3RhcnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4IDgzZGMwYjk2
OWVkMy4uYTcyYzU4NDM2NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxP
TGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQu
aApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgICAgICAKICAgICBXRUJDT1JFX0VYUE9S
VCB1bnNpZ25lZCBpdGVtQ291bnQoKSBjb25zdDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBmaW5hbDsKICAgICBib29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFBy
ZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYjg2ZTc3YWVlYjQ4Li4yZGY3
NDMyOWQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBA
IC0xMDAsOCArMTAwLDEwIEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hCiAgICAgICAgIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlKQordm9pZCBIVE1MT2JqZWN0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7CisgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7
CisKICAgICBib29sIGludmFsaWRhdGVSZW5kZXJlciA9IGZhbHNlOwogICAgIGJvb2wgbmVlZHNX
aWRnZXRVcGRhdGUgPSBmYWxzZTsKIApAQCAtMTE3LDEwICsxMTksOCBAQCB2b2lkIEhUTUxPYmpl
Y3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaQogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBjbGFzc2lkQXR0cikgewogICAgICAg
ICBpbnZhbGlkYXRlUmVuZGVyZXIgPSB0cnVlOwogICAgICAgICBuZWVkc1dpZGdldFVwZGF0ZSA9
IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIH0gZWxzZQogICAgICAgICBGb3JtTGlzdGVk
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwotICAgIH0KIAogICAgIGlmIChu
ZWVkc1dpZGdldFVwZGF0ZSkgewogICAgICAgICBzZXROZWVkc1dpZGdldFVwZGF0ZSh0cnVlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCA4OGM3YmMwOGQzY2Qu
Ljc1YWIxZWFmODg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaApA
QCAtNTcsNyArNTcsNyBAQCBwcml2YXRlOgogCiAgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNv
bnN0IGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAg
IGJvb2wgaGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0Zv
ckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFi
bGVTdHlsZVByb3BlcnRpZXMmKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5jcHAKaW5kZXggNmYwNGU1MGViZGNiLi44NWU1YWQ1NmRmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtOTEsOSArOTEs
OSBAQCB2b2lkIEhUTUxPcHRHcm91cEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGls
ZENoYW5nZSYgY2hhbmdlKQogICAgIEhUTUxFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIH0KIAotdm9pZCBIVE1MT3B0R3JvdXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTE9w
dEdyb3VwRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
Ci0gICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBIVE1M
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgcmVjYWxjU2VsZWN0T3B0aW9ucygpOwogCiAgICAg
aWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5oCmluZGV4IGUyNTE5NWQyMjU5Ni4uZjM4OGViNTFhMDEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNDQsNyArNDQsNyBAQCBwcml2
YXRlOgogCiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAg
ICAgYm9vbCBpc0ZvY3VzYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVy
U3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5jcHAKaW5kZXggNDI3NzA0MjI3MjkzLi40NDdiN2ExMzQ3ODkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
aW50IEhUTUxPcHRpb25FbGVtZW50OjppbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAK
LXZvaWQgSFRNTE9wdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1MT3B0aW9uRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAjaWYgRU5BQkxF
KERBVEFMSVNUX0VMRU1FTlQpCiAgICAgaWYgKG5hbWUgPT0gdmFsdWVBdHRyKSB7CkBAIC0yMDAs
NyArMjAwLDcgQEAgdm9pZCBIVE1MT3B0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICAgICAgLy8gaGFzIG5vIGVm
ZmVjdCBvbiB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkLgogICAgICAgICBzZXRTZWxl
Y3RlZFN0YXRlKCF2YWx1ZS5pc051bGwoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEhUTUxFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogU3RyaW5nIEhUTUxPcHRpb25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggNzZhN2M5NjExODg2
Li4zMzZjMjc4NTZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlv
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQoY29u
c3QgUmVuZGVyU3R5bGUmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgbWF0Y2hl
c0RlZmF1bHRQc2V1ZG9DbGFzcygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3V0cHV0RWxlbWVudC5jcHAKaW5kZXggOTJk
M2ZmMjRhMWE0Li5mYzVjMWRlY2NjY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE91dHB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1
dEVsZW1lbnQuY3BwCkBAIC03MCwxMSArNzAsMTEgQEAgYm9vbCBIVE1MT3V0cHV0RWxlbWVudDo6
c3VwcG9ydHNGb2N1cygpIGNvbnN0CiAgICAgcmV0dXJuIEhUTUxFbGVtZW50OjpzdXBwb3J0c0Zv
Y3VzKCk7CiB9CiAKLXZvaWQgSFRNTE91dHB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBIVE1M
T3V0cHV0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7
CiAgICAgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjpmb3JBdHRyICYmIG1fZm9yVG9rZW5zKQogICAg
ICAgICBtX2ZvclRva2Vucy0+YXNzb2NpYXRlZEF0dHJpYnV0ZVZhbHVlQ2hhbmdlZCh2YWx1ZSk7
Ci0gICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OworICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhU
TUxPdXRwdXRFbGVtZW50OjpyZXNldCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxPdXRwdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPdXRwdXRFbGVt
ZW50LmgKaW5kZXggYmQ4YzZhOGI1MWNiLi5lNzdjYzk1OGYxMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE91dHB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPdXRwdXRFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDggQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgY29tcHV0ZVdpbGxWYWxpZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOworCiAgICAg
Y29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICBib29s
IGlzTGFiZWxhYmxlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggMDkwZDkwM2E3ZjUyLi40MGVh
YzQ5YTZkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNw
cApAQCAtNzcsNyArNzcsNyBAQCBSZW5kZXJQcm9ncmVzcyogSFRNTFByb2dyZXNzRWxlbWVudDo6
cmVuZGVyUHJvZ3Jlc3MoKSBjb25zdAogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJQcm9ncmVz
cz4oZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oKnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkuZmly
c3QoKS0+cmVuZGVyZXIoKSk7CiB9CiAKLXZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHZhbHVlQXR0cikgewogICAgICAgICB1
cGRhdGVEZXRlcm1pbmF0ZVN0YXRlKCk7CkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgSFRNTFByb2dy
ZXNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0CiAgICAgfSBlbHNlIGlmIChuYW1lID09IG1heEF0dHIpCiAgICAgICAgIGRpZEVs
ZW1lbnRTdGF0ZUNoYW5nZSgpOwogICAgIGVsc2UKLSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEF0dGFjaFJlbmRlcmVycygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCmluZGV4IDNiYjQ4Zjc1OTEw
YS4uNTVhYTgzY2ZjZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9n
cmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CiAgICAgUmVuZGVyUHJvZ3Jlc3Mq
IHJlbmRlclByb2dyZXNzKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAKICAgICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDA0NzYzM2FkNmMyZS4u
YmM0MTQ1ZWE3NWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNw
cApAQCAtNjUsMTQgKzY1LDE0IEBAIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIFNjcmlwdEVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjaGFuZ2UpOwogfQogCi12b2lkIEhUTUxTY3JpcHRFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNyY0F0dHIpCiAgICAgICAgIGhhbmRsZVNv
dXJjZUF0dHJpYnV0ZSh2YWx1ZSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBhc3luY0F0dHIpCiAg
ICAgICAgIGhhbmRsZUFzeW5jQXR0cmlidXRlKCk7CiAgICAgZWxzZQotICAgICAgICBIVE1MRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBIVE1MRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIE5vZGU6Okluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IEhUTUxT
Y3JpcHRFbGVtZW50OjppbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRpb25UeXBlIGluc2VydGlv
blR5cGUsIENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDMxZTkxMDMyNDEwOS4uYjU0OGRmYWJiOGVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC02Miw3ICs2Miw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFNjcmlwdEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50JiwgYm9vbCB3YXNJbnNlcnRlZEJ5UGFyc2VyLCBib29sIGFscmVh
ZHlTdGFydGVkKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNlc3RvcihJbnNlcnRp
b25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnNlcnRp
bmdOb2RlKCkgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5k
ZXggNmJkZGZhY2I2ZDBiLi5jODc4YzU0YjcxNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCkBAIC0yOTAsNyArMjkwLDcgQEAgYm9vbCBIVE1MU2VsZWN0RWxl
bWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKG5hbWUpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0
b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHNpemVBdHRyKSB7CiAgICAgICAg
IHVuc2lnbmVkIG9sZFNpemUgPSBtX3NpemU7CkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBIVE1M
U2VsZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmkKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbXVsdGlwbGVBdHRyKQogICAg
ICAgICBwYXJzZU11bHRpcGxlQXR0cmlidXRlKHZhbHVlKTsKICAgICBlbHNlCi0gICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1
ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGludCBIVE1MU2Vs
ZWN0RWxlbWVudDo6ZGVmYXVsdFRhYkluZGV4KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAppbmRleCA3NTlkYWYyYjg2ZDkuLmVlYjFkNjEzOWQwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMTM0LDcgKzEzNCw4IEBAIHBy
aXZhdGU6CiAgICAgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRy
b2xTdGF0ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OworCiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVS
ZW5kZXJlcihjb25zdCBOb2RlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNvdXJjZUVsZW1lbnQuY3BwCmluZGV4IDNmMzU1ZmE2Y2Y0NS4uY2FjZDgyNjE4M2YwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmNwcApAQCAtMTUxLDE1ICsxNTEs
MTggQEAgdm9pZCBIVE1MU291cmNlRWxlbWVudDo6c3RvcCgpCiAgICAgY2FuY2VsUGVuZGluZ0Vy
cm9yRXZlbnQoKTsKIH0KIAotdm9pZCBIVE1MU291cmNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IEhUTUxTb3VyY2VFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikKIHsKLSAgICBIVE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAg
IEhUTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBzcmNzZXRBdHRyIHx8
IG5hbWUgPT0gc2l6ZXNBdHRyIHx8IG5hbWUgPT0gbWVkaWFBdHRyIHx8IG5hbWUgPT0gdHlwZUF0
dHIpIHsKICAgICAgICAgaWYgKG5hbWUgPT0gbWVkaWFBdHRyKQogICAgICAgICAgICAgbV9jYWNo
ZWRQYXJzZWRNZWRpYUF0dHJpYnV0ZSA9IHN0ZDo6bnVsbG9wdDsKICAgICAgICAgUmVmUHRyIHBh
cmVudCA9IHBhcmVudE5vZGUoKTsKICAgICAgICAgaWYgKG1fc2hvdWxkQ2FsbFNvdXJjZXNDaGFu
Z2VkICYmIHBhcmVudCkKICAgICAgICAgICAgIGRvd25jYXN0PEhUTUxQaWN0dXJlRWxlbWVudD4o
KnBhcmVudCkuc291cmNlc0NoYW5nZWQoKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gd2lkdGhB
dHRyIHx8IG5hbWUgPT0gaGVpZ2h0QXR0cikgeworICAgICAgICBpZiAoUmVmUHRyIHBhcmVudCA9
IHBhcmVudE5vZGUoKTsgaXM8SFRNTFBpY3R1cmVFbGVtZW50PihwYXJlbnQpKQorICAgICAgICAg
ICAgZG93bmNhc3Q8SFRNTFBpY3R1cmVFbGVtZW50PigqcGFyZW50KS5zb3VyY2VEaW1lbnNpb25B
dHRyaWJ1dGVzQ2hhbmdlZCgqdGhpcyk7CiAgICAgfQogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5U
KQogICAgIGlmIChuYW1lID09IHNyY0F0dHIgfHwgIG5hbWUgPT0gdHlwZUF0dHIpIHsKQEAgLTE3
OSwxMyArMTgyLDQgQEAgY29uc3QgTVE6Ok1lZGlhUXVlcnlMaXN0JiBIVE1MU291cmNlRWxlbWVu
dDo6cGFyc2VkTWVkaWFBdHRyaWJ1dGUoRG9jdW1lbnQmIGRvY3UKICAgICByZXR1cm4gbV9jYWNo
ZWRQYXJzZWRNZWRpYUF0dHJpYnV0ZS52YWx1ZSgpOwogfQogCi12b2lkIEhUTUxTb3VyY2VFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIHJlYXNvbikKLXsKLSAgICBpZiAobmFtZSA9PSB3aWR0aEF0dHIg
fHwgbmFtZSA9PSBoZWlnaHRBdHRyKSB7Ci0gICAgICAgIGlmIChSZWZQdHIgcGFyZW50ID0gcGFy
ZW50Tm9kZSgpOyBpczxIVE1MUGljdHVyZUVsZW1lbnQ+KHBhcmVudCkpCi0gICAgICAgICAgICBk
b3duY2FzdDxIVE1MUGljdHVyZUVsZW1lbnQ+KCpwYXJlbnQpLnNvdXJjZURpbWVuc2lvbkF0dHJp
YnV0ZXNDaGFuZ2VkKCp0aGlzKTsKLSAgICB9Ci0gICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCByZWFzb24pOwotfQotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKaW5kZXggZmU2ZjQwZDEyMjNkLi5lZTQyZWI1
NGM1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50LmgKQEAgLTU0LDkg
KzU0LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Ci0K
LSAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiBuZXdWYWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAg
IFRhc2tDYW5jZWxsYXRpb25Hcm91cCBtX2Vycm9yRXZlbnRDYW5jZWxsYXRpb25Hcm91cDsKICAg
ICBib29sIG1fc2hvdWxkQ2FsbFNvdXJjZXNDaGFuZ2VkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCmluZGV4IDE1MWUyZGU2NTQ5YS4uNDA2NmY3NDll
OTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTc2LDcg
Kzc2LDcgQEAgUmVmPEhUTUxTdHlsZUVsZW1lbnQ+IEhUTUxTdHlsZUVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFN0eWxlRWxl
bWVudChzdHlsZVRhZywgZG9jdW1lbnQsIGZhbHNlKSk7CiB9CiAKLXZvaWQgSFRNTFN0eWxlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHRpdGxlQXR0ciAmJiBz
aGVldCgpICYmICFpc0luU2hhZG93VHJlZSgpKQogICAgICAgICBzaGVldCgpLT5zZXRUaXRsZSh2
YWx1ZSk7CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAgICAgICAg
IGlmIChhdXRvKiBzY29wZSA9IG1fc3R5bGVTaGVldE93bmVyLnN0eWxlU2NvcGUoKSkKICAgICAg
ICAgICAgIHNjb3BlLT5kaWRDaGFuZ2VTdHlsZVNoZWV0Q29udGVudHMoKTsKICAgICB9IGVsc2UK
LSAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAg
ICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIEhUTUxTdHlsZUVsZW1lbnQ6
OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVu
dC5oCmluZGV4IGY2OTg0YzEyZGQ5YS4uMzNiNGZiNjRhMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTdHlsZUVsZW1lbnQuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIEhUTUxTdHlsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZp
bmFsOwogICAgIEluc2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9y
KEluc2VydGlvblR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZWRG
cm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAppbmRleCBiZDg2YzkwYzBmYmQuLjcy
MDc0ZDU5NzhkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVu
dC5jcHAKQEAgLTExMiwxNiArMTEyLDE0IEBAIHZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllCiAgICAg
ICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIEhUTUxUYWJsZUNlbGxFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIGlmIChuYW1lID09IHJvd3NwYW5BdHRy
KSB7Ci0gICAgICAgIGlmIChpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpKQotICAgICAg
ICAgICAgZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqcmVuZGVyZXIoKSkuY29sU3Bhbk9yUm93
U3BhbkNoYW5nZWQoKTsKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gY29sc3BhbkF0dHIpIHsKKyAg
ICBIVE1MVGFibGVQYXJ0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKKyAgICBpZiAobmFtZSA9PSBy
b3dzcGFuQXR0ciB8fCBuYW1lID09IGNvbHNwYW5BdHRyKSB7CiAgICAgICAgIGlmIChpczxSZW5k
ZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpKQogICAgICAgICAgICAgZG93bmNhc3Q8UmVuZGVyVGFi
bGVDZWxsPigqcmVuZGVyZXIoKSkuY29sU3Bhbk9yUm93U3BhbkNoYW5nZWQoKTsKLSAgICB9IGVs
c2UKLSAgICAgICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKTsKKyAgICB9CiB9CiAKIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIEhUTUxUYWJs
ZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5oCmluZGV4IDViZDNkZmUz
YjhmNS4uOTUzZTlhYzU0ZTJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxU
YWJsZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDZWxs
RWxlbWVudC5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTFRh
YmxlQ2VsbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKLSAgICB2
b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNQcmVz
ZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJv
cGVydGllcyYpIG92ZXJyaWRlOwogICAgIGNvbnN0IE11dGFibGVTdHlsZVByb3BlcnRpZXMqIGFk
ZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKaW5kZXggZTc5YWE4OTAwNTEw
Li40OWNmN2YwM2IxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q29sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVt
ZW50LmNwcApAQCAtNzIsOCArNzIsMTAgQEAgdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50Ojpjb2xs
ZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWQKICAgICAg
ICAgSFRNTFRhYmxlUGFydEVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKG5hbWUsIHZhbHVlLCBzdHlsZSk7CiB9CiAKLXZvaWQgSFRNTFRhYmxlQ29sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUYWJsZUNvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIEhUTUxUYWJsZVBhcnRFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IHNwYW5BdHRyKSB7CiAgICAgICAgIG1fc3BhbiA9
IGNsYW1wSFRNTE5vbk5lZ2F0aXZlSW50ZWdlclRvUmFuZ2UodmFsdWUsIG1pblNwYW4sIG1heFNw
YW4sIGRlZmF1bHRTcGFuKTsKICAgICAgICAgaWYgKGlzPFJlbmRlclRhYmxlQ29sPihyZW5kZXJl
cigpKSkKQEAgLTg3LDggKzg5LDcgQEAgdm9pZCBIVE1MVGFibGVDb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICAgICAg
ICAgICAgICAgICAgY29sLnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxUYWJsZVBhcnRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfQogfQogCiBjb25zdCBN
dXRhYmxlU3R5bGVQcm9wZXJ0aWVzKiBIVE1MVGFibGVDb2xFbGVtZW50OjphZGRpdGlvbmFsUHJl
c2VudGF0aW9uYWxIaW50U3R5bGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNvbEVsZW1lbnQuaAppbmRleCBlZWU3ZmJjZTFiNGQuLmFlM2QwNWUzZDA3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50LmgKQEAgLTQyLDcgKzQyLDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBIVE1MVGFibGVDb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgZmluYWw7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGNvbGxlY3RQcmVzZW50
YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIGZpbmFsOwogICAgIGNvbnN0IE11dGFi
bGVTdHlsZVByb3BlcnRpZXMqIGFkZGl0aW9uYWxQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpIGNv
bnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXgg
N2RiYWYyN2I2YjI2Li43YjgwYzk4ODlkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFi
bGVFbGVtZW50LmNwcApAQCAtMzYyLDggKzM2MiwxMCBAQCBib29sIEhUTUxUYWJsZUVsZW1lbnQ6
Omhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bgogICAgIHJldHVybiBIVE1MRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJp
YnV0ZShuYW1lKTsKIH0KIAotdm9pZCBIVE1MVGFibGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTFRhYmxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CisgICAgSFRNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZh
bHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgQ2VsbEJvcmRlcnMgYm9y
ZGVyc0JlZm9yZSA9IGNlbGxCb3JkZXJzKCk7CiAgICAgdW5zaWduZWQgc2hvcnQgb2xkUGFkZGlu
ZyA9IG1fcGFkZGluZzsKIApAQCAtMzk4LDggKzQwMCw3IEBAIHZvaWQgSFRNTFRhYmxlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluCiAgICAgICAgICAgICBtX3BhZGRpbmcgPSAxOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBj
b2xzQXR0cikgewogICAgICAgICAvLyAjIyMKLSAgICB9IGVsc2UKLSAgICAgICAgSFRNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICB9CiAKICAgICBpZiAoYm9yZGVy
c0JlZm9yZSAhPSBjZWxsQm9yZGVycygpIHx8IG9sZFBhZGRpbmcgIT0gbV9wYWRkaW5nKSB7CiAg
ICAgICAgIG1fc2hhcmVkQ2VsbFN0eWxlID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGFibGVFbGVtZW50LmgKaW5kZXggYmFjZmE0NmRkZmY1Li43NTEyNDU4OThlNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgSFRNTFRhYmxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBi
b29sIGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBB
dHRyaWJ1dGUmKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCmluZGV4IDk1MGUxMTg2MDYwNy4uYmJmM2VlNjEwYmQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTE0Myw4ICsxNDMsOSBA
QCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9y
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZAogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6Y29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUobmFtZSwgdmFsdWUs
IHN0eWxlKTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQo
bmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAg
IGlmIChuYW1lID09IHJvd3NBdHRyKSB7CiAgICAgICAgIHVuc2lnbmVkIHJvd3MgPSBsaW1pdFRv
T25seUhUTUxOb25OZWdhdGl2ZU51bWJlcnNHcmVhdGVyVGhhblplcm8odmFsdWUsIGRlZmF1bHRS
b3dzKTsKICAgICAgICAgaWYgKG1fcm93cyAhPSByb3dzKSB7CkBAIC0xODAsOCArMTgxLDcgQEAg
dm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3QKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWlubGVuZ3Ro
QXR0cikgewogICAgICAgICBpbnRlcm5hbFNldE1pbkxlbmd0aChwYXJzZUhUTUxOb25OZWdhdGl2
ZUludGVnZXIodmFsdWUpLnZhbHVlX29yKC0xKSk7CiAgICAgICAgIHVwZGF0ZVZhbGlkaXR5KCk7
Ci0gICAgfSBlbHNlCi0gICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgfQogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gSFRNTFRleHRBcmVhRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IDc1YzVjMTMzY2U3NC4uMzNiMmM4NGVlMWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtOTMsNyArOTMs
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYp
IGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNv
bnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICBib29s
IGhhc1ByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY29sbGVjdFByZXNlbnRhdGlvbmFsSGludHNGb3JBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmLCBNdXRhYmxlU3R5
bGVQcm9wZXJ0aWVzJikgZmluYWw7CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24m
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHAKaW5kZXggNWYzZDA3MTZjYTc5Li45N2NmMWFhYzMxZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC01
NDcsMTUgKzU0NywxNSBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rp
b25DaGFuZ2VkKGJvb2wgc2hvdWxkRmlyZVNlbGVjdEV2ZW50KQogdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6c2NoZWR1bGVTZWxlY3RFdmVudCgpCiB7CiAgICAgcXVldWVUYXNrVG9E
aXNwYXRjaEV2ZW50KFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuc2VsZWN0RXZlbnQsIEV2ZW50OjpDYW5CdWJibGU6OlllcywgRXZlbnQ6Oklz
Q2FuY2VsYWJsZTo6Tm8pKTsKLX0gCit9CiAKLXZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlKQordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gcGxhY2Vo
b2xkZXJBdHRyKSB7CiAgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVGV4dCgpOwogICAgICAgICB1
cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoKTsKICAgICB9IGVsc2UKLSAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgICAgICBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2
YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBIVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudDo6ZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IDg1MTA2YWQ0NDk5
NC4uYjNkMGViZDY1ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZv
cm1Db250cm9sRWxlbWVudC5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgaXNQbGFjZWhvbGRlckVtcHR5KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVBs
YWNlaG9sZGVyVGV4dCgpID0gMDsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZGlzYWJsZWRTdGF0ZUNoYW5nZWQoKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlYWRPbmx5U3RhdGVDaGFuZ2VkKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCAwYzk2M2RhN2I4Y2EuLmVkZGM5OGM4ZmYw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92
YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2QKICAgICAgICAgZG93bmNhc3Q8SFRNTE1l
ZGlhRWxlbWVudD4ob2xkUGFyZW50T2ZSZW1vdmVkVHJlZSkuZGlkUmVtb3ZlVGV4dFRyYWNrKCp0
aGlzKTsKIH0KIAotdm9pZCBIVE1MVHJhY2tFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFRy
YWNrRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAg
ICAgaWYgKG5hbWUgPT0gc3JjQXR0cikgewogICAgICAgICBzY2hlZHVsZUxvYWQoKTsKQEAgLTEx
Nyw3ICsxMTcsNyBAQCB2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAgIGVsc2UgaWYgKG5hbWUg
PT0gc3JjbGFuZ0F0dHIpCiAgICAgICAgIHRyYWNrKCkuc2V0TGFuZ3VhZ2UodmFsdWUpOwogCi0g
ICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBIVE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIGNvbnN0IEF0b21TdHJpbmcmIEhUTUxUcmFja0VsZW1l
bnQ6OmtpbmQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAppbmRleCAzZjQ0
ZTBhOGUxNGEuLmUyMjUxZTA0ZmI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBhY3RpdmVE
T01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCB2aXJ0dWFsSGFzUGVuZGluZ0Fj
dGl2aXR5KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9BbmNl
c3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgdm9pZCByZW1v
dmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBiYjQ4MTFhMjA5MjkuLmFm
MDRhY2QyOTQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBA
IC0xMzMsNyArMTMzLDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpoYXNQcmVzZW50YXRpb25h
bEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG4KICAgICByZXR1cm4gSFRN
TE1lZGlhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lKTsK
IH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYg
KG5hbWUgPT0gcG9zdGVyQXR0cikgewogICAgICAgICBpZiAoc2hvdWxkRGlzcGxheVBvc3Rlcklt
YWdlKCkpIHsKQEAgLTE0OCw3ICsxNDgsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogICAg
ICAgICB9CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBIVE1MTWVkaWFFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7ICAgIAorICAgICAgICBIVE1MTWVkaWFFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShXSVJFTEVT
U19QTEFZQkFDS19UQVJHRVQpCiAgICAgICAgIGlmIChuYW1lID09IHdlYmtpdGFpcnBsYXlBdHRy
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCmluZGV4IDkwZDI4NzhiZGNh
Yy4uZGY3ZmMyZmU4Y2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApA
QCAtMTI2LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVJlc2l6ZUV2ZW50
SWZTaXplQ2hhbmdlZCgpIGZpbmFsOwogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBS
ZW5kZXJTdHlsZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgZmluYWw7
Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wgaGFzUHJl
c2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJikgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYsIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmKSBmaW5hbDsKICAgICBib29sIGlzVmlkZW8oKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5kZXggOWQyYWI5
YThmNjg1Li45YTVlZWY3MzNjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9N
YXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVu
dC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdW5zaWduZWQgTWF0aE1MRWxlbWVudDo6cm93U3Bhbigp
IGNvbnN0CiAgICAgcmV0dXJuIHN0ZDo6bWF4KDF1LCBzdGQ6Om1pbihsaW1pdFRvT25seUhUTUxO
b25OZWdhdGl2ZShyb3dTcGFuVmFsdWUsIDF1KSwgbWF4Um93c3BhbikpOwogfQogCi12b2lkIE1h
dGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBocmVmQXR0cikg
ewogICAgICAgICBib29sIHdhc0xpbmsgPSBpc0xpbmsoKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCB2
b2lkIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAot
ICAgICAgICBTdHlsZWRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
ICAgIFN0eWxlZEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVl
LCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxFbGVtZW50LmgKaW5kZXggZTg4OTZhYWQzZGYxLi41MmYzZWZiYjQ2NWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgTWF0aE1MRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYsIENvbnN0cnVjdGlvblR5cGUgPSBDcmVhdGVNYXRoTUxFbGVtZW50
KTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29uc3QgTm9kZSYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTEZyYWN0aW9uRWxlbWVudC5jcHAKaW5kZXggOTg4MjlkMzFmNGRkLi5hMGE3OTM3MGU0
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxGcmFjdGlvbkVsZW1lbnQu
Y3BwCkBAIC0xMDksNyArMTA5LDcgQEAgTWF0aE1MRnJhY3Rpb25FbGVtZW50OjpGcmFjdGlvbkFs
aWdubWVudCBNYXRoTUxGcmFjdGlvbkVsZW1lbnQ6OmRlbm9taW5hdG9yQWxpZ24KICAgICByZXR1
cm4gY2FjaGVkRnJhY3Rpb25BbGlnbm1lbnQoZGVub21hbGlnbkF0dHIsIG1fZGVub21pbmF0b3JB
bGlnbm1lbnQpOwogfQogCi12b2lkIE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2
b2lkIE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gbGluZXRoaWNrbmVzc0F0dHIpCiAgICAgICAg
IG1fbGluZVRoaWNrbmVzcyA9IHN0ZDo6bnVsbG9wdDsKQEAgLTExOCw3ICsxMTgsNyBAQCB2b2lk
IE1hdGhNTEZyYWN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbQogICAgIGVsc2UgaWYgKG5hbWUgPT0gZGVub21hbGlnbkF0dHIp
CiAgICAgICAgIG1fZGVub21pbmF0b3JBbGlnbm1lbnQgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBN
YXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxG
cmFjdGlvbkVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxl
LCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTEZyYWN0aW9uRWxlbWVudC5oCmluZGV4IDY5NWM1ODEzMjE2OS4uNmMyMDJkOWViMGJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRnJhY3Rpb25FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEZyYWN0aW9uRWxlbWVudC5oCkBAIC00
Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MRnJhY3Rpb25FbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Jik7CiAgICAgUmVuZGVyUHRy
PFJlbmRlckVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25z
dCBSZW5kZXJUcmVlUG9zaXRpb24mKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBh
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikgZmluYWw7CiAKICAgICBGcmFjdGlvbkFsaWdubWVudCBjYWNoZWRGcmFjdGlvbkFsaWdu
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgc3RkOjpvcHRpb25hbDxGcmFjdGlvbkFsaWdubWVu
dD4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1hdGhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKaW5k
ZXggNTE1YzliOTU5NTQ3Li41ODczY2UxNDY1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1s
L01hdGhNTE1hdGhFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gTWF0aE1MTWF0aEVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJT
dHlsZSYmCiAgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVyPFJlbmRlck1hdGhNTE1hdGg+KCp0aGlz
LCBXVEZNb3ZlKHN0eWxlKSk7CiB9CiAKLXZvaWQgTWF0aE1MTWF0aEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBNYXRoTUxNYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgYm9vbCBtYXRoVmFyaWFudEF0dHJpYnV0ZSA9IG5hbWUgPT0gbWF0
aHZhcmlhbnRBdHRyOwogICAgIGlmIChtYXRoVmFyaWFudEF0dHJpYnV0ZSkKQEAgLTYzLDcgKzYz
LDcgQEAgdm9pZCBNYXRoTUxNYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKICAgICBpZiAoKG1hdGhWYXJpYW50QXR0cmli
dXRlKSAmJiByZW5kZXJlcigpKQogICAgICAgICBNYXRoTUxTdHlsZTo6cmVzb2x2ZU1hdGhNTFN0
eWxlVHJlZShyZW5kZXJlcigpKTsKIAotICAgIE1hdGhNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUs
IG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9p
ZCBNYXRoTUxNYXRoRWxlbWVudDo6ZGlkQXR0YWNoUmVuZGVyZXJzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTE1hdGhFbGVtZW50LmgKaW5kZXggMzVjOWMxZjY5ODY0Li5hYTY1MzBkMTE0
NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNYXRoRWxlbWVudC5oCkBAIC00MSw3
ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY29uc3RleHByIHN0YXRpYyBhdXRvIENy
ZWF0ZU1hdGhNTE1hdGhFbGVtZW50ID0gQ3JlYXRlTWF0aE1MUm93RWxlbWVudCB8IE5vZGVGbGFn
OjpIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3M7CiAgICAgTWF0aE1MTWF0aEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmKTsKLSAgICB2b2lkIHBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBkaWRBdHRhY2hSZW5kZXJlcnMoKSBm
aW5hbDsKIAogICAgIGJvb2wgYWNjZXB0c01hdGhWYXJpYW50QXR0cmlidXRlKCkgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1l
bmNsb3NlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MTWVuY2xvc2VF
bGVtZW50LmNwcAppbmRleCBjYTYyNGNjM2JkMTQuLjEyNGY5ZGI1M2FlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5jcHAKQEAgLTEzMywxMiAr
MTMzLDEyIEBAIGJvb2wgTWF0aE1MTWVuY2xvc2VFbGVtZW50OjpoYXNOb3RhdGlvbihNZW5jbG9z
ZU5vdGF0aW9uRmxhZyBub3RhdGlvbkZsYWcpCiAgICAgcmV0dXJuIG1fbm90YXRpb25GbGFncy52
YWx1ZSgpICYgbm90YXRpb25GbGFnOwogfQogCi12b2lkIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUpCit2b2lkIE1hdGhNTE1lbmNsb3NlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gbm90YXRpb25BdHRyKQog
ICAgICAgICBtX25vdGF0aW9uRmxhZ3MgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxSb3dF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MUm93RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGht
bC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxN
ZW5jbG9zZUVsZW1lbnQuaAppbmRleCAwNTA2YjVmMDAwZmYuLmUyODU1OWNlOWUzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE1lbmNsb3NlRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxNZW5jbG9zZUVsZW1lbnQuaApAQCAtNTksNyAr
NTksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1hdGhNTE1lbmNsb3NlRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVu
dD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQ
b3NpdGlvbiYpIGZpbmFsOwotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsK
ICAgICB2b2lkIHBhcnNlTm90YXRpb25BdHRyaWJ1dGUoKTsKICAgICB2b2lkIGNsZWFyTm90YXRp
b25zKCkgeyBtX25vdGF0aW9uRmxhZ3MgPSAwOyB9CiAgICAgdm9pZCBhZGROb3RhdGlvbihNZW5j
bG9zZU5vdGF0aW9uRmxhZyBub3RhdGlvbkZsYWcpIHsgbV9ub3RhdGlvbkZsYWdzLnZhbHVlKCkg
fD0gbm90YXRpb25GbGFnOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MT3BlcmF0b3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVy
YXRvckVsZW1lbnQuY3BwCmluZGV4IGQ5NzI4OGNkYzYzOS4uMTM4ZTEwNGFiNTEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MT3BlcmF0b3JFbGVtZW50LmNwcApAQCAtMjI5
LDcgKzIyOSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE1hdGhNTE9wZXJhdG9yRGljdGlvbmFy
eTo6RmxhZz4gYXR0cmlidXRlTmFtZVRvUHJvcGVydHlGbGFnCiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIAotdm9pZCBNYXRoTUxPcGVyYXRvckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBN
YXRoTUxPcGVyYXRvckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKQogewogICAgIGlmIChuYW1lID09IGZvcm1BdHRyKSB7CiAgICAgICAgIG1fZGljdGlvbmFy
eVByb3BlcnR5ID0gc3RkOjpudWxsb3B0OwpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgTWF0aE1M
T3BlcmF0b3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBNYXRoTUxUb2tlbkVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxUb2tlbkVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1MT3Bl
cmF0b3JFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiBzdHlsZSwg
Y29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxPcGVyYXRvckVsZW1lbnQuaAppbmRleCBlMWM5ZTY3NGNlNjguLmJiYTk1MTcxNTM3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTE9wZXJhdG9yRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxPcGVyYXRvckVsZW1lbnQuaApAQCAtNTYs
NyArNTYsNyBAQCBwcml2YXRlOgogICAgIE1hdGhNTE9wZXJhdG9yRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmKSBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPE9wZXJhdG9yQ2hhcj4gbV9vcGVyYXRvckNoYXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQYWRkZWRFbGVtZW50LmNwcAppbmRleCA5NGYyYzNl
MjIxMWMuLmI3NWJiYjk1OTkxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFBhZGRlZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQ
YWRkZWRFbGVtZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBjb25zdCBNYXRoTUxFbGVtZW50OjpM
ZW5ndGgmIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnZvZmZzZXQoKQogICAgIHJldHVybiBjYWNoZWRN
YXRoTUxMZW5ndGgoTWF0aE1MTmFtZXM6OnZvZmZzZXRBdHRyLCBtX3ZvZmZzZXQpOwogfQogCi12
b2lkIE1hdGhNTFBhZGRlZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBNYXRoTUxQYWRkZWRFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAo
bmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIG1fd2lkdGggPSBzdGQ6Om51bGxvcHQ7CkBAIC04
Niw3ICs4Niw3IEBAIHZvaWQgTWF0aE1MUGFkZGVkRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0CiAgICAgZWxzZSBpZiAobmFtZSA9
PSB2b2Zmc2V0QXR0cikKICAgICAgICAgbV92b2Zmc2V0ID0gc3RkOjpudWxsb3B0OwogCi0gICAg
TWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1hdGhNTEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gTWF0aE1M
UGFkZGVkRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUs
IGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFBhZGRlZEVsZW1lbnQuaAppbmRleCA2Mzk0Nzg5MWQ0MmMuLmVmY2ZhOWIyYzVlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFBhZGRlZEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUGFkZGVkRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MUGFkZGVkRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogCiAgICAgc3RkOjpvcHRpb25hbDxMZW5ndGg+IG1fd2lkdGg7CiAgICAgc3RkOjpvcHRpb25h
bDxMZW5ndGg+IG1faGVpZ2h0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFByZXNlbnRhdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TFByZXNlbnRhdGlvbkVsZW1lbnQuY3BwCmluZGV4IGIyZmVkNTIxYWU5My4uYWUyYzIyYWJlNmM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFByZXNlbnRhdGlvbkVs
ZW1lbnQuY3BwCkBAIC0zNjIsNyArMzYyLDcgQEAgc3RkOjpvcHRpb25hbDxNYXRoTUxFbGVtZW50
OjpNYXRoVmFyaWFudD4gTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6c3BlY2lmaWVkTWEKICAg
ICByZXR1cm4gbV9tYXRoVmFyaWFudC52YWx1ZSgpID09IE1hdGhWYXJpYW50OjpOb25lID8gc3Rk
OjpudWxsb3B0IDogbV9tYXRoVmFyaWFudDsKIH0KIAotdm9pZCBNYXRoTUxQcmVzZW50YXRpb25F
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBv
bGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgYm9vbCBtYXRoVmFyaWFu
dEF0dHJpYnV0ZSA9IG5hbWUgPT0gbWF0aHZhcmlhbnRBdHRyICYmIGFjY2VwdHNNYXRoVmFyaWFu
dEF0dHJpYnV0ZSgpOwogICAgIGlmIChtYXRoVmFyaWFudEF0dHJpYnV0ZSkKQEAgLTM3MCw3ICsz
NzAsNyBAQCB2b2lkIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgaWYgKChtYXRoVmFyaWFudEF0dHJp
YnV0ZSkgJiYgcmVuZGVyZXIoKSkKICAgICAgICAgTWF0aE1MU3R5bGU6OnJlc29sdmVNYXRoTUxT
dHlsZVRyZWUocmVuZGVyZXIoKSk7CiAKLSAgICBNYXRoTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5o
CmluZGV4IDc1NjFiOWYzMTE5NS4uNzUwODA0MzdlYTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MUHJlc2VudGF0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxQcmVzZW50YXRpb25FbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogcHJvdGVjdGVkOgogICAgIGNvbnN0ZXhwciBzdGF0aWMgYXV0byBDcmVhdGVNYXRo
TUxQcmVzZW50YXRpb25FbGVtZW50ID0gQ3JlYXRlTWF0aE1MRWxlbWVudDsKICAgICBNYXRoTUxQ
cmVzZW50YXRpb25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
JiwgQ29uc3RydWN0aW9uVHlwZSA9IENyZWF0ZU1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQpOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKIAogICAgIHN0YXRp
YyBib29sIGlzUGhyYXNpbmdDb250ZW50KGNvbnN0IE5vZGUmKTsKICAgICBzdGF0aWMgYm9vbCBp
c0Zsb3dDb250ZW50KGNvbnN0IE5vZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21h
dGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0
aE1MU2NyaXB0c0VsZW1lbnQuY3BwCmluZGV4IDA2NGVhMDg5ZjljYS4uNDQ5ZjNmZDFlODVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3JpcHRzRWxlbWVudC5jcHAKQEAg
LTc3LDE0ICs3NywxNCBAQCBjb25zdCBNYXRoTUxFbGVtZW50OjpMZW5ndGgmIE1hdGhNTFNjcmlw
dHNFbGVtZW50OjpzdXBlcnNjcmlwdFNoaWZ0KCkKICAgICByZXR1cm4gY2FjaGVkTWF0aE1MTGVu
Z3RoKHN1cGVyc2NyaXB0c2hpZnRBdHRyLCBtX3N1cGVyc2NyaXB0U2hpZnQpOwogfQogCi12b2lk
IE1hdGhNTFNjcmlwdHNFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgTWF0aE1MU2NyaXB0c0VsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IHN1YnNjcmlwdHNoaWZ0QXR0cikKICAgICAgICAgbV9zdWJzY3JpcHRTaGlmdCA9IHN0
ZDo6bnVsbG9wdDsKICAgICBlbHNlIGlmIChuYW1lID09IHN1cGVyc2NyaXB0c2hpZnRBdHRyKQog
ICAgICAgICBtX3N1cGVyc2NyaXB0U2hpZnQgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBNYXRoTUxF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgTWF0aE1MRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBNYXRoTUxTY3JpcHRz
RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0
IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwv
TWF0aE1MU2NyaXB0c0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTY3Jp
cHRzRWxlbWVudC5oCmluZGV4IDRhYTYzMmE4ZGE3MC4uY2M2OTQzOTE0NTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU2NyaXB0c0VsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBA
QCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IGNy
ZWF0ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRp
b24mKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICBjb25zdCBTY3JpcHRUeXBlIG1fc2NyaXB0VHlwZTsKICAgICBzdGQ6Om9wdGlv
bmFsPExlbmd0aD4gbV9zdWJzY3JpcHRTaGlmdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01h
dGhNTFNwYWNlRWxlbWVudC5jcHAKaW5kZXggZDU2ZTNhMDQwZDU5Li4xNDk3MzYyNTE4M2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuY3BwCkBAIC02Myw3
ICs2Myw3IEBAIGNvbnN0IE1hdGhNTEVsZW1lbnQ6Okxlbmd0aCYgTWF0aE1MU3BhY2VFbGVtZW50
OjpkZXB0aCgpCiAgICAgcmV0dXJuIGNhY2hlZE1hdGhNTExlbmd0aChNYXRoTUxOYW1lczo6ZGVw
dGhBdHRyLCBtX2RlcHRoKTsKIH0KIAotdm9pZCBNYXRoTUxTcGFjZUVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVl
KQordm9pZCBNYXRoTUxTcGFjZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IHdpZHRoQXR0cikKICAgICAgICAgbV93aWR0
aCA9IHN0ZDo6bnVsbG9wdDsKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBNYXRoTUxTcGFjZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHIKICAgICBlbHNlIGlmIChuYW1lID09IGRlcHRoQXR0cikKICAgICAgICAgbV9kZXB0aCA9IHN0
ZDo6bnVsbG9wdDsKIAotICAgIE1hdGhNTFByZXNlbnRhdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKKyAgICBNYXRoTUxQcmVzZW50YXRpb25FbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKTsKIH0KIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+IE1hdGhNTFNwYWNlRWxlbWVudDo6
Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU3Bh
Y2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MU3BhY2VFbGVtZW50LmgK
aW5kZXggZWQ1MjRhZGI1MmNjLi5mOTNjMjI1MjhhMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL21hdGhtbC9NYXRoTUxTcGFjZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MU3BhY2VFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBNYXRoTUxTcGFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQmKTsKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gY3JlYXRlRWxlbWVudFJl
bmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpIGZpbmFsOwot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAgIHN0ZDo6b3B0aW9u
YWw8TGVuZ3RoPiBtX3dpZHRoOwogICAgIHN0ZDo6b3B0aW9uYWw8TGVuZ3RoPiBtX2hlaWdodDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcApp
bmRleCAwNGZiMDEyNzkzZGYuLjM1NDY5ODA2NGU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L21hdGhtbC9NYXRoTUxVbmRlck92ZXJFbGVtZW50LmNwcApAQCAtNTgsMTQgKzU4LDE0IEBAIGNv
bnN0IE1hdGhNTEVsZW1lbnQ6OkJvb2xlYW5WYWx1ZSYgTWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6
YWNjZW50VW5kZXIoKQogICAgIHJldHVybiBjYWNoZWRCb29sZWFuQXR0cmlidXRlKGFjY2VudHVu
ZGVyQXR0ciwgbV9hY2NlbnRVbmRlcik7CiB9CiAKLXZvaWQgTWF0aE1MVW5kZXJPdmVyRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IGFjY2VudEF0dHIp
CiAgICAgICAgIG1fYWNjZW50ID0gc3RkOjpudWxsb3B0OwogICAgIGVsc2UgaWYgKG5hbWUgPT0g
YWNjZW50dW5kZXJBdHRyKQogICAgICAgICBtX2FjY2VudFVuZGVyID0gc3RkOjpudWxsb3B0Owog
Ci0gICAgTWF0aE1MRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIE1h
dGhNTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4g
TWF0aE1MVW5kZXJPdmVyRWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxl
JiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaAppbmRleCAxY2NjYWI3MGM3ODMuLjdiZTE3
OGQ0NzZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTFVuZGVyT3Zl
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MVW5kZXJPdmVyRWxl
bWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTWF0aE1MVW5k
ZXJPdmVyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYpOwog
ICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgZmluYWw7Ci0gICAgdm9pZCBwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFs
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogCiAgICAgc3RkOjpvcHRpb25hbDxCb29sZWFuVmFs
dWU+IG1fYWNjZW50OwogICAgIHN0ZDo6b3B0aW9uYWw8Qm9vbGVhblZhbHVlPiBtX2FjY2VudFVu
ZGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKaW5kZXggYTI5ZWQ4Zjg4ODVhLi5lY2E2
MzJjZTdhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtNzksOCArNzksMTAg
QEAgU3RyaW5nIFNWR0FFbGVtZW50Ojp0aXRsZSgpIGNvbnN0CiAgICAgcmV0dXJuIFNWR0VsZW1l
bnQ6OnRpdGxlKCk7CiB9CiAKLXZvaWQgU1ZHQUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdB
RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAg
U1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3Jh
cGhpY3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6dGFy
Z2V0QXR0cikgewogICAgICAgICBtX3RhcmdldC0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtODgsOSArOTAsNiBAQCB2b2lkIFNWR0FFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YQogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxMaXN0LT5hc3NvY2lh
dGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICB9Ci0KLSAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdVUklSZWZlcmVu
Y2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdBRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmgKaW5kZXggYzA4MzllNDVlM2UxLi40MTYzNjYwMDZmODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHByaXZhdGU6CiAKICAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0FFbGVt
ZW50LCBTVkdHcmFwaGljc0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVt
ZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJl
ZVBvc2l0aW9uJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmNwcAppbmRleCA5ODM2YWJiNGNlOTkuLmRjMzdkNzdhYTFiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCkBAIC05OCwxNSAr
OTgsMTQgQEAgYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aGFzVmFsaWRBdHRyaWJ1dGVO
YW1lKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTVkdBbmltYXRlTW90aW9u
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjphdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdBbmltYXRpb25FbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwYXRoQXR0cikg
ewogICAgICAgICBtX3BhdGggPSBidWlsZFBhdGhGcm9tU3RyaW5nKHZhbHVlKTsKICAgICAgICAg
dXBkYXRlQW5pbWF0aW9uUGF0aCgpOwotICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgU1ZH
QW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogICAgIAog
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OlJvdGF0ZU1vZGUgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1l
bnQ6OnJvdGF0ZU1vZGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVNb3Rpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1v
dGlvbkVsZW1lbnQuaAppbmRleCA4MmQ4OGEzNTJiM2MuLmI2ZjlhMjYyMWE4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmgKQEAgLTM5LDcgKzM5LDcg
QEAgcHJpdmF0ZToKICAgICBib29sIGhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAK
LSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHN0YXJ0QW5pbWF0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9uKFNWR0Vs
ZW1lbnQqIHRhcmdldEVsZW1lbnQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKaW5kZXggZDE1M2QxNGJiODZhLi4yZTEy
ZTc5NjY5ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNm
b3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50LmNwcApAQCAtNTQsNyArNTQsNyBAQCBib29sIFNWR0FuaW1hdGVUcmFuc2Zvcm1F
bGVtZW50OjpoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBTVkdBbmlt
YXRlRWxlbWVudEJhc2U6Omhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpOwogfQogCi12b2lkIFNWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHQW5pbWF0ZVRyYW5zZm9y
bUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0cikgewogICAgICAgICBtX3R5cGUgPSBTVkdU
cmFuc2Zvcm1hYmxlOjpwYXJzZVRyYW5zZm9ybVR5cGUodmFsdWUpLnZhbHVlX29yKFNWR1RyYW5z
Zm9ybVZhbHVlOjpTVkdfVFJBTlNGT1JNX1VOS05PV04pOwpAQCAtNjMsNyArNjMsNyBAQCB2b2lk
IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHQW5p
bWF0ZUVsZW1lbnRCYXNlOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogU3RyaW5nIFNWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50OjphbmltYXRlUmFuZ2VTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5o
CmluZGV4IDk4ZGE3MGUyNmQ2Zi4uNWFlNTc4NjFkMzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaApAQCAtNDAsNyArNDAsNyBAQCBwcml2
YXRlOgogICAgIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCYpOwogICAgIAogICAgIGJvb2wgaGFzVmFsaWRBdHRyaWJ1dGVUeXBlKCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIFN0
cmluZyBhbmltYXRlUmFuZ2VTdHJpbmcoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAKICAg
ICBTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3JtVHlwZSBtX3R5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKaW5kZXggMDcwOTg0MzUxNzU4Li4wN2E0
MDNhNTlmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAK
QEAgLTE2Myw4ICsxNjMsMTAgQEAgYm9vbCBTVkdBbmltYXRpb25FbGVtZW50OjphdHRyaWJ1dGVD
b250YWluc0phdmFTY3JpcHRVUkwoY29uc3QgQXR0cmlidXRlJiBhdHRyaWIKICAgICByZXR1cm4g
RWxlbWVudDo6YXR0cmlidXRlQ29udGFpbnNKYXZhU2NyaXB0VVJMKGF0dHJpYnV0ZSk7CiB9CiAK
LXZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0FuaW1hdGlvbkVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNW
R1NNSUxFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp2
YWx1ZXNBdHRyKSB7CiAgICAgICAgIC8vIFBlciB0aGUgU01JTCBzcGVjaWZpY2F0aW9uLCBsZWFk
aW5nIGFuZCB0cmFpbGluZyB3aGl0ZSBzcGFjZSwKICAgICAgICAgLy8gYW5kIHdoaXRlIHNwYWNl
IGJlZm9yZSBhbmQgYWZ0ZXIgc2VtaWNvbG9uIHNlcGFyYXRvcnMsIGlzIGFsbG93ZWQgYW5kIHdp
bGwgYmUgaWdub3JlZC4KQEAgLTIxNSw3ICsyMTcsNiBAQCB2b2lkIFNWR0FuaW1hdGlvbkVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHU01JTEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAppbmRl
eCBlZDFkNTRjMGQ1OWUuLmJkOWEyZWVhNzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5oCkBAIC04OCw3ICs4OCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICBi
b29sIGF0dHJpYnV0ZUNvbnRhaW5zSmF2YVNjcmlwdFVSTChjb25zdCBBdHRyaWJ1dGUmKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFN0cmluZyB0b1ZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAKaW5kZXggNjg5MTg4MTNlZjc3Li41Y2ZlM2NkNWNmNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTUwLDcgKzUwLDcgQEAgUmVmPFNW
R0NpcmNsZUVsZW1lbnQ+IFNWR0NpcmNsZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdDaXJjbGVFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJv
cjsKIApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbgogCiAgICAgcmVw
b3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAg
IFNWR0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0dlb21ldHJ5RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ2lyY2xlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCmluZGV4IGJkMjg0NGJlNTcwYi4uNmUzNDQ3
OGJiMTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHQ2lyY2xlRWxlbWVudCwgU1ZHR2VvbWV0cnlFbGVtZW50PjsKIAot
ICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAppbmRleCBlOGFmZmU3YWMyM2YuLmFk
MTA3NWRmYThjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
QEAgLTUwLDcgKzUwLDcgQEAgUmVmPFNWR0NsaXBQYXRoRWxlbWVudD4gU1ZHQ2xpcFBhdGhFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdDbGlwUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAot
dm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDbGlwUGF0aEVsZW1l
bnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChu
YW1lID09IFNWR05hbWVzOjpjbGlwUGF0aFVuaXRzQXR0cikgewogICAgICAgICBhdXRvIHByb3Bl
cnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6
ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU1ZHQ2xpcFBhdGhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pOwogfQogCiB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlw
UGF0aEVsZW1lbnQuaAppbmRleCBlYmQyMjcyNTgwOWEuLjBlOTBiNjc5NDY0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwcml2YXRl
OgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3Ry
eTxTVkdDbGlwUGF0aEVsZW1lbnQsIFNWR0dyYXBoaWNzRWxlbWVudD47CiAKLSAgICB2b2lkIHBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmlu
YWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAppbmRleCA3MjEw
MTg4ZDA4MmEuLjU5OWE1ZmUzM2YyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCkBAIC00Nyw3ICs0
Nyw3IEBAIFNWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OjpTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudChjb25zdCBRCiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAg
ICAgIENvbXBvbmVudFRyYW5zZmVyVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFp
dHM8Q29tcG9uZW50VHJhbnNmZXJUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC04Niw3ICs4
Niw3IEBAIHZvaWQgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudC5oCmluZGV4IGRiZmRjOWJlYzg3Ni4uZTdhZDM0MGI2M2E4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5j
dGlvbkVsZW1lbnQuaApAQCAtOTQsNyArOTQsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LCBTVkdFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAppbmRleCA1YzQ0MDU1ZTkwZmYuLjcyMGU2
OTY3MjI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcApAQCAtNTgs
NyArNTgsNyBAQCBTVkdDdXJzb3JFbGVtZW50Ojp+U1ZHQ3Vyc29yRWxlbWVudCgpCiAgICAgICAg
IGNsaWVudC0+Y3Vyc29yRWxlbWVudFJlbW92ZWQoKnRoaXMpOwogfQogCi12b2lkIFNWR0N1cnNv
ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdDdXJzb3JFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VF
cnJvciA9IE5vRXJyb3I7CiAKQEAgLTY5LDkgKzY5LDkgQEAgdm9pZCBTVkdDdXJzb3JFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2
YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7Ci0g
ICAgU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdVUklSZWZl
cmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKKyAgICBTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQog
CiB2b2lkIFNWR0N1cnNvckVsZW1lbnQ6OmFkZENsaWVudChTdHlsZUN1cnNvckltYWdlJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCmluZGV4IDNhZWFkMzcwNGY5OC4u
MDc2ZTEyYzA4YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKQEAgLTQ5
LDggKzQ5LDggQEAgcHJpdmF0ZToKICAgICBTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1By
b3BlcnR5T3duZXJSZWdpc3RyeTxTVkdDdXJzb3JFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdUZXN0
cywgU1ZHVVJJUmVmZXJlbmNlPjsKLSAgICAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisKKyAgICB2b2lkIGF0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVh
c29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIGZpbmFsOwogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCmluZGV4IDE3
NGFhZDhlY2Q2Yi4uOTc5MjE3Yzc5MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCkBA
IC00MTAsMjggKzQxMCw2IEBAIHZvaWQgU1ZHRWxlbWVudDo6c2V0Q29ycmVzcG9uZGluZ0VsZW1l
bnQoU1ZHRWxlbWVudCogY29ycmVzcG9uZGluZ0VsZW1lbnQpCiAgICAgICAgIGNvcnJlc3BvbmRp
bmdFbGVtZW50LT5lbnN1cmVTVkdSYXJlRGF0YSgpLmFkZEluc3RhbmNlKCp0aGlzKTsKIH0KIAot
dm9pZCBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKLXsKLSAgICBpZiAobmFtZSA9PSBIVE1MTmFtZXM6
OmNsYXNzQXR0cikgewotICAgICAgICBtX2NsYXNzTmFtZS0+c2V0QmFzZVZhbEludGVybmFsKHZh
bHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChuYW1lID09IEhUTUxOYW1l
czo6dGFiaW5kZXhBdHRyKSB7Ci0gICAgICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHkoc3RkOjpudWxsb3B0KTsKLSAgICAgICAgZWxzZSBp
ZiAoYXV0byBvcHRpb25hbFRhYkluZGV4ID0gcGFyc2VIVE1MSW50ZWdlcih2YWx1ZSkpCi0gICAg
ICAgICAgICBzZXRUYWJJbmRleEV4cGxpY2l0bHkob3B0aW9uYWxUYWJJbmRleC52YWx1ZSgpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGF1dG8mIGV2ZW50TmFtZSA9IEhUTUxFbGVt
ZW50OjpldmVudE5hbWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUobmFtZSk7Ci0gICAgaWYgKCFl
dmVudE5hbWUuaXNOdWxsKCkpIHsKLSAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWUsIG5hbWUsIHZhbHVlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQogYm9v
bCBTVkdFbGVtZW50OjpoYXZlTG9hZGVkUmVxdWlyZWRSZXNvdXJjZXMoKQogewogICAgIGZvciAo
YXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxTVkdFbGVtZW50PigqdGhpcykpIHsKQEAgLTYx
MSwxMyArNTg5LDI0IEBAIGJvb2wgU1ZHRWxlbWVudDo6Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJl
cihjb25zdCBOb2RlJiBjaGlsZCkgY29uc3QKICAgICByZXR1cm4gc3ZnQ2hpbGQuaXNWYWxpZCgp
OwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcm
IG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCit2b2lkIFNWR0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewotICAgIFN0eWxlZEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIG5ld1ZhbHVlKTsKKyAgICBT
dHlsZWRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIAogICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6
aWRBdHRyKQogICAgICAgICBkb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZWJ1aWxk
QWxsRWxlbWVudFJlZmVyZW5jZXNGb3JUYXJnZXQoKnRoaXMpOwotCisgICAgZWxzZSBpZiAobmFt
ZSA9PSBIVE1MTmFtZXM6OmNsYXNzQXR0cikgeworICAgICAgICBtX2NsYXNzTmFtZS0+c2V0QmFz
ZVZhbEludGVybmFsKHZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gSFRNTE5hbWVzOjp0
YWJpbmRleEF0dHIpIHsKKyAgICAgICAgaWYgKHZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHNldFRhYkluZGV4RXhwbGljaXRseShzdGQ6Om51bGxvcHQpOworICAgICAgICBlbHNlIGlmIChh
dXRvIG9wdGlvbmFsVGFiSW5kZXggPSBwYXJzZUhUTUxJbnRlZ2VyKHZhbHVlKSkKKyAgICAgICAg
ICAgIHNldFRhYkluZGV4RXhwbGljaXRseShvcHRpb25hbFRhYkluZGV4LnZhbHVlKCkpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGF1dG8mIGV2ZW50TmFtZSA9IEhUTUxFbGVtZW50OjpldmVudE5h
bWVGb3JFdmVudEhhbmRsZXJBdHRyaWJ1dGUobmFtZSk7CisgICAgICAgIGlmICghZXZlbnROYW1l
LmlzTnVsbCgpKQorICAgICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5h
bWUsIG5hbWUsIHZhbHVlKTsKKyAgICB9CiAgICAgLy8gQ2hhbmdlcyB0byB0aGUgc3R5bGUgYXR0
cmlidXRlIGFyZSBwcm9jZXNzZWQgbGF6aWx5IChzZWUgRWxlbWVudDo6Z2V0QXR0cmlidXRlKCkg
YW5kIHJlbGF0ZWQgbWV0aG9kcyksCiAgICAgLy8gc28gd2UgZG9uJ3Qgd2FudCBjaGFuZ2VzIHRv
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgdG8gcmVzdWx0IGluIGV4dHJhIHdvcmsgaGVyZSBleGNlcHQg
aW52YWxpZGF0ZUluc3RhbmNlcygpLgogICAgIGlmIChuYW1lID09IEhUTUxOYW1lczo6c3R5bGVB
dHRyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggOGZmYWRiZTRhNjFjLi4xOTE1YzZjYWQ1
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaApAQCAtMTc0LDcgKzE3NCw2IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIH5TVkdFbGVtZW50KCk7CiAKICAgICBib29sIHJlbmRlcmVySXNOZWVk
ZWQoY29uc3QgUmVuZGVyU3R5bGUmKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGZpbmlzaFBhcnNpbmdDaGlsZHJlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIG5ld1ZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gPSBNb2RpZmllZERpcmVjdGx5KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxs
aXBzZUVsZW1lbnQuY3BwCmluZGV4IDFiNDdmOGNlMmI1ZC4uZDdmMmMwMjFhYzU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVm
PFNWR0VsbGlwc2VFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIEQKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdFbGxpcHNl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0VsbGlwc2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0g
Tm9FcnJvcjsKIApAQCAtNjYsNyArNjYsNyBAQCB2b2lkIFNWR0VsbGlwc2VFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaQogCiAg
ICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsK
IAotICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0dlb21ldHJ5RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRWxsaXBz
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCmluZGV4IDkyNjAyY2YxZGNl
Ni4uZGEwYTEyNGFhY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBz
ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaApA
QCAtNDYsNyArNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9
IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdFbGxpcHNlRWxlbWVudCwgU1ZHR2VvbWV0cnlF
bGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2
b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAg
ICAgYm9vbCBpc1ZhbGlkKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQo
KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKaW5kZXggNzFmZjdk
Y2JiYmE2Li4xODhhOTg0NGI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVt
ZW50LmNwcApAQCAtNDgsOCArNDgsOCBAQCBSZWY8U1ZHRkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxl
bmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFQmxlbmRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9Ci0gICAgCi12b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKKwordm9pZCBT
VkdGRUJsZW5kRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1vZGVBdHRyKSB7CiAgICAgICAgIEJsZW5k
TW9kZSBtb2RlID0gQmxlbmRNb2RlOjpOb3JtYWw7CkBAIC02OCw3ICs2OCw3IEBAIHZvaWQgU1ZH
RkVCbGVuZEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsK
KyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5n
ZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwog
fQogCiBib29sIFNWR0ZFQmxlbmRFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmls
dGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAppbmRleCBjZjUxNDYxYWFiYzcuLmNhMWY4Y2M1
NDU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgKQEAgLTY1LDcgKzY1
LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0
eU93bmVyUmVnaXN0cnk8U1ZHRkVCbGVuZEVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVm
ZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IGU1MTkyMzZh
MjI4ZC4uNjIyZjIzOGIzODI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKQEAgLTU4LDggKzU4LDEwIEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQ6OmlzSW52YWxpZFZhbHVlc0xlbmd0aCgpIGNvbnN0CiAgICAgICAgIHx8IChmaWx0
ZXJUeXBlID09IEZFQ09MT1JNQVRSSVhfVFlQRV9TQVRVUkFURSAgJiYgc2l6ZSAhPSAxKTsKIH0K
IAotdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnR5cGVBdHRyKSB7CiAgICAgICAgIGF1dG8g
cHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPENvbG9yTWF0cml4VHlwZT46OmZyb21T
dHJpbmcodmFsdWUpOwogICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSA+IDApCkBAIC03Niw4ICs3
OCw2IEBAIHZvaWQgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0CiAgICAgICAgIG1fdmFsdWVzLT5iYXNlVmFs
KCktPnBhcnNlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
OwogfQogCiBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRy
aWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAppbmRleCAy
YWE2YjMxNDMwNzcuLjJiNTliZmMzNTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmgKQEAgLTgzLDcgKzgzLDcgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgaXNJbnZhbGlkVmFsdWVzTGVuZ3RoKCkgY29uc3Q7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0
QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1l
bnQuY3BwCmluZGV4IGY2MDIxYWQ0NjU3ZS4uZmM1NWQ3OWY2MzEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKQEAgLTUx
LDE0ICs1MSwxNCBAQCBSZWY8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IFNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUQogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKLXZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewog
ICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJp
YnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVDb21wb25lbnRUcmFuc2Zl
ckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2Zl
ckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5oCmluZGV4IGJmNWFkOWQwNTJlYy4uM2UzNGYwMTJlM2EzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaApAQCAtNDYsNyAr
NDYsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3Bl
cnR5T3duZXJSZWdpc3RyeTxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudCwgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgVmVjdG9yPEF0b21TdHJpbmc+IGZpbHRl
ckVmZmVjdElucHV0c05hbWVzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4geyBBdG9tU3RyaW5n
IHsgaW4xKCkgfSB9OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwCmluZGV4IGVlOTQxZGM0ODg3OS4uZTY2NDZmMDA4ZDI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtNTIsNyArNTIsNyBAQCBSZWY8
U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFQ29tcG9z
aXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFQ29tcG9zaXRl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6YXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
biBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6Om9wZXJhdG9yQXR0cikgewogICAgICAgICBDb21wb3NpdGVPcGVyYXRpb25UeXBlIHByb3Bl
cnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxDb21wb3NpdGVPcGVyYXRpb25UeXBlPjo6ZnJv
bVN0cmluZyh2YWx1ZSk7CkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgU1ZHRkVDb21wb3NpdGVFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQ
cmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFs
dWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIFNWR0ZF
Q29tcG9zaXRlRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYg
ZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAppbmRleCA2ZjVlZmI3NjYzMWQuLjIyMjM2ODBjNWM1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaApAQCAtMTAx
LDcgKzEwMSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZH
UHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFQ29tcG9zaXRlRWxlbWVudCwgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKaW5kZXgg
NTQ5ZjI1ZmRiNjgyLi40NDljZmIzOWFjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBSZWY8U1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaQogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5h
bWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVy
bmFsKHZhbHVlKTsKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdAog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVl
LCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVj
dCYgZWZmZWN0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgKaW5kZXggNjk3ZDBlYzE3NTRl
Li4xNmViMmM0NjE5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudC5oCkBAIC05OSw3ICs5OSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0g
ICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZh
bHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZp
ZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVE
aWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQuY3BwCmluZGV4IGVjOGM2MjAzNTQxYy4uMjhhZTI4NGM3ZWY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaQogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUp
Cit2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikg
ewogICAgICAgICBtX2luMS0+c2V0QmFzZVZhbEludGVybmFsKHZhbHVlKTsKQEAgLTc2LDcgKzc2
LDcgQEAgdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6
YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbik7CiB9CiAKIGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiBlZmZlY3QsIGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlm
ZnVzZUxpZ2h0aW5nRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oCmluZGV4IGQ0MWE2ODdhZTkzZC4uY2NhMmMwZmQwZjA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCkBAIC01
Miw4ICs1Miw4IEBAIHByaXZhdGU6CiAgICAgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdp
c3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1l
bnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47Ci0gICAgCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IG92ZXJyaWRlOworCisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wg
c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3Bs
YWNlbWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2Vt
ZW50TWFwRWxlbWVudC5jcHAKaW5kZXggYzVjMGVhMjE1M2JlLi45ODcxZmM4M2M0MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3Bw
CkBAIC00OSw3ICs0OSw3IEBAIFJlZjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IFNWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLXZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3Zv
aWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eENoYW5uZWxTZWxl
Y3RvckF0dHIpIHsKICAgICAgICAgYXV0byBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlUcmFp
dHM8Q2hhbm5lbFNlbGVjdG9yVHlwZT46OmZyb21TdHJpbmcodmFsdWUpOwpAQCAtODAsNyArODAs
NyBAQCB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29ucwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjph
dHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKTsKIH0KIAogYm9vbCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNw
bGFjZW1lbnRNYXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1l
bnRNYXBFbGVtZW50LmgKaW5kZXggNzJiMmM0YzU0ZTVlLi5iMjE3YmVlZmQ4Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmgKQEAgLTg2
LDcgKzg2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LCBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAg
IHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0
cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0
dHJpYnV0ZShGaWx0ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAK
aW5kZXggMzBlMzEyZDVmM2ZiLi5jMjY0YTllODc0NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBTVkdG
RURyb3BTaGFkb3dFbGVtZW50OjpzZXRTdGREZXZpYXRpb24oZmxvYXQgeCwgZmxvYXQgeSkKICAg
ICB1cGRhdGVTVkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKIH0KIAotdm9pZCBTVkdGRURy
b3BTaGFkb3dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpIHsKICAgICAgICAgaWYgKGF1dG8gcmVzdWx0
ID0gcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcih2YWx1ZSkpIHsKQEAgLTgyLDcgKzgyLDcgQEAg
dm9pZCBTVkdGRURyb3BTaGFkb3dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5oCmluZGV4IDc0NmY3MTgzMDAxNy4uM2UyMDA3MTg2N2I1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVEcm9wU2hhZG93RWxlbWVudCwgU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcm
IG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmNwcAppbmRleCA2OTEx
YjM5OTgzMTcuLjU4MDEzOWQxM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgdm9pZCBTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnQ6OnNldFN0ZERldmlhdGlvbihmbG9hdCB4LCBmbG9hdCB5KQogICAgIHVw
ZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5nZSgpOwogfQogCi12b2lkIFNWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnN0ZERldmlhdGlvbkF0dHIpIHsKICAgICAgICAgaWYgKGF1dG8gcmVzdWx0
ID0gcGFyc2VOdW1iZXJPcHRpb25hbE51bWJlcih2YWx1ZSkpIHsKQEAgLTgwLDcgKzgwLDcgQEAg
dm9pZCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpOworICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCmluZGV4IDg0Y2ExNTlkOGIyNi4uMjE1Yjdk
ZjU2NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVu
dC5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lz
dHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCwg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJF
ZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggMDIzM2M3
NzIxOTVlLi4zYmUwNzM1MGNlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcApAQCAtMTE0LDE1ICsxMTQsMTUgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6YnVp
bGRQZW5kaW5nUmVzb3VyY2UoKQogICAgIHVwZGF0ZVNWR1JlbmRlcmVyRm9yRWxlbWVudENoYW5n
ZSgpOwogfQogCi12b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVJ
bWFnZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewor
ICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNW
R0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBp
ZiAobmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAg
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5zZXRCYXNlVmFsSW50ZXJuYWwoU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbHVlIHsgdmFsdWUgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKLSAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKIH0KIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmgKaW5kZXggZDczMzYwZTRiNWU2Li4yMWE5NTgzMmMzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHByaXZhdGU6CiAKICAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFSW1h
Z2VFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMsIFNWR1VSSVJl
ZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UmLCBjb25zdCBO
ZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVs
ZW1lbnQuY3BwCmluZGV4IDZiZjJlNjdlNjNmMS4uNjdmNWE4YjU2ODJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgU1ZHRkVMaWdo
dEVsZW1lbnQqIFNWR0ZFTGlnaHRFbGVtZW50OjpmaW5kTGlnaHRFbGVtZW50KGNvbnN0IFNWR0Vs
ZW1lbnQqIHN2Z0VsZW0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBTVkdGRUxpZ2h0
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFTGlnaHRFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
YXppbXV0aEF0dHIpIHsKICAgICAgICAgbV9hemltdXRoLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFs
dWUudG9GbG9hdCgpKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFNWR0ZFTGlnaHRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwg
b2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lk
IFNWR0ZFTGlnaHRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuaAppbmRleCAy
YWU1ZDk4YzVmMTguLmQyYjU4M2UxYjk4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTGlnaHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRF
bGVtZW50LmgKQEAgLTY1LDcgKzY1LDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0ZFTGlnaHRF
bGVtZW50LCBTVkdFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
KSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hh
bmdlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5jcHAKaW5kZXggNzNlNzBiMDIyYWIxLi4yYTk1YzgxNjc5MjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCkBAIC00OCwxNCArNDgsMTQgQEAg
UmVmPFNWR0ZFTWVyZ2VOb2RlRWxlbWVudD4gU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRU1l
cmdlTm9kZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRU1lcmdl
Tm9kZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNW
R05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZv
aWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
TWVyZ2VOb2RlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oCmluZGV4IGFhM2NmOWZkMDE3Mi4uNDAyM2UzZjRiYWI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5oCkBAIC0zOCw3ICszOCw3IEBAIHByaXZhdGU6
CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCwgU1ZHRWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7Cisg
ICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25z
dCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKaW5kZXggODFkNmI3MTgxOWRkLi5iYWZj
MmVjOGZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVu
dC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmPFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ+IFNWR0ZF
TW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJgogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKIH0KIAotdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
RkVNb3JwaG9sb2d5RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om9wZXJhdG9yQXR0cikgewogICAgICAg
ICBNb3JwaG9sb2d5T3BlcmF0b3JUeXBlIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0
czxNb3JwaG9sb2d5T3BlcmF0b3JUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC03MSw3ICs3
MSw3IEBAIHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRl
KG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiBib29sIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQu
aAppbmRleCBhZTNiNGY2NzE3MmIuLjEyZTE4YjM2ZGIyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAK
ICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R0ZFTW9ycGhvbG9neUVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
IAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCYsIGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudC5jcHAKaW5kZXggNjg0YzljZGYyMTJjLi4zMmI1MDhiNjRkMzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQuY3BwCkBAIC00OCw3ICs0OCw3IEBAIFJlZjxT
VkdGRU9mZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVPZmZzZXRF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRkVPZmZzZXRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0
ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6ZHhBdHRy
KSB7CiAgICAgICAgIG1fZHgtPnNldEJhc2VWYWxJbnRlcm5hbCh2YWx1ZS50b0Zsb2F0KCkpOwpA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdGRU9mZnNldEVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKaW5kZXggZTQ4ZDEyZGE4N2JiLi5iOWJhMDUw
NzIyYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgKQEAgLTQzLDcg
KzQzLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVPZmZzZXRFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVT
dGFuZGFyZEF0dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
IG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0
ZXJFZmZlY3QmLCBjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggYTcy
ZjExNzczOGFmLi40ZDk3OGRmY2ZhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUmVmPFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWEKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHRkVTcGVj
dWxhckxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKICAgICAgICAgbV9pbjEtPnNldEJhc2VW
YWxJbnRlcm5hbCh2YWx1ZSk7CkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdGaWx0
ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiBib29sIFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0
ZXJFZmZlY3QmIGVmZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAppbmRleCA4
YjExYjU5NDRjYTguLjJlZjNkMjcwYmQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6
CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
PFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcz47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBv
dmVycmlkZTsKIAogICAgIGJvb2wgc2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVj
dCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcAppbmRleCBjODQ2MWZmNDZiMDIuLmJkMGJkNTMyNmYyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcApAQCAtNDYsMTQgKzQ2LDE0IEBAIFJl
ZjxTVkdGRVRpbGVFbGVtZW50PiBTVkdGRVRpbGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRkVUaWxl
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlKQordm9pZCBTVkdGRVRpbGVFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7
CiAgICAgICAgIG1faW4xLT5zZXRCYXNlVmFsSW50ZXJuYWwodmFsdWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0
cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdGRVRpbGVFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKaW5kZXggM2M3NWRlYzkwYzFhLi4xNmFkZWU4OGE1
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuaApAQCAtMzgsNyArMzgsNyBA
QCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeTxTVkdGRVRpbGVFbGVtZW50LCBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXM+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3Zl
cnJpZGU7CiAKICAgICBWZWN0b3I8QXRvbVN0cmluZz4gZmlsdGVyRWZmZWN0SW5wdXRzTmFtZXMo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IEF0b21TdHJpbmcgeyBpbjEoKSB9IH07IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcAppbmRleCA2ZWQ1
NWM4YjgzM2UuLjhiMDMxZGE0OGQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1
cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtNTEsOCArNTEsMTAgQEAgUmVmPFNWR0ZFVHVyYnVsZW5j
ZUVsZW1lbnQ+IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzOjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjp0eXBlQXR0
cikgewogICAgICAgICBUdXJidWxlbmNlVHlwZSBwcm9wZXJ0eVZhbHVlID0gU1ZHUHJvcGVydHlU
cmFpdHM8VHVyYnVsZW5jZVR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKICAgICAgICAgaWYgKHBy
b3BlcnR5VmFsdWUgIT0gVHVyYnVsZW5jZVR5cGU6OlVua25vd24pCkBAIC04NCw4ICs4Niw2IEBA
IHZvaWQgU1ZHRkVUdXJidWxlbmNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvCiAgICAgICAgIG1fbnVtT2N0YXZlcy0+c2V0QmFzZVZh
bEludGVybmFsKHBhcnNlSW50ZWdlcjx1bnNpZ25lZD4odmFsdWUpLnZhbHVlX29yKDApKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0
cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiBib29sIFNWR0ZFVHVy
YnVsZW5jZUVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QmIGVm
ZmVjdCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAppbmRleCAwYWIwYTliNWM4ODcuLjg0NTlmOGVmYmNi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCkBAIC0x
MTQsNyArMTE0LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBT
VkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVUdXJidWxlbmNlRWxlbWVudCwgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzZXRGaWx0ZXJFZmZlY3RBdHRy
aWJ1dGUoRmlsdGVyRWZmZWN0JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCmluZGV4IGJlZDQzMjZj
MWUzYy4uNGUwNDFhYzc5Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwCkBAIC02Myw3ICs2Myw3IEBAIFJlZjxTVkdGaWx0ZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHRmlsdGVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQog
Ci12b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdGaWx0ZXJFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJz
aW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTg2LDggKzg2LDggQEAgdm9pZCBT
VkdGaWx0ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJz
ZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwg
dmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIHZvaWQgU1ZHRmlsdGVy
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDgyMzZhYzRmMmQ1Ny4u
MzVlYTc5NGE5MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKQEAgLTUz
LDcgKzUzLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRmlsdGVyRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHVVJJ
UmVmZXJlbmNlPjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAg
ICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwog
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5jcHAKaW5kZXggMzY0ODViZDQ4ZWVmLi40MmE3NmE0ZmQzNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMuY3BwCkBAIC00Niw3ICs0Niw3IEBAIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlczo6U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzKGNv
bnN0CiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzOjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBTVkdQYXJz
aW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTYzLDcgKzYzLDcgQEAgdm9pZCBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJz
ZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAKIE9wdGlvblNl
dDxGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M+IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlczo6ZWZmZWN0R2VvbWV0cnlGbGFncygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgK
aW5kZXggNDhkMDY0NTZmMGRkLi4yM2M1MTI2M2Q0OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAg
LTY2LDcgKzY2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcyhjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBVbmlx
dWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICB2b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25z
dCBDaGlsZENoYW5nZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJpbWl0aXZlQXR0cmlidXRlT25D
aGlsZENoYW5nZWQoY29uc3QgRWxlbWVudCYsIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAKaW5kZXggZGIzOTU0YzRiOGU5Li4z
MTk2ZWE2MTdmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3Bw
CkBAIC03Miw3ICs3Miw3IEBAIFJlZjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHRm9udEZhY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAK
LXZvaWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRm9udEZhY2VFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsgICAgCiAgICAg
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlkID0gY3NzUHJvcGVydHlJZEZvclNWR0F0dHJpYnV0ZU5h
bWUobmFtZSk7CiAgICAgaWYgKHByb3BlcnR5SWQgPiAwKSB7CkBAIC05NCw3ICs5NCw3IEBAIHZv
aWQgU1ZHRm9udEZhY2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
U1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6
OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pOwogfQogCiB1bnNpZ25lZCBTVkdGb250RmFjZUVsZW1lbnQ6OnVuaXRzUGVy
RW0oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCmluZGV4IGFj
MTkwZmViNTkwMi4uMTQ1N2ZlMDQ2ZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
RWxlbWVudC5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgU1ZHRm9udEZhY2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogICAgIH5TVkdGb250RmFjZUVs
ZW1lbnQoKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9t
U3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKIAogICAg
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CiAgICAgSW5z
ZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlw
ZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZh
Y2VVcmlFbGVtZW50LmNwcAppbmRleCA4OTAwZjY5MTkxM2MuLjU3OTc0ZmNlNjFjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKQEAgLTY2LDEyICs2
NiwxMSBAQCBSZWY8Q1NTRm9udEZhY2VTcmNSZXNvdXJjZVZhbHVlPiBTVkdGb250RmFjZVVyaUVs
ZW1lbnQ6OmNyZWF0ZVNyY1ZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gQ1NTRm9udEZhY2VTcmNS
ZXNvdXJjZVZhbHVlOjpjcmVhdGUoV1RGTW92ZShsb2NhdGlvbiksIGZvcm1hdC5pc0VtcHR5KCkg
PyAic3ZnIl9zIDogZm9ybWF0LnN0cmluZygpLCBMb2FkZWRGcm9tT3BhcXVlU291cmNlOjpObyk7
CiB9CiAKLXZvaWQgU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRm9u
dEZhY2VVcmlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwg
QXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikK
IHsKKyAgICBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1
ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1l
czo6aHJlZkF0dHIgfHwgbmFtZSA9PSBYTGlua05hbWVzOjpocmVmQXR0cikKICAgICAgICAgbG9h
ZEZvbnQoKTsKLSAgICBlbHNlCi0gICAgICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdGb250RmFjZVVyaUVsZW1lbnQ6OmNoaWxkcmVuQ2hh
bmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5oCmluZGV4IGJiYTY2ODFhNmM3MC4uNmE4NTZmN2ZmYmRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCkBAIC0zOCw4ICszOCw4
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTVkdGb250RmFjZVVyaUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Ci0gICAgCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworCisgICAg
dm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRD
aGFuZ2UmKSBmaW5hbDsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZElu
dG9BbmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgZmluYWw7CiAgICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3Bw
CmluZGV4IGVlOThjMGE2NjEwZi4uNzlhNzFmMDQwMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFNW
R0ZvcmVpZ25PYmplY3RFbGVtZW50PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNWR1BhcnNpbmdFcnJv
ciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFNWR0ZvcmVp
Z25PYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdAogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9yKHBhcnNlRXJyb3Is
IG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiB9CiAK
IHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5oCmluZGV4IDZiMzQ1MTg5MGMzNS4uZTA4NGM5ZmVlMjAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeTxTVkdGb3JlaWduT2JqZWN0RWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50
PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0
IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogCiAgICAgYm9v
bCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IFJlbmRlclN0eWxlJikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCmluZGV4IGU4NzdkZTMxNDQxNC4uNTZkNzZi
ZmI4M2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcApAQCAt
MTMzLDE2ICsxMzMsMTUgQEAgYm9vbCBTVkdHZW9tZXRyeUVsZW1lbnQ6OmlzUG9pbnRJblN0cm9r
ZShET01Qb2ludEluaXQmJiBwb2ludEluaXQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lk
IFNWR0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0dlb21ldHJ5RWxlbWVudDo6
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHR3JhcGhp
Y3NFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKKwogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjpwYXRo
TGVuZ3RoQXR0cikgewogICAgICAgICBtX3BhdGhMZW5ndGgtPnNldEJhc2VWYWxJbnRlcm5hbCh2
YWx1ZS50b0Zsb2F0KCkpOwogICAgICAgICBpZiAobV9wYXRoTGVuZ3RoLT5iYXNlVmFsKCkgPCAw
KQogICAgICAgICAgICAgZG9jdW1lbnQoKS5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0RXJy
b3IoIkEgbmVnYXRpdmUgdmFsdWUgZm9yIHBhdGggYXR0cmlidXRlIDxwYXRoTGVuZ3RoPiBpcyBu
b3QgYWxsb3dlZCJfcyk7Ci0gICAgICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdHZW9t
ZXRyeUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmgKaW5kZXggNjkxYjE5
MDIwM2VhLi43Zjc1OTE1NThkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
ZW9tZXRyeUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVt
ZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNWR0dlb21l
dHJ5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBVbmlxdWVSZWY8U1ZH
UHJvcGVydHlSZWdpc3RyeT4mJik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dseXBo
UmVmRWxlbWVudC5jcHAKaW5kZXggNmI1NDNjMWVhZmVkLi41NGUzYWE0YTI2NzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHN0
YXRpYyBmbG9hdCBwYXJzZUZsb2F0KGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogICAgIHJldHVy
biBwYXJzZU51bWJlcih2YWx1ZSkudmFsdWVfb3IoMCk7CiB9CiAKLXZvaWQgU1ZHR2x5cGhSZWZF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR2x5cGhSZWZFbGVtZW50OjphdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVl
LCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0
dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICAvLyBGSVhNRTogSXMgdGhlIGVycm9y
IGhhbmRsaW5nIGluIHBhcnNlRmxvYXQgY29ycmVjdCBmb3IgdGhlc2UgYXR0cmlidXRlcz8KICAg
ICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgU1ZH
R2x5cGhSZWZFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyCiAgICAgICAgIG1fZHkgPSBwYXJzZUZsb2F0KHZhbHVlKTsKICAgICBl
bHNlIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSk7Ci0gICAgICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICAgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUs
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKaW5kZXggMGYyN2Y2YmFiMWUyLi44NmFjNTJjMTA3Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHbHlwaFJlZkVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2x5cGhSZWZFbGVtZW50LmgKQEAgLTQ2LDcgKzQ2LDcg
QEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHR2x5cGhSZWZFbGVtZW50LCBTVkdFbGVtZW50LCBTVkdVUklSZWZlcmVu
Y2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29u
c3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICBmbG9hdCBtX3ggeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuY3BwCmluZGV4IDVmMzYyOTJjMDczNy4uZWY2NDVmYjhkOGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcApAQCAtNDksNyArNDksNyBAQCBTVkdH
cmFkaWVudEVsZW1lbnQ6OlNWR0dyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCYgZAogICAgIH0pOwogfQogCi12b2lkIFNWR0dyYWRpZW50RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUpCit2b2lkIFNWR0dyYWRpZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmdyYWRp
ZW50VW5pdHNBdHRyKSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5
VHJhaXRzPFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAg
LTcwLDggKzcwLDggQEAgdm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAg
ICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKaW5kZXggOTYzZjYwNzZkZDIwLi4yMzIxNTk4ZTE0
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmgKQEAgLTk0LDcgKzk0
LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNWR0dyYWRpZW50RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBVbmlxdWVSZWY8U1ZHUHJvcGVydHlSZWdpc3RyeT4m
Jik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5k
ZXggNmMxMjQ2ZTliODNmLi4xMjBiODk1YzE3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
cmFwaGljc0VsZW1lbnQuY3BwCkBAIC0xMjksMTUgKzEyOSwxNCBAQCBBZmZpbmVUcmFuc2Zvcm0q
IFNWR0dyYXBoaWNzRWxlbWVudDo6ZW5zdXJlU3VwcGxlbWVudGFsVHJhbnNmb3JtKCkKICAgICBy
ZXR1cm4gbV9zdXBwbGVtZW50YWxUcmFuc2Zvcm0uZ2V0KCk7CiB9CiAKLXZvaWQgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZh
bHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29u
IGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdUZXN0czo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFt
ZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogICAgIGlm
IChuYW1lID09IFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKSB7CiAgICAgICAgIG1fdHJhbnNmb3Jt
LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAg
IFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdUZXN0czo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQogCiB2b2lkIFNWR0dyYXBoaWNzRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaAppbmRleCBmM2ZiYTYzNjI2MWQuLjI3
OTJhOGUxOTkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuaApAQCAt
NzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIFVuaXF1ZVJlZjxTVkdQcm9wZXJ0eVJl
Z2lzdHJ5PiYmKTsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlk
ZTsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZGlkQXR0YWNoUmVuZGVyZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggZTkzYzgxZTdhM2UxLi43ZGMxNDdl
MjM3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC04OSw4ICs4
OSwxMCBAQCBib29sIFNWR0ltYWdlRWxlbWVudDo6cmVuZGVyaW5nVGFpbnRzT3JpZ2luKCkgY29u
c3QKICAgICByZXR1cm4gaW1hZ2UgJiYgaW1hZ2UtPnJlbmRlcmluZ1RhaW50c09yaWdpbigpOwog
fQogCi12b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0ltYWdlRWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZHVVJJ
UmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVB
c3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvLT5zZXRCYXNl
VmFsSW50ZXJuYWwoU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIHsgdmFsdWUgfSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTEwOCw5ICsxMTAsNiBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwog
ICAgICAgICBtX2hlaWdodC0+c2V0QmFzZVZhbEludGVybmFsKFNWR0xlbmd0aFZhbHVlOjpjb25z
dHJ1Y3QoU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvciwgU1ZHTGVuZ3Ro
TmVnYXRpdmVWYWx1ZXNNb2RlOjpGb3JiaWQpKTsKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7Ci0KLSAgICBTVkdHcmFwaGljc0VsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKLSAgICBTVkdVUklSZWZlcmVuY2U6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAogdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKaW5kZXggYTJhZWZmZjQ3ZDcyLi5kNDcwZjlmZDIyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHJp
dmF0ZToKICAgICAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25l
clJlZ2lzdHJ5PFNWR0ltYWdlRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdVUklSZWZl
cmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZv
aWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAg
ICB2b2lkIGRpZEF0dGFjaFJlbmRlcmVycygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
RWxlbWVudC5jcHAKaW5kZXggOGJjM2U1Y2RiYTgyLi45Y2I5YzNlOTI5OGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8U1ZHTGluZUVs
ZW1lbnQ+IFNWR0xpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbgogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xpbmVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9p
ZCBTVkdMaW5lRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUs
IEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
CiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC02Niw3
ICs2Niw3IEBAIHZvaWQgU1ZHTGluZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQ
YXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR2VvbWV0cnlF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVt
ZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9k
aWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmgKaW5kZXggNjZkZTg1YmEzZTdkLi5iNGQ2MWQ0NGM1OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lRWxlbWVudC5oCkBAIC00Niw3ICs0Niw3IEBAIHByaXZhdGU6CiAKICAgICB1
c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR0xpbmVF
bGVtZW50LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuY3BwCmluZGV4IDE1ZmQyZDg4YTY2OS4uZmQ5NGRmOWQwYjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcApA
QCAtNjAsNyArNjAsNyBAQCBSZWY8U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50PiBTVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYQogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwog
fQogCi12b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR0xp
bmVhckdyYWRpZW50RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pCiB7CiAgICAgU1ZHUGFyc2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC03
NSw3ICs3NSw3IEBAIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBCiAKICAgICByZXBvcnRBdHRyaWJ1
dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhZGll
bnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhZGllbnRF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggZTMxYmU0
ZmFiMzc1Li5kNDhjNjE2ZGM5MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
aW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFy
R3JhZGllbnRFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5n
IFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50LCBTVkdHcmFkaWVudEVsZW1lbnQ+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJQdHI8UmVuZGVyRWxl
bWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRlclRy
ZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNw
cAppbmRleCAxZDRjODY0NzlkZDYuLmJiMDg5MTdkMjRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01QYXRoRWxlbWVudC5jcHAKQEAgLTk4LDEwICs5OCwxMCBAQCB2b2lkIFNWR01QYXRoRWxlbWVu
dDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSByZW1vdmFsVHlwZSwgQ29udGFpbmVy
Tm9kZQogICAgICAgICBjbGVhclJlc291cmNlUmVmZXJlbmNlcygpOwogfQogCi12b2lkIFNWR01Q
YXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR01QYXRoRWxlbWVudDo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R01QYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAppbmRleCBjNzNmMmUxODdj
MTIuLmVhZTI4MjUxZTE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRo
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaApAQCAt
NDQsNyArNDQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNpbmcgUHJvcGVydHlSZWdpc3RyeSA9IFNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdNUGF0aEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VS
SVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsK
IAogICAgIHZvaWQgYnVpbGRQZW5kaW5nUmVzb3VyY2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAppbmRleCA2MjZjNTYwMWZhYzEuLmZmNTk1OWI3MWY1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBA
QCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTWFya2VyRWxlbWVudDo6dmlld0JveFRvVmlld1RyYW5zZm9y
bShmbG9hdCB2aWV3V2lkdGgsIGZsb2F0CiAgICAgcmV0dXJuIFNWR0ZpdFRvVmlld0JveDo6dmll
d0JveFRvVmlld1RyYW5zZm9ybSh2aWV3Qm94KCksIHByZXNlcnZlQXNwZWN0UmF0aW8oKSwgdmll
d1dpZHRoLCB2aWV3SGVpZ2h0KTsKIH0KIAotdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSkKK3ZvaWQgU1ZHTWFya2VyRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRp
b25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6Om1hcmtlclVuaXRzQXR0cikg
ewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdNYXJr
ZXJVbml0c1R5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBT
VkdNYXJrZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBjb25zdCBBdG9tU3RyaW4KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihwYXJz
ZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRW
YWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZHRml0VG9W
aWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDQ2MDVkY2E5OWI2Mi4uNDAzOThiYmU0ZmZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHTWFya2VyRWxlbWVudCwgU1ZHRWxlbWVudCwgU1ZHRml0VG9WaWV3Qm94PjsKIAotICAg
IHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJp
bmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1
ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKSBvdmVycmlkZTsKICAgICB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCmluZGV4IDlkN2UyNzBiMTFhMS4uM2IzZWE1MGRjZmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAg
UmVmPFNWR01hc2tFbGVtZW50PiBTVkdNYXNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXNr
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCi12b2lkIFNWR01hc2tFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5n
JiB2YWx1ZSkKK3ZvaWQgU1ZHTWFza0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVzOjptYXNrVW5pdHNBdHRy
KSB7CiAgICAgICAgIGF1dG8gcHJvcGVydHlWYWx1ZSA9IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1Vu
aXRUeXBlczo6U1ZHVW5pdFR5cGU+Ojpmcm9tU3RyaW5nKHZhbHVlKTsKQEAgLTkyLDcgKzkyLDcg
QEAgdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdF
cnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaAppbmRleCBiZmNjOWFkN2QzZjQuLjM5ZGQ3NTg2ZjkzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZH
TWFza0VsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1Rlc3RzPjsKIAotICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKyAg
ICB2b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21T
dHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKSBmaW5hbDsKICAgICB2b2lkIHN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENo
aWxkQ2hhbmdlJikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmlu
ZGV4IDc5ZmFmOTg5ZGM1NS4uNDliMGQ0MWVmY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5jcHAKQEAgLTUzLDE1ICs1MywxMyBAQCBSZWY8U1ZHUGF0aEVsZW1lbnQ+IFNWR1Bh
dGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbgog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KSk7CiB9CiAKLXZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdQYXRoRWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CisgICAgU1ZH
R2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwg
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6
ZEF0dHIpIHsKICAgICAgICAgaWYgKCFtX3BhdGhTZWdMaXN0LT5iYXNlVmFsKCktPnBhcnNlKHZh
bHVlKSkKICAgICAgICAgICAgIGRvY3VtZW50KCkuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9y
dEVycm9yKCJQcm9ibGVtIHBhcnNpbmcgZD1cIiIgKyB2YWx1ZSArICJcIiIpOwotICAgICAgICBy
ZXR1cm47CiAgICAgfQotCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5oCmluZGV4IDIyNDE2YjI1ZjQ0Ni4uMjJhMTNkNmQ0NGJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuaApAQCAtMTA4LDggKzEwOCw4IEBAIHByaXZhdGU6CiAgICAgU1ZHUGF0
aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CiAKICAgICB1c2luZyBQ
cm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNWR1BhdGhFbGVtZW50
LCBTVkdHZW9tZXRyeUVsZW1lbnQ+OwotICAgIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBmaW5hbDsKKworICAgIHZvaWQg
YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYg
b2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVt
ZW50LmNwcAppbmRleCA1YmYwNTBjMmQ1OTMuLmZlZGVkY2NjOWM3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFJlZjxTVkdQYXR0
ZXJuRWxlbWVudD4gU1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBECiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0dGVybkVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpCit2b2lkIFNWR1BhdHRlcm5FbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3Ry
aW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNh
dGlvblJlYXNvbikKIHsKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6cGF0dGVyblVuaXRzQXR0
cikgewogICAgICAgICBhdXRvIHByb3BlcnR5VmFsdWUgPSBTVkdQcm9wZXJ0eVRyYWl0czxTVkdV
bml0VHlwZXM6OlNWR1VuaXRUeXBlPjo6ZnJvbVN0cmluZyh2YWx1ZSk7CkBAIC0xMDIsOCArMTAy
LDggQEAgdm9pZCBTVkdQYXR0ZXJuRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNp
bmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1l
LCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAgU1ZH
VGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICBTVkdGaXRUb1ZpZXdCb3g6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRl
cm5FbGVtZW50LmgKaW5kZXggY2NmZDZhMTc5Njc3Li5kZmVhYzA0ODczYzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAK
ICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5PFNW
R1BhdHRlcm5FbGVtZW50LCBTVkdFbGVtZW50LCBTVkdGaXRUb1ZpZXdCb3gsIFNWR1Rlc3RzLCBT
VkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNv
bnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFs
OwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmlu
YWw7CiAgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmKSBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5kZXggYjQ1ODlhYmVkMjU4Li4y
OTEyZWEzYzliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcApAQCAtNDMs
NyArNDMsNyBAQCBTVkdQb2x5RWxlbWVudDo6U1ZHUG9seUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIH0pOwogfQogCi12b2lkIFNW
R1BvbHlFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHUG9seUVsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFs
dWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24g
YXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIGlmIChuYW1lID09IFNWR05hbWVz
Ojpwb2ludHNBdHRyKSB7CiAgICAgICAgIGlmICghbV9wb2ludHMtPmJhc2VWYWwoKS0+cGFyc2Uo
dmFsdWUpKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHR2VvbWV0cnlFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR2VvbWV0cnlFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2Vk
KG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0K
IAogdm9pZCBTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmgKaW5kZXggMDI0
YmE1ZGEwZGM4Li44ZGI3ZTZjMDRiZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQb2x5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5o
CkBAIC00Miw3ICs0Miw3IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVy
dHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdQb2x5RWxlbWVudCwgU1ZH
R2VvbWV0cnlFbGVtZW50PjsKIAotICAgIHZvaWQgcGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsgCisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggZTZjOGY2ZmFhNzEyLi44MzNkOTExODU0YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
CkBAIC02Miw3ICs2Miw3IEBAIFJlZjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+IFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hCiAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7
CiB9CiAKLXZvaWQgU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbikKIHsKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAg
LTgxLDcgKzgxLDcgQEAgdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEEKIAogICAgIHJlcG9ydEF0dHJp
YnV0ZVBhcnNpbmdFcnJvcihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFk
aWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFkaWVu
dEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCBlNjBm
NGIwNWYzYTUuLjg4YmI0NjA2YTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiAgICAgdXNp
bmcgUHJvcGVydHlSZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQsIFNWR0dyYWRpZW50RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJF
bGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVy
VHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNw
cAppbmRleCA0NDZlYWRhZWM1M2EuLmViYTNhYWY2MzI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJlZjxTVkdSZWN0RWxlbWVudD4gU1ZH
UmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpKTsKIH0KIAotdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1JlY3RF
bGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRl
TW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKICAgICBT
VkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJv
cihwYXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHZW9tZXRyeUVsZW1lbnQ6OmF0dHJp
YnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25S
ZWFzb24pOwogfQogCiB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQu
aAppbmRleCA0ODYzNGZmNjJhNGEuLmVmNWViM2RiMTMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3Bl
cnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHUmVjdEVsZW1lbnQsIFNW
R0dlb21ldHJ5RWxlbWVudD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmlu
YWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBm
aW5hbDsKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1Rlc3Rz
Ojppc1ZhbGlkKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAppbmRleCAyZWVl
YTAxNzk5ZmUuLmU5NjFmZWRhODhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cApAQCAtMTYzLDggKzE2MywxMCBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnVwZGF0ZUN1cnJlbnRU
cmFuc2xhdGUoKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+cmVwYWludCgpOwog
fQogCi12b2lkIFNWR1NWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdTVkdFbGVtZW50Ojph
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmlidXRlTW9kaWZpY2F0
aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKKyAgICBTVkdHcmFwaGlj
c0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKCFuZWFyZXN0Vmlld3BvcnRFbGVtZW50
KCkgJiYgaXNDb25uZWN0ZWQoKSkgewogICAgICAgICAvLyBGb3IgdGhlc2UgZXZlbnRzLCB0aGUg
b3V0ZXJtb3N0IDxzdmc+IGVsZW1lbnQgd29ya3MgbGlrZSBhIDxib2R5PiBlbGVtZW50IGRvZXMs
CiAgICAgICAgIC8vIHNldHRpbmcgY2VydGFpbiBldmVudCBoYW5kbGVycyBkaXJlY3RseSBvbiB0
aGUgd2luZG93IG9iamVjdC4KQEAgLTIyMCw3ICsyMjIsNiBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJzaW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwg
dmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CiAgICAgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiAgICAgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKaW5kZXggMjgzNGViOTZjYzc2Li5mYzNjZTBlYjA0YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaApAQCAtMTI0LDggKzEyNCw4IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB+U1ZHU1ZHRWxlbWVudCgpOwogCiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdTVkdFbGVtZW50LCBTVkdHcmFw
aGljc0VsZW1lbnQsIFNWR0ZpdFRvVmlld0JveD47Ci0gICAgCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKICAgICBib29sIHNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAppbmRleCAyMGNiYzhh
ODMxY2UuLjkwOTk4NzRlOGEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcApAQCAtNDQsMTAgKzQ0LDEwIEBAIFJlZjxTVkdTY3JpcHRFbGVtZW50PiBTVkdTY3JpcHRF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jCiAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgaW5z
ZXJ0ZWRCeVBhcnNlciwgZmFsc2UpKTsKIH0KIAotdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2
YWx1ZSkKK3ZvaWQgU1ZHU2NyaXB0RWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0
cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmlj
YXRpb25SZWFzb24pCiB7Ci0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1NjcmlwdEVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAppbmRleCA5NDRjZTBkZDI1MmUuLjI5Mjk5MTYx
MzJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC00MSw3ICs0MSw3
IEBAIHByaXZhdGU6CiAKICAgICB1c2luZyBQcm9wZXJ0eVJlZ2lzdHJ5ID0gU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5PFNWR1NjcmlwdEVsZW1lbnQsIFNWR0VsZW1lbnQsIFNWR1VSSVJlZmVyZW5j
ZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25z
dCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmlu
ZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAgdm9pZCBz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBmaW5hbDsKIAogICAgIElu
c2VydGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5
cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
Y3BwCmluZGV4IDdmZjliOTQzNDZlNS4uZDUyNmVlYzU3NTNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdG9wRWxlbWVudC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgUmVmPFNWR1N0b3BFbGVtZW50PiBT
VkdTdG9wRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW4KICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdG9wRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCkpOwogfQogCi12b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZHU3Rv
cEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1
dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAg
IGlmIChuYW1lID09IFNWR05hbWVzOjpvZmZzZXRBdHRyKSB7CiAgICAgICAgIGlmICh2YWx1ZS5l
bmRzV2l0aCgnJScpKQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xk
VmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNW
R1N0b3BFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAppbmRleCBlNGJhOTYwNDA2YWQu
LjQ0Yjc5YjAxMzQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmgKQEAgLTQwLDcg
KzQwLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHU3RvcEVsZW1lbnQsIFNWR0VsZW1lbnQ+OwogCi0gICAgdm9p
ZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIGZpbmFsOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgZmluYWw7CiAKICAgICBib29sIGlzR3JhZGllbnRT
dG9wKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmNwcAppbmRleCAxYjQ5MDE5MGM2MTkuLmJjYzJmOThmMTU0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgU3RyaW5nIFNW
R1N0eWxlRWxlbWVudDo6dGl0bGUoKSBjb25zdAogICAgIHJldHVybiBhdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFNWR05hbWVzOjp0aXRsZUF0dHIpOwogfQogCi12b2lkIFNWR1N0eWxl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1N0eWxlRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbiBhdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnRp
dGxlQXR0cikgewogICAgICAgICBpZiAoc2hlZXQoKSAmJiAhaXNJblNoYWRvd1RyZWUoKSkKQEAg
LTEwNyw3ICsxMDcsNyBAQCB2b2lkIFNWR1N0eWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOwogfQogCiB2b2lkIFNWR1N0eWxlRWxlbWVudDo6
ZmluaXNoUGFyc2luZ0NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaApp
bmRleCBkZGViZGFjZjM0NWUuLjE0ZmU3M2RiYzdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHls
ZUVsZW1lbnQuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNWR1N0
eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBib29sIGNyZWF0ZWRC
eVBhcnNlcik7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgZmluYWw7CiAgICAg
SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9u
VHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3Rv
cihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgY2hpbGRyZW5D
aGFuZ2VkKGNvbnN0IENoaWxkQ2hhbmdlJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3lt
Ym9sRWxlbWVudC5jcHAKaW5kZXggN2E5M2RmNThjMGI1Li4xM2I5MDA4OTdhYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKQEAgLTQ0LDkgKzQ0LDkgQEAgUmVmPFNW
R1N5bWJvbEVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2MKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTeW1ib2xFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLXZvaWQgU1ZHU3ltYm9sRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYg
dmFsdWUpCit2b2lkIFNWR1N5bWJvbEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21T
dHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZp
Y2F0aW9uUmVhc29uKQogewotICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpOworICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZChu
YW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbik7CiAgICAg
U1ZHRml0VG9WaWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCmluZGV4IGRiMDllNTExNTViYS4uOTBhYzJhMDhk
MmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgKQEAgLTM2LDcgKzM2LDcg
QEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93
bmVyUmVnaXN0cnk8U1ZHU3ltYm9sRWxlbWVudCwgU1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdGaXRU
b1ZpZXdCb3g+OwogCi0gICAgdm9pZCBwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0
IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRl
OwogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVu
ZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVFJlZkVsZW1lbnQuY3BwCmluZGV4IDZiM2ZhMzJiZjkwNC4uNWU1MDVjMTI5YWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKQEAgLTE3MiwyMiArMTcyLDIxIEBA
IHZvaWQgU1ZHVFJlZkVsZW1lbnQ6OmRldGFjaFRhcmdldCgpCiAgICAgICAgIGRvY3VtZW50KCku
YWNjZXNzU1ZHRXh0ZW5zaW9ucygpLmFkZFBlbmRpbmdSZXNvdXJjZSh0YXJnZXQuaWRlbnRpZmll
ciwgKnRoaXMpOwogfQogCi12b2lkIFNWR1RSZWZFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
VFJlZkVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewot
ICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KTsKICAgICBTVkdVUklSZWZlcmVuY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZh
bHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKTsKIH0KIAogdm9pZCBTVkdU
UmVmRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKKyAgICBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKKwogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwogICAgICAgICBidWlsZFBlbmRpbmdSZXNvdXJjZSgpOwogICAgICAgICB1cGRhdGVT
VkdSZW5kZXJlckZvckVsZW1lbnRDaGFuZ2UoKTsKLSAgICAgICAgcmV0dXJuOwogICAgIH0KLQot
ICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwogfQogCiBSZW5kZXJQdHI8UmVuZGVyRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0
ZUVsZW1lbnRSZW5kZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9z
aXRpb24mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAppbmRleCBlNjc2OTg2YzUyYmMu
LjQ2MDRmZDAxODY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgKQEAgLTQxLDcg
KzQxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9w
ZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVFJlZkVsZW1lbnQsIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1l
bnQsIFNWR1VSSVJlZmVyZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRW
YWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNv
bikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVF
bGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IDljMmFhODg4Y2FjMC4uZjQ3NjFhNDQ5YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQgU1ZH
VGV4dENvbnRlbnRFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0aW9uYWxIaW50c0ZvckF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpCiAgICAgU1ZHR3JhcGhpY3NFbGVtZW50Ojpjb2xsZWN0UHJlc2VudGF0
aW9uYWxIaW50c0ZvckF0dHJpYnV0ZShuYW1lLCB2YWx1ZSwgc3R5bGUpOwogfQogCi12b2lkIFNW
R1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1RleHRDb250ZW50RWxlbWVu
dDo6YXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
U3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlm
aWNhdGlvblJlYXNvbiBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pCiB7CiAgICAgU1ZHUGFy
c2luZ0Vycm9yIHBhcnNlRXJyb3IgPSBOb0Vycm9yOwogCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9p
ZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b20KIAogICAgIHJlcG9ydEF0dHJpYnV0ZVBhcnNpbmdFcnJvcihw
YXJzZUVycm9yLCBuYW1lLCB2YWx1ZSk7CiAKLSAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24pOwogfQogCiB2b2lkIFNWR1RleHRDb250ZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuaAppbmRleCBjNzQ0NTg2NzU4ZDEuLmUyMTU0MGJkN2I0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuaApAQCAtOTYsNyArOTYs
NyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5n
JiBvbGRWYWx1ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlv
blJlYXNvbikgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGNv
bGxlY3RQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBjb25zdCBBdG9tU3RyaW5nJiwgTXV0YWJsZVN0eWxlUHJvcGVydGllcyYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCmluZGV4IDQwOWQ3
ZTljN2E5Ni4uNTVlOTZhODBkMzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6Y2xl
YXJSZXNvdXJjZVJlZmVyZW5jZXMoKQogICAgIHJlbW92ZUVsZW1lbnRSZWZlcmVuY2UoKTsKIH0K
IAotdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQordm9pZCBTVkdUZXh0UGF0aEVs
ZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewogICAgIFNW
R1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtODEsOCArODEsOCBAQCB2
b2lkIFNWR1RleHRQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogCiAgICAgcmVwb3J0QXR0cmlidXRlUGFyc2luZ0Vycm9y
KHBhcnNlRXJyb3IsIG5hbWUsIHZhbHVlKTsKIAotICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR1RleHRDb250ZW50RWxlbWVudDo6YXR0cmli
dXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJl
YXNvbik7CiB9CiAKIHZvaWQgU1ZHVGV4dFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQ
YXRoRWxlbWVudC5oCmluZGV4IDM1OGM5MGY5M2RlMS4uNjJlMzEyM2E2ZDRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHJpdmF0
ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0
cnk8U1ZHVGV4dFBhdGhFbGVtZW50LCBTVkdUZXh0Q29udGVudEVsZW1lbnQsIFNWR1VSSVJlZmVy
ZW5jZT47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlk
ZTsKIAogICAgIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIo
UmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKaW5kZXgg
MDk2NWUyODhiYzg5Li4yNzA1M2QxZTY2N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAKQEAgLTUxLDggKzUxLDEwIEBAIFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQ6OlNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtCiAgICAgfSk7CiB9CiAKLXZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmF0dHJpYnV0
ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgb2xk
VmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFz
b24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogeworICAgIFNWR1RleHRDb250ZW50RWxl
bWVudDo6YXR0cmlidXRlQ2hhbmdlZChuYW1lLCBvbGRWYWx1ZSwgdmFsdWUsIGF0dHJpYnV0ZU1v
ZGlmaWNhdGlvblJlYXNvbik7CisKICAgICBpZiAobmFtZSA9PSBTVkdOYW1lczo6eEF0dHIpIHsK
ICAgICAgICAgbV94LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtNzcsOCArNzksNiBAQCB2b2lkIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0CiAgICAgICAgIG1fcm90YXRl
LT5iYXNlVmFsKCktPnBhcnNlKHZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAg
IFNWR1RleHRDb250ZW50RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogfQog
CiB2b2lkIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmNvbGxlY3RQcmVzZW50YXRpb25hbEhp
bnRzRm9yQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmIHZhbHVlLCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBzdHlsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5oCmluZGV4IDQ5ZDkxNmNhMDIyOC4u
OTY3OTFiNzk0MzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jiwg
VW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogCi0gICAgdm9pZCBwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRv
bVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVNb2Rp
ZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggZGU0NjRmNGM4ZTg3Li45YTIwMzExNDRlMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgU1ZHVXNlRWxl
bWVudDo6flNWR1VzZUVsZW1lbnQoKQogICAgICAgICBtX2V4dGVybmFsRG9jdW1lbnQtPnJlbW92
ZUNsaWVudCgqdGhpcyk7CiB9CiAKLXZvaWQgU1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lk
IFNWR1VzZUVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBB
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQog
ewogICAgIFNWR1BhcnNpbmdFcnJvciBwYXJzZUVycm9yID0gTm9FcnJvcjsKIApAQCAtOTUsOCAr
OTUsOCBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKICAgICByZXBvcnRBdHRyaWJ1dGVQYXJz
aW5nRXJyb3IocGFyc2VFcnJvciwgbmFtZSwgdmFsdWUpOwogCi0gICAgU1ZHR3JhcGhpY3NFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHVVJJUmVmZXJlbmNlOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgU1ZHR3JhcGhpY3NFbGVtZW50OjphdHRy
aWJ1dGVDaGFuZ2VkKG5hbWUsIG9sZFZhbHVlLCB2YWx1ZSwgYXR0cmlidXRlTW9kaWZpY2F0aW9u
UmVhc29uKTsKIH0KIAogTm9kZTo6SW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgU1ZHVXNlRWxl
bWVudDo6aW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSBpbnNlcnRpb25UeXBlLCBD
b250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5oCmluZGV4IDdlYzEzMjkyYTQ2Zi4uYmExMWRhYjFmMmRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdVc2VFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVXNlRWxlbWVudCwg
U1ZHR3JhcGhpY3NFbGVtZW50LCBTVkdVUklSZWZlcmVuY2U+OwogCi0gICAgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3QgQXRvbVN0cmluZyYpIG92ZXJyaWRl
OworICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
QXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRyaWJ1dGVN
b2RpZmljYXRpb25SZWFzb24pIG92ZXJyaWRlOwogICAgIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJikgb3ZlcnJpZGU7CiAKICAgICBSZW5kZXJQdHI8UmVuZGVy
RWxlbWVudD4gY3JlYXRlRWxlbWVudFJlbmRlcmVyKFJlbmRlclN0eWxlJiYsIGNvbnN0IFJlbmRl
clRyZWVQb3NpdGlvbiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5j
cHAKaW5kZXggOThmMGIyNmZjODdiLi5kYWQ1M2I3OTVhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdFbGVtZW50LmNwcApAQCAtNDUsMTEgKzQ1LDExIEBAIFJlZjxTVkdWaWV3RWxlbWVudD4g
U1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVuCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVmlld0VsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpKTsKIH0KIAotdm9pZCBTVkdWaWV3RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUpCit2b2lkIFNWR1Zp
ZXdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSwgQXR0cmli
dXRlTW9kaWZpY2F0aW9uUmVhc29uIGF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikKIHsKLSAg
ICBTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHRml0VG9W
aWV3Qm94OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiAgICAgU1ZHWm9vbUFuZFBhbjo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOworICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNo
YW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBhdHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24p
OwogfQogCiB2b2lkIFNWR1ZpZXdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAppbmRl
eCBhMDQ3MWIyNGUxNTAuLmEyYzgzOGMxMmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVt
ZW50LmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHVzaW5nIFByb3BlcnR5UmVn
aXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHVmlld0VsZW1lbnQsIFNWR0VsZW1l
bnQsIFNWR0ZpdFRvVmlld0JveD47CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBhdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1
ZSwgY29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikg
ZmluYWw7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKIAogICAgIGJvb2wgcmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHls
ZSYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmlt
YXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCmluZGV4IGJmNGViZjBlODgyNS4uNGNhNzllNWNkMGM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNw
cApAQCAtNDc1LDggKzQ3NSwxMCBAQCBib29sIFNWR1NNSUxFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5nZXQoKS5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOwogfQogCi12b2lkIFNWR1NNSUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkKK3ZvaWQgU1ZH
U01JTEVsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbVN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlLCBBdHRy
aWJ1dGVNb2RpZmljYXRpb25SZWFzb24gYXR0cmlidXRlTW9kaWZpY2F0aW9uUmVhc29uKQogewor
ICAgIFNWR0VsZW1lbnQ6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSwgb2xkVmFsdWUsIHZhbHVlLCBh
dHRyaWJ1dGVNb2RpZmljYXRpb25SZWFzb24pOworCiAgICAgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OmJlZ2luQXR0cikgewogICAgICAgICBpZiAoIW1fY29uZGl0aW9ucy5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgIGRpc2Nvbm5lY3RDb25kaXRpb25zKCk7CkBAIC00OTksOCArNTAxLDYgQEAgdm9p
ZCBTVkdTTUlMRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cmluZyYKICAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihl
dmVudE5hbWVzKCkuZW5kRXZlbnRFdmVudCwgbmFtZSwgdmFsdWUpOwogICAgIGVsc2UgaWYgKG5h
bWUgPT0gU1ZHTmFtZXM6Om9uYmVnaW5BdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKGV2ZW50TmFtZXMoKS5iZWdpbkV2ZW50RXZlbnQsIG5hbWUsIHZhbHVlKTsKLSAgICBl
bHNlCi0gICAgICAgIFNWR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0K
IAogdm9pZCBTVkdTTUlMRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01J
TEVsZW1lbnQuaAppbmRleCBlNjdmOTZhOWUwZWUuLjBlZTA3MjgzYTEzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaApAQCAtNDYsNyArNDYsNyBA
QCBwdWJsaWM6CiAgICAgU1ZHU01JTEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50JiwgVW5pcXVlUmVmPFNWR1Byb3BlcnR5UmVnaXN0cnk+JiYpOwogICAgIHZpcnR1YWwgflNW
R1NNSUxFbGVtZW50KCk7CiAKLSAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJiBvbGRWYWx1ZSwg
Y29uc3QgQXRvbVN0cmluZyYgdmFsdWUsIEF0dHJpYnV0ZU1vZGlmaWNhdGlvblJlYXNvbikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBvdmVycmlkZTsKICAgICBJbnNlcnRlZEludG9BbmNlc3RvclJlc3VsdCBpbnNlcnRlZEludG9B
bmNlc3RvcihJbnNlcnRpb25UeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZW1vdmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJikgb3ZlcnJp
ZGU7Cg==
</data>
<flag name="commit-queue"
          id="493698"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>