<?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>67692</bug_id>
          
          <creation_ts>2011-09-06 19:08:33 -0700</creation_ts>
          <short_desc>Unzip initialization lists and constructors in JSCell hierarchy (6/7)</short_desc>
          <delta_ts>2011-09-14 15:17:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>67420</dependson>
    
    <dependson>68104</dependson>
          <blocked>66567</blocked>
    
    <blocked>68122</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ggaren</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>463075</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-06 19:08:33 -0700</bug_when>
    <thetext>This is the sixth level of the unzipping process described in https://bugs.webkit.org/show_bug.cgi?id=66567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466010</commentid>
    <comment_count>1</comment_count>
      <attachid>107121</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-12 18:17:29 -0700</bug_when>
    <thetext>Created attachment 107121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466566</commentid>
    <comment_count>2</comment_count>
      <attachid>107121</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-13 14:50:15 -0700</bug_when>
    <thetext>Comment on attachment 107121
Patch

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

From review discussion with Geoff.

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        into the constructors of the subclasses of the second level of the hierarchy 

Not true.  Needs to be fifth level instead of second.

&gt; Source/JavaScriptCore/ChangeLog:20
&gt; +        File names truncated for brevity. 

Need more details on why this is done.

&gt; Source/WebCore/ChangeLog:24
&gt; +        Changed the DOM bindings generation script to move the calls to finishCreation into the
&gt; +        create methods of all the generated classes except for children of JSDOMWindowBase and 
&gt; +        JSWorkerContextBase.

Because JSDOMWindowBase and JSWorkerContextBase are the next level down.  However, so are some of the classes that get changed with this patch, but it&apos;s just easier to change all of them at once.  I added generation of finishCreation methods for all of these classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466659</commentid>
    <comment_count>3</comment_count>
      <attachid>107121</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-13 16:27:03 -0700</bug_when>
    <thetext>Comment on attachment 107121
Patch

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

review+ assuming you do the run-bindings-tests thing I requested

&gt;&gt; Source/JavaScriptCore/ChangeLog:20
&gt;&gt; +        File names truncated for brevity. 
&gt; 
&gt; Need more details on why this is done.

Please do not do that. We do want you to include the filenames and in most cases, the function names too.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:733
&gt; +        push(@headerContent, &quot;        $className* ptr = new (JSC::allocateCell&lt;$className&gt;(globalData.heap)) ${className}(globalData, structure, impl, windowShell);\n&quot;);

Since you are changing the code generator, you need to run &quot;run-bindings-tests --reset-results&quot; and check in the changes to the output of the bindings code generation tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466694</commentid>
    <comment_count>4</comment_count>
      <attachid>107262</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-13 16:59:44 -0700</bug_when>
    <thetext>Created attachment 107262
Fixing issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466699</commentid>
    <comment_count>5</comment_count>
      <attachid>107262</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-09-13 17:03:50 -0700</bug_when>
    <thetext>Comment on attachment 107262
Fixing issues

This fixes Darin&apos;s comments, so r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467194</commentid>
    <comment_count>6</comment_count>
      <attachid>107262</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-14 11:54:36 -0700</bug_when>
    <thetext>Comment on attachment 107262
Fixing issues

Clearing flags on attachment: 107262

Committed r95108: &lt;http://trac.webkit.org/changeset/95108&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467195</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-14 11:54:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467250</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-14 12:37:19 -0700</bug_when>
    <thetext>Broke some tests on Qt.  Working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>467395</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-09-14 15:17:59 -0700</bug_when>
    <thetext>Build issue has been resolved.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107121</attachid>
            <date>2011-09-12 18:17:29 -0700</date>
            <delta_ts>2011-09-13 16:59:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67692-20110912181728.patch</filename>
            <type>text/plain</type>
            <size>95176</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCA2NGQ1MTNlMmVhZjQ0MzU4YmVlMjc3NGZk
ZDZhNzc4ZDNkMGQ0ZTljLi5hMzk2OGM2ODVjM2I3OGIwMTMzZTA1NDE2ZjJkNjBkYzNkYTY1MWIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC00MiwxMSArNDIsMTAgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxi
YWNrRnVuY3Rpb24pOwogCiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2lu
Zm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwg
MCB9OwogCi1KU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5jdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b25DYWxsYmFjayBjYWxsYmFjaywgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK0pTQ2FsbGJhY2tG
dW5jdGlvbjo6SlNDYWxsYmFja0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsYmFjaykKICAgICA6IEludGVybmFs
RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmNhbGxiYWNrRnVuY3Rpb25TdHJ1
Y3R1cmUoKSkKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lKTsKIH0KIAogdm9pZCBKU0NhbGxiYWNrRnVuY3Rp
b246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5j
dGlvbi5oCmluZGV4IDEzZTdlMDA5ZGJhZTY1ZDQ0NTk3MGQyZmY4YTBjOTBjNjg2OTUyYzEuLjdl
MjY1MmVkMmExNzQwZjExYmY3MmYzMmMxMzUyYTYzNmM0ZWJhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHJvdGVjdGVkOgotICAgIEpTQ2FsbGJhY2tGdW5jdGlvbihFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjaywgY29u
c3QgSWRlbnRpZmllciYgbmFtZSk7CisgICAgSlNDYWxsYmFja0Z1bmN0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiBwdWJsaWM6
CkBAIC00MSw3ICs0MSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrRnVuY3Rp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxi
YWNrRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNrRnVuY3Rpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBjYWxsYmFjaywgbmFtZSk7CisgICAgICAgIEpTQ2FsbGJhY2tGdW5jdGlvbiog
ZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrRnVuY3Rpb24+KCpleGVjLT5o
ZWFwKCkpKSBKU0NhbGxiYWNrRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsYmFjayk7CisgICAg
ICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOwor
ICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBjN2NhM2IxMmNmZjVjYWI4
Yjk5MGYyMTMzMWIyMzFmOWY2ZGI2MTRjLi42ZThhZjRlNmU3MzRmY2UxNmVkYTAxNjllYTM0M2Rj
YzFkYjQzNDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAx
MS0wOS0xMiAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxs
IGhpZXJhcmNoeSAoNi83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njc2OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDb21wbGV0ZWQgdGhlIHNpeHRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBh
ZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRo
aW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3Ry
dWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hp
bmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUg
Y29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhl
IGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlv
bigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3Jl
YXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFs
bG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5p
c2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25j
ZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkg
b3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVz
ZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICBGaWxlIG5hbWVzIHRydW5jYXRlZCBm
b3IgYnJldml0eS4gCisKIDIwMTEtMDktMTIgIEFuZHJhcyBCZWNzaSAgPGFuZHJhcy5iZWNzaUBu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBCdWlsZCBmYWlscyBhZnRlciByOTQ5MjAgd2l0aCBz
dHJpY3QgY29tcGlsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMDE4Zjk1NzI0NjFhZmUzZmQ3
NTQ3NzNkNzA3YmFmMmY5MmRkMzUxOC4uOTFhM2UxZmUyMzM4NTEyZDE4NDc2YWM3YTgyOWI5NTUy
ZjNiYzg4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTE0NSwxNCArMTQ1LDE2IEBAIGxvbmcg
U3RvcFdhdGNoOjpnZXRFbGFwc2VkTVMoKQogCiBjbGFzcyBHbG9iYWxPYmplY3QgOiBwdWJsaWMg
SlNHbG9iYWxPYmplY3QgewogcHJpdmF0ZToKLSAgICBHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRh
JiwgU3RydWN0dXJlKiwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVudHMpOworICAgIEds
b2JhbE9iamVjdChKU0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKIAogcHVibGljOgogICAgIHR5
cGVkZWYgSlNHbG9iYWxPYmplY3QgQmFzZTsKIAogICAgIHN0YXRpYyBHbG9iYWxPYmplY3QqIGNy
ZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxHbG9iYWxPYmplY3Q+KGdsb2JhbERhdGEuaGVhcCkpIEdsb2JhbE9iamVj
dChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGFyZ3VtZW50cyk7CisgICAgICAgIEdsb2JhbE9iamVj
dCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8R2xvYmFsT2JqZWN0PihnbG9iYWxEYXRhLmhl
YXApKSBHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKTsKKyAgICAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBhcmd1bWVudHMpOworICAgICAgICByZXR1cm4g
b2JqZWN0OwogICAgIH0KICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3QgeyBy
ZXR1cm4gImdsb2JhbCI7IH0KIApAQCAtMTg4LDEwICsxOTAsOSBAQCBwcm90ZWN0ZWQ6CiBDT01Q
SUxFX0FTU0VSVCghSXNJbnRlZ2VyPEdsb2JhbE9iamVjdD46OnZhbHVlLCBXVEZfSXNJbnRlZ2Vy
X0dsb2JhbE9iamVjdF9mYWxzZSk7CiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEdsb2JhbE9i
amVjdCk7CiAKLUdsb2JhbE9iamVjdDo6R2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFZlY3RvcjxVU3RyaW5nPiYgYXJndW1l
bnRzKQorR2xvYmFsT2JqZWN0OjpHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBhcmd1bWVudHMp
OwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoRXhlY1N0
YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJy
YXlDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNv
bnN0cnVjdG9yLmNwcAppbmRleCBkNDA2YmExOThjMGQxN2VkMjM0MjNiZjk4MGFhMjFhZjc4ZTA1
YTg1Li5hOGQ2NDU4NzkwZGNjYzg2NTE1ZmFhMGQ2OWU5YjBlY2ZkN2Q2MDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmNwcApAQCAt
NTEsMTAgKzUxLDkgQEAgY29uc3QgQ2xhc3NJbmZvIEFycmF5Q29uc3RydWN0b3I6OnNfaW5mbyA9
IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW4KIAogQVNTRVJUX0NMQVNTX0ZJ
VFNfSU5fQ0VMTChBcnJheUNvbnN0cnVjdG9yKTsKIAotQXJyYXlDb25zdHJ1Y3Rvcjo6QXJyYXlD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheVByb3RvdHlwZSogYXJyYXlQcm90b3R5cGUpCitB
cnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9i
YWxPYmplY3QsIHN0cnVjdHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBhcnJheVBy
b3RvdHlwZSk7CiB9CiAKIHZvaWQgQXJyYXlDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBBcnJheVByb3RvdHlwZSogYXJyYXlQcm90b3R5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKaW5kZXggYzJjNzE5
OGQ2NmNmMmY1NjliOTg2NTc2MzUxODg1YzZhM2M1Y2ZlYy4uOTZjZWM2YjdiN2IzMjA3YWQyMzhm
YWFlZjI4MTJmYTJmODczNDU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5Q29uc3RydWN0b3IuaApAQCAtMzEsOSArMzEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAot
ICAgICAgICBzdGF0aWMgQXJyYXlDb25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5
UHJvdG90eXBlKiBhcnJQcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBBcnJheUNvbnN0cnVjdG9y
KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJyYXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8QXJyYXlDb25zdHJ1
Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEFycmF5Q29uc3RydWN0b3IoZXhlYywgZ2xvYmFsT2JqZWN0
LCBzdHJ1Y3R1cmUsIGFyclByb3RvdHlwZSk7CisgICAgICAgICAgICBBcnJheUNvbnN0cnVjdG9y
KiBjb25zdHJ1Y3RvciA9IG5ldyAoYWxsb2NhdGVDZWxsPEFycmF5Q29uc3RydWN0b3I+KCpleGVj
LT5oZWFwKCkpKSBBcnJheUNvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAg
ICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBhcnJheVByb3RvdHlw
ZSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTQ4LDcgKzUwLDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVy
ZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgQXJyYXlDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEFycmF5UHJvdG90eXBlKik7CisgICAg
ICAgIEFycmF5Q29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqLCBjb25zdCBJZGVu
dGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5RGVz
Y3JpcHRvciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9v
bGVhbkNvbnN0cnVjdG9yLmNwcAppbmRleCAzNDBmZjcyM2NhNjJmY2NlMGNiNTdiNTVhODVjYmMy
OTIyYTBiNjI3Li5mNmUyYTcwOGMzZmY5MGNiZTZmYjhkMzBjMTlhZGVlMmZhMzc3OWQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rv
ci5jcHAKQEAgLTI4LDEwICsyOCw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEJvb2xlYW5Db25zdHJ1Y3Rvcik7CiAKLUJvb2xlYW5Db25zdHJ1Y3Rvcjo6
Qm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Q
cm90b3R5cGUpCitCb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3RvcihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVy
bmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZXhlYywgYm9vbGVhblByb3RvdHlwZSk7CiB9CiAKIHZvaWQgQm9vbGVhbkNvbnN0cnVjdG9y
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xl
YW5Qcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9C
b29sZWFuQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xl
YW5Db25zdHJ1Y3Rvci5oCmluZGV4IDFlZWU0ZjY2Mzc2YTVmMzdhNTYwYWJlNWVkNTcwYTZkM2Q4
M2I0N2UuLjFkOTQ2ODg2Mzc5MTBmYTlhZmFlMTVhNzQwNTI3MGNjODk3MDg1YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oCkBA
IC0zMSwxNiArMzEsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0
eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAotICAgICAgICBzdGF0aWMgQm9vbGVhbkNv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQm9vbGVhblByb3RvdHlwZSogYm9vbFByb3Rv
dHlwZSkKKyAgICAgICAgc3RhdGljIEJvb2xlYW5Db25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xlYW5Qcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxCb29sZWFuQ29uc3RydWN0b3I+KCpleGVj
LT5oZWFwKCkpKSBCb29sZWFuQ29uc3RydWN0b3IoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIGJvb2xQcm90b3R5cGUpOworICAgICAgICAgICAgQm9vbGVhbkNvbnN0cnVjdG9yKiBjb25z
dHJ1Y3RvciA9IG5ldyAoYWxsb2NhdGVDZWxsPEJvb2xlYW5Db25zdHJ1Y3Rvcj4oKmV4ZWMtPmhl
YXAoKSkpIEJvb2xlYW5Db25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAg
ICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgYm9vbGVhblByb3RvdHlw
ZSk7CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KIAogICAgIHBy
b3RlY3RlZDoKICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBCb29sZWFu
UHJvdG90eXBlKik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBCb29sZWFuQ29uc3RydWN0b3Io
RXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBCb29sZWFuUHJvdG90eXBl
Kik7CisgICAgICAgIEJvb2xlYW5Db25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25z
dHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERh
dGEmKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29s
ZWFuUHJvdG90eXBlLmNwcAppbmRleCBhYzdhNmU5NDljMDcxN2NjOTk3MTIyN2E0YThiZDY2NmY3
NDcwMDk2Li5hYjYyOTYzMjA2NzMyODgxYmY3OTg2OGI5NjYwM2QyNDFiYTQzMzY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmNwcApA
QCAtNDksMTAgKzQ5LDkgQEAgY29uc3QgQ2xhc3NJbmZvIEJvb2xlYW5Qcm90b3R5cGU6OnNfaW5m
byA9IHsgIkJvb2xlYW4iLCAmQm9vbGVhbk9iamVjdDo6c19pbmZvLAogCiBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEJvb2xlYW5Qcm90b3R5cGUpOwogCi1Cb29sZWFuUHJvdG90eXBlOjpCb29s
ZWFuUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitCb29sZWFuUHJvdG90eXBlOjpCb29sZWFuUHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBCb29sZWFu
T2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgQm9vbGVhblByb3RvdHlwZTo6Zmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKaW5kZXggMmE2Yzgx
ZmEzZDUzMGQ2MGI4MmU0NTdlODk4MjhlYTk4NzhmZjE5Ni4uMmRjZmMxZDU2ZjIwMWUzM2Y3YjY2
OTk0MWY1YjI0MDQ2YjQ0MzIwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaApAQCAtMzEsNyArMzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgQm9vbGVhblByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxCb29sZWFuUHJv
dG90eXBlPigqZXhlYy0+aGVhcCgpKSkgQm9vbGVhblByb3RvdHlwZShleGVjLCBnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBCb29sZWFuUHJvdG90eXBlKiBwcm90b3R5cGUg
PSBuZXcgKGFsbG9jYXRlQ2VsbDxCb29sZWFuUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgQm9v
bGVhblByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5m
aW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIHBy
b3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CkBAIC00Niw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBCb29sZWFuT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6
Ci0gICAgICAgIEJvb2xlYW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBT
dHJ1Y3R1cmUqKTsKKyAgICAgICAgQm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
LCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCA3YjI1MzQ4ODM1NGUwMjNjZDFj
MzVkNmVmNDgxMTY4YzQ0ZmNmNDk0Li44NWY1NDRhZGM3NDg1YzIzYjI0ZjRiYjhjODY4YjA4NzY1
NTQyNzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25z
dHJ1Y3Rvci5jcHAKQEAgLTczLDEwICs3Myw5IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mCiAK
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRGF0ZUNvbnN0cnVjdG9yKTsKIAotRGF0ZUNvbnN0
cnVjdG9yOjpEYXRlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRGF0ZVByb3RvdHlwZSogZGF0ZVBy
b3RvdHlwZSkKK0RhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5j
dGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhl
YywgZGF0ZVByb3RvdHlwZSk7CiB9CiAKIHZvaWQgRGF0ZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIERhdGVQcm90b3R5cGUqIGRhdGVQcm90b3R5cGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCmluZGV4IDVm
YTUxZGY5NTk5ZWQzZTE0NmI2YjgzY2E4YjAyZDkyMTAyODUxYWQuLmZkYjdhMTFhMWNlN2FkMmM3
YmRjYTViOTE3N2M0MDljMWM2ZDNkMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0RhdGVDb25zdHJ1Y3Rvci5oCkBAIC0zMyw3ICszMyw5IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiAgICAgICAgIHN0YXRpYyBEYXRlQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBE
YXRlUHJvdG90eXBlKiBkYXRlUHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8RGF0ZUNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgRGF0
ZUNvbnN0cnVjdG9yKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBkYXRlUHJvdG90eXBl
KTsKKyAgICAgICAgICAgIERhdGVDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxEYXRlQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBEYXRlQ29uc3RydWN0b3Io
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgY29uc3RydWN0b3ItPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIGRhdGVQcm90b3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0
cnVjdG9yOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3Qg
fCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIERhdGVDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIERhdGVQcm90b3R5cGUqKTsKKyAgICAgICAgRGF0ZUNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRD
YWxsRGF0YShDYWxsRGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0RhdGVQcm90b3R5cGUuY3BwCmluZGV4IDc4Mzg1ODU4ZGIwZTYyN2M4YzdiNjQ1MDU1MjQyNThj
MmMwNzQzOTAuLjYzMWU0NzhmYTZlYjhiM2ZhNTM2MGNmNTcxYzRkOTIyMWY0N2ZhNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuY3BwCkBAIC00
MzAsMTAgKzQzMCw5IEBAIGNvbnN0IENsYXNzSW5mbyBEYXRlUHJvdG90eXBlOjpzX2luZm8gPSB7
IkRhdGUiLCAmRGF0ZUluc3RhbmNlOjpzX2luZm8sIDAsIEV4ZWNTCiAKIC8vIEVDTUEgMTUuOS40
CiAKLURhdGVQcm90b3R5cGU6OkRhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK0RhdGVQcm90b3R5
cGU6OkRhdGVQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkK
ICAgICA6IERhdGVJbnN0YW5jZShleGVjLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBEYXRlUHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaAppbmRleCBjZGE2YjdhZmE5NzE1NTgw
MzExZjQwYWJmOTQzZDVmZDI0MzBhNDAxLi43MWQ5ZWRhMzA4YTRiYzk1ZmI5YzA2NDdiYjE1N2Ri
ODBjMDdmNjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3Rv
dHlwZS5oCkBAIC0yOSwxNCArMjksMTYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBjbGFzcyBE
YXRlUHJvdG90eXBlIDogcHVibGljIERhdGVJbnN0YW5jZSB7CiAgICAgcHJpdmF0ZToKLSAgICAg
ICAgRGF0ZVByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSop
OworICAgICAgICBEYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogCiAgICAg
cHVibGljOgogICAgICAgICB0eXBlZGVmIERhdGVJbnN0YW5jZSBCYXNlOwogCiAgICAgICAgIHN0
YXRpYyBEYXRlUHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPERhdGVQcm90b3R5cGU+KCpleGVjLT5oZWFw
KCkpKSBEYXRlUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAg
ICAgICAgIERhdGVQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPERhdGVQ
cm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBEYXRlUHJvdG90eXBlKGV4ZWMsIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVj
dCk7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmll
ciYsIFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcAppbmRleCAyNDcxNjg5
Y2I2N2NkZTJjMDdkM2UxMWMwYTg3OTcyODNkZjY5NmZiLi4wMDgxMTM1ZDk4MWY3OWUzMTFiNzc2
YmVlNTAzMWJhZTEyMjAwYzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9FcnJvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3Iu
Y3BwCkBAIC0xNjcsMTEgKzE2NywxMCBAQCBKU09iamVjdCogdGhyb3dTeW50YXhFcnJvcihFeGVj
U3RhdGUqIGV4ZWMpCiAKIGNsYXNzIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbiA6IHB1Ymxp
YyBJbnRlcm5hbEZ1bmN0aW9uIHsKIHByaXZhdGU6Ci0gICAgU3RyaWN0TW9kZVR5cGVFcnJvckZ1
bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCisgICAgU3RyaWN0TW9k
ZVR5cGVFcnJvckZ1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQogICAgICAgICA6IEludGVybmFs
RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgICAgICwgbV9tZXNzYWdlKG1l
c3NhZ2UpCiAgICAgewotICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5hbWVzLT5lbXB0eUlkZW50aWZpZXIpOwogICAg
IH0KIAogcHVibGljOgpAQCAtMTc5LDcgKzE3OCw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBT
dHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3Ry
aW5nJiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0
cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmljdE1vZGVUeXBl
RXJyb3JGdW5jdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbWVzc2FnZSk7Cisg
ICAgICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbiogZnVuY3Rpb24gPSBuZXcgKGFsbG9j
YXRlQ2VsbDxTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBTdHJp
Y3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG1lc3NhZ2Up
OworICAgICAgICBmdW5jdGlvbi0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBl
eGVjLT5nbG9iYWxEYXRhKCkucHJvcGVydHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyKTsKKyAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zdHJ1Y3RUaHJvd1R5cGVFcnJvcihFeGVjU3RhdGUqIGV4ZWMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVj
dG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IDM4MDNlMDM1ZGViZGFiNTQwMjNkYTMyYzdhMThlN2YyNTc4ZjI4NGEuLmE4OTE4
ZDY2ZGFjZjUzODhiN2UxYTc1OGMzNmQwZDkxOGU2ZDJmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwCkBAIC0yOSwxMCArMjks
OSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChFcnJvckNv
bnN0cnVjdG9yKTsKIAotRXJyb3JDb25zdHJ1Y3Rvcjo6RXJyb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBFcnJvclByb3RvdHlwZSogZXJyb3JQcm90b3R5cGUpCitFcnJvckNvbnN0cnVjdG9yOjpF
cnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBlcnJvclByb3RvdHlwZSk7CiB9CiAKIHZv
aWQgRXJyb3JDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBFcnJv
clByb3RvdHlwZSogZXJyb3JQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKaW5kZXggZDNiZDgwM2U1ZjgyNzg2MDQ0Yzg1NTE5
MzJjYzAzN2RjYTE1YjhlNS4uNTA4M2E4ZTU3ZmZlY2YzMjE0ZWM2OGYyZDUxZWRkNDY4MjVmZWYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0
b3IuaApAQCAtMzIsMTYgKzMyLDE4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAg
ICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEVy
cm9yQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFcnJvclByb3RvdHlwZSogZXJyUHJv
dG90eXBlKQorICAgICAgICBzdGF0aWMgRXJyb3JDb25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEVycm9yUHJvdG90eXBlKiBlcnJvclByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEVycm9yQ29uc3RydWN0b3I+KCpleGVjLT5oZWFw
KCkpKSBFcnJvckNvbnN0cnVjdG9yKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBlcnJQ
cm90b3R5cGUpOworICAgICAgICAgICAgRXJyb3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxFcnJvckNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgRXJyb3JD
b25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25zdHJ1
Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZXJyb3JQcm90b3R5cGUpOworICAgICAgICAgICAg
cmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgRXJyb3JQcm90b3R5cGUqKTsKICAgICAg
ICAgCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRXJyb3JDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEVycm9yUHJvdG90eXBlKik7CisgICAgICAgIEVy
cm9yQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmly
dHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogICAg
ICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNDU4OTc0ZWEzNjVhNWQ2NDBiNjI3NWU2ODhlZTQ2OWE5YjNhZGMxYi4uMzA0
MjQ5ZDk1NDkyMjM1ZTE2ODcxNDg4MTc4NGJmMjJkZGExODZiMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5jcHAKQEAgLTM3
LDEwICszNyw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEZ1bmN0aW9uQ29uc3RydWN0b3IpOwogCi1GdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlw
ZSkKK0Z1bmN0aW9uQ29uc3RydWN0b3I6OkZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4
ZWMsIGZ1bmN0aW9uUHJvdG90eXBlKTsKIH0KIAogdm9pZCBGdW5jdGlvbkNvbnN0cnVjdG9yOjpm
aW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlv
blByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uQ29uc3RydWN0b3IuaAppbmRleCBkNDM2YTI3YWNhYzg5Yzk2ZmFhNjQ2YjgwODZhOGRjZDQx
NmNkMzUwLi4zMDM0ZWYxZmZkMjFmNmZmMTc1ZGFiMGM4OGVjNmE4MzY5NGEyYmExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5o
CkBAIC0zMSwxMyArMzEsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAg
ICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAotICAgICAgICBzdGF0aWMgRnVuY3Rp
b25Db25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5j
UHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgRnVuY3Rpb25Db25zdHJ1Y3RvciogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEZ1bmN0aW9uUHJvdG90eXBlKiBmdW5jdGlvblByb3RvdHlwZSkKICAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uQ29uc3RydWN0
b3I+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvbkNvbnN0cnVjdG9yKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlLCBmdW5jUHJvdG90eXBlKTsKKyAgICAgICAgICAgIEZ1bmN0aW9uQ29uc3Ry
dWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25Db25zdHJ1Y3Rv
cj4oKmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBzdHJ1
Y3R1cmUpOworICAgICAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGZ1
bmN0aW9uUHJvdG90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAg
ICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgRnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEZ1bmN0aW9uUHJvdG90eXBlKik7Cisg
ICAgICAgIEZ1bmN0aW9uQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsK
ICAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBGdW5jdGlvblByb3RvdHlw
ZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25z
dHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERh
dGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJv
dG90eXBlLmNwcAppbmRleCA3MjEyZWI3ODM1MjVhMmNmMmJlZWY0ZDNlYzlmZGMyN2Q4YzJkZWVi
Li5hOTdkOTY1MjllMTk2MWY0MTlmYzJhNGNkZTRlZWE1NjEzOTdmZGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCkBAIC0z
NywxMCArMzcsOSBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
blByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNBcHBseShFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9GdW5jQ2FsbChFeGVjU3Rh
dGUqKTsKIAotRnVuY3Rpb25Qcm90b3R5cGU6OkZ1bmN0aW9uUHJvdG90eXBlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CitGdW5jdGlvblByb3RvdHlwZTo6RnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9u
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5udWxsSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgRnVuY3Rpb25Q
cm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblBy
b3RvdHlwZS5oCmluZGV4IDlhZDcwZjcwMTU2MmMyZDk1N2Q3ZGJlOTgzZDAwYjBmNTZmOTM5MGUu
LjkwZDg3ODkxYjE3MWRmNzBiNDEzMTdmYTM3ZGQ4MTJjYjU4ZDdjMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaApAQCAtMzEsNyAr
MzEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25Qcm90b3R5
cGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25Qcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlv
blByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBG
dW5jdGlvblByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChhbGxvY2F0ZUNlbGw8RnVuY3Rpb25Q
cm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvblByb3RvdHlwZShnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMs
IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5udWxsSWRlbnRpZmllcik7CisgICAgICAgICAgICByZXR1
cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICB2b2lkIGFkZEZ1bmN0
aW9uUHJvcGVydGllcyhFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSogZnVu
Y3Rpb25TdHJ1Y3R1cmUsIEpTRnVuY3Rpb24qKiBjYWxsRnVuY3Rpb24sIEpTRnVuY3Rpb24qKiBh
cHBseUZ1bmN0aW9uKTsKQEAgLTQ1LDcgKzQ3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHZvaWQgZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSk7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAgICBGdW5jdGlvblByb3RvdHlwZShK
U0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdl
dENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCA1Mzdh
NDU3NmM3MDIzYzA5NzAyNWEyYmMwOGU2ZmI0YTNkOWY2MDYzLi5hMTAzYzM3NjEzNjJjMjUzYjZj
ZTI4ZGExZjJjMDJhNjFhZjZjZGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmNwcApAQCAtMzIsMTAgKzMyLDkg
QEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChOYXRpdmVFcnJvckNvbnN0cnVjdG9yKTsKIAog
Y29uc3QgQ2xhc3NJbmZvIE5hdGl2ZUVycm9yQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0
aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCi1OYXRpdmVFcnJvckNv
bnN0cnVjdG9yOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSog
cHJvdG90eXBlU3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJiBuYW1lKQorTmF0aXZlRXJyb3JDb25z
dHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBwcm90b3R5cGVTdHJ1Y3R1cmUsIG5hbWUpOwogfQogCiB2b2lkIE5hdGl2ZUVycm9yQ29u
c3RydWN0b3I6OnZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImIHZpc2l0b3IpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvckNvbnN0cnVjdG9yLmgK
aW5kZXggMWEwYjRlMDc4NjJhZjczMmMzZTVjODRmNzdiMmRlMTg3ZjkzNmIyZS4uYTdhY2M1YTJh
OTY5NGY2ODhlYmVhNDlmMmNiZGRkM2QzNDg3ZGZmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yQ29uc3RydWN0b3IuaApAQCAtMzYsNyAr
MzYsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgTmF0aXZlRXJyb3JDb25z
dHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFN0cnVjdHVyZSogcHJvdG90eXBlU3RydWN0dXJl
LCBjb25zdCBVU3RyaW5nJiBuYW1lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3
IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIE5h
dGl2ZUVycm9yQ29uc3RydWN0b3IoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIHByb3Rv
dHlwZVN0cnVjdHVyZSwgbmFtZSk7CisgICAgICAgICAgICBOYXRpdmVFcnJvckNvbnN0cnVjdG9y
KiBjb25zdHJ1Y3RvciA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUVycm9yQ29uc3RydWN0b3I+
KCpleGVjLT5oZWFwKCkpKSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKTsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBn
bG9iYWxPYmplY3QsIHByb3RvdHlwZVN0cnVjdHVyZSwgbmFtZSk7CisgICAgICAgICAgICByZXR1
cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25z
dCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNjQsNyArNjYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0cnVjdHVyZSogcHJvdG90
eXBlU3RydWN0dXJlLCBjb25zdCBVU3RyaW5nJik7CisgICAgICAgIE5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEludGVy
bmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5
cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ2Fs
bFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmNwcAppbmRleCA1YjI4OTllYTMw
YzE5MzE3ODdhMjEyMzQzNzFlNmIwM2JlMTlmMWQ0Li5kZmRkODdmODUzMjFiOTE5Nzk3N2JmNWQ3
ZjU5YmMwMzdiMDg3NjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OYXRpdmVFcnJvclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwCkBAIC0zMCwxMyArMzAsMTIgQEAgbmFtZXNw
YWNlIEpTQyB7CiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoTmF0aXZlRXJyb3JQcm90b3R5
cGUpOwogCi1OYXRpdmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVycm9yQ29uc3RydWN0
b3IqIGNvbnN0cnVjdG9yKQorTmF0aXZlRXJyb3JQcm90b3R5cGU6Ok5hdGl2ZUVycm9yUHJvdG90
eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBFcnJvclBy
b3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBuYW1lQW5kTWVzc2FnZSwgY29uc3RydWN0b3IpOwogfQogCi1pbmxpbmUgdm9p
ZCBOYXRpdmVFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVU3RyaW5nJiBuYW1lQW5kTWVzc2Fn
ZSwgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IpCit2b2lkIE5hdGl2ZUVycm9y
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIGNvbnN0IFVTdHJpbmcmIG5hbWVBbmRNZXNzYWdlLCBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvcikKIHsKICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5uYW1lLCBqc1N0cmluZyhleGVjLCBuYW1lQW5kTWVzc2FnZSks
IERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05h
dGl2ZUVycm9yUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvclByb3RvdHlwZS5oCmluZGV4IGQ4OTRhYjRmMzUzMDZhOGZhNzliZWE5YWM0ZTk3MTc4
ZmY3NWQwOWYuLjc2YWQ3MDZkZWZhOTBlOTQzNWE5MTlmNzNkYzYzNDRlZjYzNDM0ZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBl
LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5
cGUuaApAQCAtMjgsMTQgKzI4LDE2IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgTmF0
aXZlRXJyb3JQcm90b3R5cGUgOiBwdWJsaWMgRXJyb3JQcm90b3R5cGUgewogICAgIHByaXZhdGU6
Ci0gICAgICAgIE5hdGl2ZUVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgY29uc3QgVVN0cmluZyYsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqKTsK
KyAgICAgICAgTmF0aXZlRXJyb3JQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAg
ICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEVycm9yUHJvdG90eXBlIEJhc2U7CiAK
ICAgICAgICAgc3RhdGljIE5hdGl2ZUVycm9yUHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgVVN0cmluZyYgbmFtZSwgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3Ip
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOYXRpdmVF
cnJvclByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE5hdGl2ZUVycm9yUHJvdG90eXBlKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBjb25zdHJ1Y3Rvcik7CisgICAgICAgICAg
ICBOYXRpdmVFcnJvclByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChhbGxvY2F0ZUNlbGw8TmF0
aXZlRXJyb3JQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBOYXRpdmVFcnJvclByb3RvdHlwZShl
eGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihl
eGVjLCBnbG9iYWxPYmplY3QsIG5hbWUsIGNvbnN0cnVjdG9yKTsKKyAgICAgICAgICAgIHJldHVy
biBwcm90b3R5cGU7CiAgICAgICAgIH0KIAogICAgIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmNwcAppbmRleCA2Mzhl
M2ZmOWI1NWRlNjJhNTYxNmQwNzFhZTkwNjIyZmMzZDU5YzgxLi5mNzhhMDRlOTIxNTg4OTM4NWY4
OWQwMWYyODI5MGIwNWEwOWQ2YzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuY3BwCkBAIC01NCwxMCArNTQsOSBAQCBjb25zdCBD
bGFzc0luZm8gTnVtYmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVy
bmFsRnVuY3Rpb246OnNfaQogQGVuZAogKi8KIAotTnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlKQor
TnVtYmVyQ29uc3RydWN0b3I6Ok51bWJlckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSkgCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgbnVt
YmVyUHJvdG90eXBlKTsKIH0KIAogdm9pZCBOdW1iZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiBleGVjLCBOdW1iZXJQcm90b3R5cGUqIG51bWJlclByb3RvdHlwZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oCmlu
ZGV4IDg0YzRkMWZiNjI5NjgyYTU2NGYxYTFiNmY4MWRkMmVkOTkxNzY3MjcuLjRkNjQxYjk4NDI1
MTM2N2IyZTlkNmVjOWE5NGUxMzFkNjZjYmVhMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaApAQCAtMzEsOSArMzEsMTEgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rp
b24gQmFzZTsKIAotICAgICAgICBzdGF0aWMgTnVtYmVyQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBOdW1iZXJQcm90b3R5cGUqIG51bVByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIE51
bWJlckNvbnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTnVtYmVyUHJvdG90eXBlKiBudW1i
ZXJQcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxOdW1iZXJDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIE51bWJlckNvbnN0cnVjdG9y
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBudW1Qcm90b3R5cGUpOworICAgICAgICAg
ICAgTnVtYmVyQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8TnVt
YmVyQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBOdW1iZXJDb25zdHJ1Y3RvcihnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRp
b24oZXhlYywgbnVtYmVyUHJvdG90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3Rv
cjsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
RXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpAQCAtNTQsNyAr
NTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0
cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW1wbGVtZW50c0hh
c0luc3RhbmNlIHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2
YXRlOgotICAgICAgICBOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSosIE51bWJlclByb3RvdHlwZSopOworICAgICAgICBOdW1iZXJDb25zdHJ1
Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0
cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1
YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAKaW5kZXggODcwMWU5
MTE3ZmM4MWU5ZjkzMGUwY2Q4MGI1MGEwYTM0MWZhNWE2YS4uMDdkYTFlNDIyYzZhYmM3ZjUyOTZm
NjU0YjBhMjdiNWU5MDcyYWRhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9OdW1iZXJQcm90b3R5cGUuY3BwCkBAIC03MCwxMCArNzAsOSBAQCBjb25zdCBDbGFzc0lu
Zm8gTnVtYmVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJOdW1iZXIiLCAmTnVtYmVyT2JqZWN0Ojpz
X2luZm8sIDAsCiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoTnVtYmVyUHJvdG90eXBlKTsK
IAotTnVtYmVyUHJvdG90eXBlOjpOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKK051bWJlclBy
b3RvdHlwZTo6TnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgOiBOdW1iZXJPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBO
dW1iZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5
cGUuaAppbmRleCA4ZTEwMDdhY2JiYzhiYzZjYTUwNTI0MWRlNjY3ZjNjZGU2ZDQ4MDQwLi4zNDFm
Y2NjZDkwNmYzMjJhMDBjM2ViYzA3ZWZiOGVlYjE4MTIwNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJQcm90b3R5cGUuaApAQCAtMzEsNyArMzEsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgTnVtYmVyUHJvdG90eXBlKiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVD
ZWxsPE51bWJlclByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIE51bWJlclByb3RvdHlwZShleGVj
LCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBOdW1iZXJQcm90b3R5cGUq
IHByb3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE51bWJlclByb3RvdHlwZT4oKmV4ZWMtPmhl
YXAoKSkpIE51bWJlclByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJv
dG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAg
cmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00Niw3ICs0OCw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBOdW1iZXJPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgTnVtYmVyUHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7CisgICAgICAgIE51bWJlclByb3RvdHlwZShFeGVjU3RhdGUqLCBT
dHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGM4NzEwMTg3
YWVkN2VlZjk2NGUwNDM4Njg5OTI4YzNjOGI4Y2RkMS4uM2E1NGE1NDcxZTBmZWM2ZjYzZjFmYWZi
Y2Q0NGM0NGFkODU0ODM0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcApAQCAtNzUsMTAgKzc1LDkgQEAgY29uc3QgQ2xhc3NJ
bmZvIE9iamVjdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKLU9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVj
dHVyZSogc3RydWN0dXJlLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFByb3RvdHlwZSkKK09iamVj
dENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgb2JqZWN0UHJv
dG90eXBlKTsKIH0KIAogdm9pZCBPYmplY3RDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhl
Y1N0YXRlKiBleGVjLCBPYmplY3RQcm90b3R5cGUqIG9iamVjdFByb3RvdHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oCmluZGV4IDRj
MzIwMjg4MWIyMDRjYzQxMjhmODc0MjhlNDA3YTExM2MyOTcwZDAuLmI4NDIxMmYwZDA0YzMzNTdi
MTE2MTlmNjQ0YWI1ZGM3NGE1NDQzMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuaApAQCAtMzEsOSArMzEsMTEgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFz
ZTsKIAotICAgICAgICBzdGF0aWMgT2JqZWN0Q29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBPYmplY3RQcm90b3R5cGUqIG9ialByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIE9iamVjdENv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqZWN0UHJvdG90eXBlKiBvYmplY3RQcm90
b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxP
YmplY3RDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIE9iamVjdENvbnN0cnVjdG9yKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBvYmpQcm90b3R5cGUpOworICAgICAgICAgICAgT2Jq
ZWN0Q29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8T2JqZWN0Q29u
c3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBPYmplY3RDb25zdHJ1Y3RvcihnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhl
Yywgb2JqZWN0UHJvdG90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAg
ICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpAQCAtNTEsNyArNTMsNyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVy
ZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6
U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICBPYmplY3RDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIE9iamVjdFByb3RvdHlw
ZSopOworICAgICAgICBPYmplY3RDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25z
dHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERh
dGEmKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVn
RXhwQ29uc3RydWN0b3IuY3BwCmluZGV4IGZlMDZiNmNkNDk3M2NhZWQ3NzA1NDJkYmYxZDllNDI2
ZTg0YzFjMTguLmNhZmExMjkxYmMyNWM5NWU1Nzc5MWIxNWMwZDRhOTJhZGQwY2RjNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5j
cHAKQEAgLTk1LDExICs5NSwxMCBAQCBjb25zdCBDbGFzc0luZm8gUmVnRXhwQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIkZ1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaQogQGVuZAogKi8K
IAotUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4
cFByb3RvdHlwZSogcmVnRXhwUHJvdG90eXBlKQorUmVnRXhwQ29uc3RydWN0b3I6OlJlZ0V4cENv
bnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAg
ICAsIGQoYWRvcHRQdHIobmV3IFJlZ0V4cENvbnN0cnVjdG9yUHJpdmF0ZSkpCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oZXhlYywgcmVnRXhwUHJvdG90eXBlKTsKIH0KIAogdm9pZCBSZWdFeHBDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBSZWdFeHBQcm90b3R5cGUq
IHJlZ0V4cFByb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9S
ZWdFeHBDb25zdHJ1Y3Rvci5oCmluZGV4IDVmYTc2MWVhNmIwYWZhNzU1ZDk4NDNiMzNiNmQzYjc4
MmM2MzhhM2MuLmE5YTllNjkzYWYxMmQ0MTM4NDljMWQ2ZTQ0N2EwOTQ2ZGZlYzdhZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaApA
QCAtNjEsNyArNjEsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUmVnRXhw
Q29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFBy
b3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PFJlZ0V4cENvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgUmVnRXhwQ29uc3RydWN0b3IoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIHJlZ0V4cFByb3RvdHlwZSk7CisgICAgICAgICAg
ICBSZWdFeHBDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKGFsbG9jYXRlQ2VsbDxSZWdF
eHBDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIFJlZ0V4cENvbnN0cnVjdG9yKGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlv
bihleGVjLCByZWdFeHBQcm90b3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9y
OwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNWYWx1ZSBwcm90b3R5cGUpCkBAIC05NCw3ICs5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRP
d25Qcm9wZXJ0eVNsb3QgfCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgfCBJbnRlcm5hbEZ1bmN0aW9u
OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZ0V4cENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnRXhwUHJvdG90
eXBlKik7CisgICAgICAgIFJlZ0V4cENvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0
dXJlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENv
bnN0cnVjdERhdGEmKTsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxs
RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdF
eHBQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJv
dG90eXBlLmNwcAppbmRleCA5MWI4ODY5N2YzZGI4Yjc4MDRhZmYyYjA4ZWFkOGQ4Mjc4NDkzZmU2
Li42YzE4NzI5ZjcwMjJjNmRhZTEzZmYxYzg0MWFlOGZhMDc2NDc3YmI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKQEAgLTYyLDEw
ICs2Miw5IEBAIGNvbnN0IENsYXNzSW5mbyBSZWdFeHBQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlJl
Z0V4cCIsICZSZWdFeHBPYmplY3Q6OnNfaW5mbywgMCwKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5f
Q0VMTChSZWdFeHBQcm90b3R5cGUpOwogCi1SZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlw
ZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCitSZWdFeHBQcm90b3R5cGU6OlJlZ0V4cFByb3RvdHlw
ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVn
RXhwKiByZWdFeHApCiAgICAgOiBSZWdFeHBPYmplY3QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUs
IHJlZ0V4cCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogfQogCiBib29s
IFJlZ0V4cFByb3RvdHlwZTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QgJnNsb3QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCmluZGV4IGMzMmE5
YmY4N2VlZjYzNWUwYTg2MmRmZmJkYzM3NTJlZmFlNzdkNTkuLmNhMmEyNmQ4MTUzM2YzNGNkYjc4
NzdiZjM1Y2E3ZGQ3OTU5ZWYwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZ0V4cFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1JlZ0V4cFByb3RvdHlwZS5oCkBAIC0zMiw3ICszMiw5IEBAIG5hbWVzcGFjZSBKU0Mgewog
CiAgICAgICAgIHN0YXRpYyBSZWdFeHBQcm90b3R5cGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdF
eHAqIHJlZ0V4cCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVD
ZWxsPFJlZ0V4cFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIFJlZ0V4cFByb3RvdHlwZShleGVj
LCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgcmVnRXhwKTsKKyAgICAgICAgICAgIFJlZ0V4cFBy
b3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChhbGxvY2F0ZUNlbGw8UmVnRXhwUHJvdG90eXBlPigq
ZXhlYy0+aGVhcCgpKSkgUmVnRXhwUHJvdG90eXBlKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBy
ZWdFeHApOworICAgICAgICAgICAgcHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOworICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00Myw3ICs0NSw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIFJl
Z0V4cFByb3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFJl
Z0V4cCopOworICAgICAgICBSZWdFeHBQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1
cmUqLCBSZWdFeHAqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgUmVnRXhwT2JqZWN0OjpTdHJ1Y3R1
cmVGbGFnczsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZGJiMTYxZjBiZDFlNTNlMGJmOTRm
NTEzNTlhYTVjYmE4MDJmZTA1NS4uNmYzNTI2NjRkZTE0NWExMzcxODhmN2NmNzE3ZGRlM2RhM2Q5
Y2ExMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29u
c3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0Nv
bnN0cnVjdG9yLmNwcApAQCAtNDcsMTAgKzQ3LDkgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ0Nv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kK
IAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChTdHJpbmdDb25zdHJ1Y3Rvcik7CiAKLVN0cmlu
Z0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJpbmdQcm90b3R5
cGUqIHN0cmluZ1Byb3RvdHlwZSkKK1N0cmluZ0NvbnN0cnVjdG9yOjpTdHJpbmdDb25zdHJ1Y3Rv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oZXhlYywgc3RyaW5nUHJvdG90eXBlKTsKIH0KIAogdm9pZCBTdHJpbmdDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBTdHJpbmdQcm90b3R5cGUq
IHN0cmluZ1Byb3RvdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdDb25zdHJ1Y3Rvci5oCmluZGV4IDgwZTM3MTYyMDkwNWUwOThiYzMxZmVlZjEyNzA3Y2M3
OGNlMGIyZDQuLjk1N2I0YjMxOTMwYjZlNWYwZGFlNjgzNzg4YzU0ZDVkYjMwNTE4NDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaApA
QCAtMzEsOSArMzEsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICB0
eXBlZGVmIEludGVybmFsRnVuY3Rpb24gQmFzZTsKIAotICAgICAgICBzdGF0aWMgU3RyaW5nQ29u
c3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nUHJvdG90eXBlKiBzdHJQcm90b3R5
cGUpCisgICAgICAgIHN0YXRpYyBTdHJpbmdDb25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCAsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBTdHJpbmdQcm90b3R5cGUqIHN0cmluZ1Byb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFN0cmluZ0NvbnN0cnVjdG9yPigqZXhlYy0+aGVh
cCgpKSkgU3RyaW5nQ29uc3RydWN0b3IoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIHN0
clByb3RvdHlwZSk7CisgICAgICAgICAgICBTdHJpbmdDb25zdHJ1Y3RvciogY29uc3RydWN0b3Ig
PSBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpbmdDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIFN0
cmluZ0NvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGNv
bnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBzdHJpbmdQcm90b3R5cGUpOworICAgICAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNv
bnN0IENsYXNzSW5mbyBzX2luZm87CkBAIC00Nyw3ICs0OSw3IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFnczsKIAog
ICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cmluZ0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgU3RyaW5nUHJvdG90eXBlKik7CisgICAgICAgIFN0cmlu
Z0NvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZvaWQg
ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgU3RyaW5nUHJvdG90eXBlKik7CiAgICAgICAgIHZp
cnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKICAg
ICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJh
ZGVzQXNVbmRlZmluZWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09i
amVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmgKaW5kZXggYzA0ZWZkZTNlMWFkZDI1N2Jm
N2RhYTk2YjBjZDZiMTgxNDRlMWMwZS4uZTAyMWViNTQzNzIyNjUzYzMzZmM0YjFiZjc2YmQxYmM1
MDE1ZTg4NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
T2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZC5oCkBA
IC0zNiwxNCArMzYsMTUgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHsKICAgICAgICAgICAg
IEpTU3RyaW5nKiBuZXdTdHJpbmcgPSBqc1N0cmluZyhleGVjLCBzdHJpbmcpOwogICAgICAgICAg
ICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+c3RyaW5nUHJvdG90eXBlKCkpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkPigqZXhlYy0+aGVh
cCgpKSkgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYywgc3RydWN0
dXJlLCBuZXdTdHJpbmcpOworICAgICAgICAgICAgU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPFN0cmluZ09iamVjdFRoYXRN
YXNxdWVyYWRlc0FzVW5kZWZpbmVkPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nT2JqZWN0VGhhdE1h
c3F1ZXJhZGVzQXNVbmRlZmluZWQoZXhlYywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIG9iamVj
dC0+ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuZXdTdHJpbmcpOworICAgICAg
ICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
U3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjLCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIHN0cmluZykKKyAgICAgICAgU3RyaW5nT2Jq
ZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICAgICAgICAgIDogU3RyaW5nT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEo
KSwgc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVj
LT5nbG9iYWxEYXRhKCksIHN0cmluZyk7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgU3Ry
dWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHByb3RvKSAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGExYzlhYTlmMWNi
NmU4NTAxNDUzMjgxMGFlMjNjMGM4NGJiYTUyOWMuLjhlMTlmMDFkY2JkNDAwMDUzYjIzNzQ4YTM1
ZDA2YWFhOTMxZTFiMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcApAQCAtMTMxLDEwICsxMzEsOSBAQCBjb25zdCBDbGFzc0luZm8g
U3RyaW5nUHJvdG90eXBlOjpzX2luZm8gPSB7ICJTdHJpbmciLCAmU3RyaW5nT2JqZWN0OjpzX2lu
Zm8sIDAsCiAqLwogCiAvLyBFQ01BIDE1LjUuNAotU3RyaW5nUHJvdG90eXBlOjpTdHJpbmdQcm90
b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNTdHJpbmcqIG5hbWVBbmRNZXNzYWdlKQorU3RyaW5nUHJvdG90
eXBlOjpTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIG5hbWVBbmRNZXNzYWdlKTsK
IH0KIAogdm9pZCBTdHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqLCBKU1N0cmluZyogbmFtZUFuZE1lc3NhZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5oCmluZGV4IDQ5YTFkYTIw
OGQxZTBjMTgyODU0MzI1Yjg0NDQ0YzIzN2JlODM4ZDkuLjEyMTQzM2M1NjNhZjlkZTU0MWE2NWMw
N2E2N2M5YTBiMTM4MTJkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmluZ1Byb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5oCkBAIC0yOSwxNCArMjksMTcgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICBjbGFzcyBTdHJpbmdQcm90b3R5cGUgOiBwdWJsaWMgU3RyaW5nT2JqZWN0IHsKICAgICBw
cml2YXRlOgotICAgICAgICBTdHJpbmdQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBKU1N0cmluZyopOworICAgICAgICBTdHJpbmdQcm90b3R5cGUoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlKik7CiAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgU3Ry
aW5nT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3RhdGljIFN0cmluZ1Byb3RvdHlwZSogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxTdHJpbmdQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdQcm90b3R5cGUoZXhl
YywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGpzRW1wdHlTdHJpbmcoZXhlYykpOworICAgICAg
ICAgICAgSlNTdHJpbmcqIGVtcHR5ID0ganNFbXB0eVN0cmluZyhleGVjKTsKKyAgICAgICAgICAg
IFN0cmluZ1Byb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJv
dG90eXBlPigqZXhlYy0+aGVhcCgpKSkgU3RyaW5nUHJvdG90eXBlKGV4ZWMsIHN0cnVjdHVyZSk7
CisgICAgICAgICAgICBwcm90b3R5cGUtPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVj
dCwgZW1wdHkpOworICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hh
bmdlTG9nCmluZGV4IGRjMTQwODEyZDRhYmMyZDFjOGJjY2Q1ZWJlZjNkZGMzNGNhYmE2ZWEuLjYw
N2ZhMWZmZGE1OWFjZjNlNDVjZDc0Y2VjODI1MTI5MDFiYjA0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA5LTEyICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlz
dHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg2LzcpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgc2l4dGgg
bGV2ZWwgb2YgdGhlIHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAg
ICBtZXRob2RzIHRvIGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRo
IG5vbi10cml2aWFsIAorICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhp
cyBwcmltYXJpbHkgY29uc2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRp
b24oKSBkb3duIAorICAgICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNz
ZXMgb2YgdGhlIHNlY29uZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxs
IGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNz
J3MgY29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4g
IERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFp
biB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlz
IGNhbGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4g
b2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRp
bWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisg
ICAgICAgICogSlNSdW4uY3BwOgorICAgICAgICAoSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0dsdWVH
bG9iYWxPYmplY3QpOgorICAgICAgICAqIEpTUnVuLmg6CisgICAgICAgIChKU0dsdWVHbG9iYWxP
YmplY3Q6OmNyZWF0ZSk6CisKIDIwMTEtMDktMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJv
bSBqc29iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uY3BwCmluZGV4IDA2NDI2MzRlNzc4MjZmYTNm
MWNkMjc3ODk5YjVhYzVmYzM3OTVhMmQuLjYzMTkyZTJjOGEzMmZmNzBlMGFmZDliNGUzNWYzNjkw
MzIxM2FkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pTUnVuLmNwcApAQCAtMzgsNyArMzgsNiBAQCBKU0ds
dWVHbG9iYWxPYmplY3Q6OkpTR2x1ZUdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydQogICAgICwgbV9mbGFncyhmbGFncykKICAgICAsIG1fdXNlck9i
amVjdFN0cnVjdHVyZShnbG9iYWxEYXRhLCB1c2VyT2JqZWN0U3RydWN0dXJlKQogewotICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXMpOwogfQogCiBKU1J1bjo6SlNSdW4oQ0ZTdHJp
bmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxhZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdEdsdWUvSlNSdW4uaCBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCmluZGV4IGFm
OWVhNDkwYTVjYzRkMDg0MjZkNDRkZGJmMmVlYzNlZDZhNDAwMWYuLmM4Y2QwMTEzZmUyZTJkZjBl
Y2YxNGZiMTYxYzI1NGI2ZWVkNmJlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1
ZS9KU1J1bi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCkBAIC00MSw3ICs0
MSw5IEBAIGNsYXNzIEpTR2x1ZUdsb2JhbE9iamVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7
CiAgICAgICAgIHN0YXRpYyBKU0dsdWVHbG9iYWxPYmplY3QqIGNyZWF0ZShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0ZsYWdzIGZsYWdzID0ga0pTRmxh
Z05vbmUpCiAgICAgICAgIHsKICAgICAgICAgICAgIFN0cnVjdHVyZSogdXNlck9iamVjdFN0cnVj
dHVyZSA9IFVzZXJPYmplY3RJbXA6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxEYXRhLCAwLCBqc051
bGwoKSk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SlNHbHVlR2xvYmFs
T2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBKU0dsdWVHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlLCB1c2VyT2JqZWN0U3RydWN0dXJlLCBmbGFncyk7CisgICAgICAgICAgICBKU0ds
dWVHbG9iYWxPYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEpTR2x1ZUdsb2JhbE9i
amVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNHbHVlR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVyZSwgZmxhZ3MpOworICAgICAgICAgICAgb2JqZWN0
LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgICAgICAgICAgcmV0dXJu
IG9iamVjdDsKICAgICAgICAgfQogCiAgICAgICAgIEpTRmxhZ3MgRmxhZ3MoKSBjb25zdCB7IHJl
dHVybiBtX2ZsYWdzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmJkZjcyOGRhN2Q4ZjU0MWU0NjI0MGViN2Vk
MWIzN2EyNTY5M2VkZS4uNTU3MWU5YmEyNTBhZDJlYjM5ZDU4NzQ3MzgxY2RiMTk3MGY2ZTY1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTA5LTEyICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24g
bGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICg2LzcpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzY5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICBDb21wbGV0ZWQgdGhlIHNpeHRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBh
ZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRo
aW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3Ry
dWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hp
bmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUg
Y29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhl
IGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlv
bigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3Jl
YXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFs
bG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5p
c2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25j
ZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkg
b3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVz
ZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICBDaGFuZ2VkIHRoZSBET00gYmluZGlu
Z3MgZ2VuZXJhdGlvbiBzY3JpcHQgdG8gbW92ZSB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24g
aW50byB0aGUKKyAgICAgICAgY3JlYXRlIG1ldGhvZHMgb2YgYWxsIHRoZSBnZW5lcmF0ZWQgY2xh
c3NlcyBleGNlcHQgZm9yIGNoaWxkcmVuIG9mIEpTRE9NV2luZG93QmFzZSBhbmQgCisgICAgICAg
IEpTV29ya2VyQ29udGV4dEJhc2UuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0
ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQ29uc3RydWN0b3JEZWNsYXJhdGlv
bik6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisKKyAgICAgICAg
UmVtYWluaW5nIGZpbGUgbmFtZXMgdHJ1bmNhdGVkIGZvciBicmV2aXR5LgorCiAyMDExLTA5LTEy
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBSdW50aW1lLmNhbGxGdW5jdGlvbk9uIGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMg
dGhhdCBldmFsdWF0ZSB0byBmYWxzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggY2M3NDRlNjRm
YmI5ZWYwY2ZhMGEzMzZiYTI3NzM4ZTZmMjc4MjIyNy4uYmVmOTdiMzM5ZTc1MWVkZDMzMzdiZGM1
N2VmZjVjNTEwZjI0YWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2NDMsMTAgKzE2NDMs
MTEgQEAgX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCiAK
ICNpZiBVU0UoUExVR0lOX0hPU1RfUFJPQ0VTUykKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTFn
ZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRhRQorX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlz
aENyZWF0aW9uRVJOU18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlND
MTNSdW50aW1lTWV0aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18x
MElkZW50aWZpZXJFUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Qy
NGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmll
ckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2lu
Zm9FCi1fX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xv
YmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJLTlNfMTBJZGVudGlmaWVyRVJOM1dURjZWZWN0b3JJ
UE5TXzhCaW5kaW5nczZNZXRob2RFTG0wRUVFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBO
U18xNEpTR2xvYmFsT2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5k
aW5nczZNZXRob2RFTG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKIF9f
Wk4zSlNDOEJpbmRpbmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRh
RQogX19aTjNKU0M4QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185
RXhlY1N0YXRlRVJLTlNfMTBJZGVudGlmaWVyRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUJpbmRpbmcuaAppbmRleCBhYzhlOTgwOGE0NWNiNDJiZmYzZTYzNWJiZTI1ZmE3ZTMwYWZh
MTMzLi40ZTI5MGVkOTE5MzJjY2M5ZTYyNjg5N2MwOGQxNDc5NDU1OWI3YjE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAvLyBCYXNlIGNsYXNzIGZvciBhbGwgY29uc3RydWN0b3Ig
b2JqZWN0cyBpbiB0aGUgSlNDIGJpbmRpbmdzLgogICAgIGNsYXNzIERPTUNvbnN0cnVjdG9yT2Jq
ZWN0IDogcHVibGljIEpTRE9NV3JhcHBlciB7CisgICAgICAgIHR5cGVkZWYgSlNET01XcmFwcGVy
IEJhc2U7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7CkBA
IC01NSwxMyArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01Db25zdHJ1
Y3Rvck9iamVjdChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgfQogICAgIH07CiAKICAgICAvLyBDb25zdHJ1
Y3RvcnMgdXNpbmcgdGhpcyBiYXNlIGNsYXNzIGRlcGVuZCBvbiBiZWluZyBpbiBhIERvY3VtZW50
IGFuZAogICAgIC8vIGNhbiBuZXZlciBiZSB1c2VkIGZyb20gYSBXb3JrZXJDb250ZXh0LgogICAg
IGNsYXNzIERPTUNvbnN0cnVjdG9yV2l0aERvY3VtZW50IDogcHVibGljIERPTUNvbnN0cnVjdG9y
T2JqZWN0IHsKKyAgICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAg
IHB1YmxpYzoKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QKICAgICAgICAgewpA
QCAtNzIsNiArNzMsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01Db25zdHJ1
Y3RvcldpdGhEb2N1bWVudChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQogICAgICAgICAgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChz
dHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKICAgICAgICAgeworICAgICAgICAgICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICAgICAgeworICAgICAg
ICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwog
ICAgICAgICAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc0RvY3VtZW50KCkpOwogICAgICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCBmOWVhZjZhNDliMWU5ZjRi
Yzg1OTdlMGM5MjE1NjlmMzE0ODY2YzA0Li43MWQ5OGM5MWE1N2Q3YjYxMzMxN2RhNmE3YjQ4MTI1
NDcwNTE0MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUds
b2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9i
YWxPYmplY3QuY3BwCkBAIC00MiwxMiArNDIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
b25zdCBDbGFzc0luZm8gSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUdsb2JhbE9i
amVjdCIsICZKU0dsb2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKLUpTRE9NR2xvYmFsT2Jq
ZWN0OjpKU0RPTUdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQsIEpTT2JqZWN0
KiB0aGlzVmFsdWUpCitKU0RPTUdsb2JhbE9iamVjdDo6SlNET01HbG9iYWxPYmplY3QoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxET01X
cmFwcGVyV29ybGQ+IHdvcmxkKQogICAgIDogSlNHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3Ry
dWN0dXJlKQogICAgICwgbV9jdXJyZW50RXZlbnQoMCkKICAgICAsIG1fd29ybGQod29ybGQpCiB7
Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpc1ZhbHVlKTsKIH0KIAogdm9pZCBK
U0RPTUdsb2JhbE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU09iamVjdCogdGhpc1ZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01HbG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NR2xvYmFsT2JqZWN0LmgKaW5kZXggMDE0YjU2OWJhMmIzMWU5NTM5ZDc2ZTUzNWIwNWU5NzZm
NDNiYmVkZC4uOTAwMjgzMDgzNGUwZjMwYjFiZTBkNDJmODE2YjkyZTkzMTI1OTRjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC00Niw3
ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0
cnVjdCBKU0RPTUdsb2JhbE9iamVjdERhdGE7CiAKLSAgICAgICAgSlNET01HbG9iYWxPYmplY3Qo
SlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8RE9NV3JhcHBl
cldvcmxkPiwgSlNDOjpKU09iamVjdCogdGhpc1ZhbHVlKTsKKyAgICAgICAgSlNET01HbG9iYWxP
YmplY3QoSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8RE9N
V3JhcHBlcldvcmxkPik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2Jh
bERhdGEmLCBKU0M6OkpTT2JqZWN0KiB0aGlzVmFsdWUpOwogCiAgICAgcHVibGljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggOTgyZWI2
Y2VkNThjYzcyMDUxNmNjZmRkOTBmZTU4MjAyNDQ4MTk1YS4uN2ZjYWU3NjQ2YjY0Mzc4ZGI0OTAy
NTZlMGQ0NDI3ZjU5MTcwYjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCkBAIC00NCwxMCArNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY29uc3QgQ2xhc3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93Iiwg
JkpTRE9NR2xvYmFsT2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAogSlNET01XaW5kb3dCYXNlOjpK
U0RPTVdpbmRvd0Jhc2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dTaGVsbCogc2hl
bGwpCi0gICAgOiBKU0RPTUdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHNoZWxs
LT53b3JsZCgpLCBzaGVsbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSwgc2hlbGwtPndvcmxkKCkpCiAgICAgLCBtX2ltcGwod2luZG93KQogICAgICwgbV9z
aGVsbChzaGVsbCkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBzaGVsbCk7Cit9
CisKK3ZvaWQgSlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsKQoreworICAgIEJhc2U6OmZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEsIHNoZWxsKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogCiAgICAgR2xvYmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggYTJjNDc4NTUzMjg5
N2UwNjE4YzE5NTkwNDcyOTA4M2Y3NzM4MWQyYi4uZmY3OTUzNzI1ZTRjNDRkZTczOGZkYjczZjZk
YjYxNDU1NDQ4ZDBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB0
eXBlZGVmIEpTRE9NR2xvYmFsT2JqZWN0IEJhc2U7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBK
U0RPTVdpbmRvd0Jhc2UoSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NS
ZWZQdHI8RE9NV2luZG93PiwgSlNET01XaW5kb3dTaGVsbCopOworICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNET01XaW5kb3dTaGVsbCopOwogCiAgICAg
cHVibGljOgogICAgICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCmluZGV4IDY4N2Y3NGM4
ZWVjYWIwZWU2ZjQxMGIxYWYzMjkzMjAyNTNhMjc4MjcuLjY1ODRlODZmNzQ0YmQ0OWZiMWNlMzBk
YzU5ZWViMDc2NDEwZjk2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCkBAIC00OSw5ICs0OSwxNSBAQCBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTV29ya2VyQ29udGV4dEJhc2UpOwogY29uc3QgQ2xhc3NJbmZvIEpTV29y
a2VyQ29udGV4dEJhc2U6OnNfaW5mbyA9IHsgIldvcmtlckNvbnRleHQiLCAmSlNET01HbG9iYWxP
YmplY3Q6OnNfaW5mbywgMCwgMCB9OwogCiBKU1dvcmtlckNvbnRleHRCYXNlOjpKU1dvcmtlckNv
bnRleHRCYXNlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGltcGwpCi0gICAgOiBKU0RPTUds
b2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG5vcm1hbFdvcmxkKGdsb2JhbERhdGEp
LCB0aGlzKQorICAgIDogSlNET01HbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBu
b3JtYWxXb3JsZChnbG9iYWxEYXRhKSkKICAgICAsIG1faW1wbChpbXBsKQogeworICAgIGZpbmlz
aENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXMpOworfQorCit2b2lkIEpTV29ya2VyQ29udGV4dEJh
c2U6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNXb3JrZXJDb250
ZXh0QmFzZSogdGhpc1ZhbHVlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERh
dGEsIHRoaXNWYWx1ZSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCmluZGV4
IGIwODYzMzZjNDQyZDU4ZGQzOGU3YTYzOWI0YmI2MGY4YWRmMGJmYTguLjZkYzgwYzg3ODY1Yzk4
NTYyNjJjNjkwMmEzY2E3MGUyMTk4NDQyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIEpTV29ya2VyQ29udGV4dEJhc2UgOiBwdWJsaWMgSlNET01H
bG9iYWxPYmplY3QgewogICAgICAgICB0eXBlZGVmIEpTRE9NR2xvYmFsT2JqZWN0IEJhc2U7CiAg
ICAgcHVibGljOgotICAgICAgICBKU1dvcmtlckNvbnRleHRCYXNlKEpTQzo6SlNHbG9iYWxEYXRh
JiwgSlNDOjpTdHJ1Y3R1cmUqLCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+KTsKICAgICAgICAg
dmlydHVhbCB+SlNXb3JrZXJDb250ZXh0QmFzZSgpOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87CkBAIC01NCw2ICs1MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRh
LCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAorICAgIHByb3RlY3RlZDoK
KyAgICAgICAgSlNXb3JrZXJDb250ZXh0QmFzZShKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6U3Ry
dWN0dXJlKiwgUGFzc1JlZlB0cjxXb3JrZXJDb250ZXh0Pik7CisgICAgICAgIHZvaWQgZmluaXNo
Q3JlYXRpb24oSlNDOjpKU0dsb2JhbERhdGEmLCBKU1dvcmtlckNvbnRleHRCYXNlKik7CisKICAg
ICBwcml2YXRlOgogICAgICAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gbV9pbXBsOwogICAgIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IGU4OWZiM2ZlZDQzZDBlNWQ0M2I2MjliNDlhY2E3MTI3OTVlN2QwMjIuLjI2MjUy
MDVkNzgzYzkwNzBjYjJkODFkMTY4ZmZlMzA3ZTYwZjQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03MzAsMTggKzcz
MCwyMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRP
TVdpbmRvdyIpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNs
YXNzTmFtZSogY3JlYXRlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCwgSlNET01XaW5kb3dT
aGVsbCogd2luZG93U2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAg
ICB7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5l
dyAoSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFz
c05hbWV9KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgd2luZG93U2hlbGwpO1xuIik7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5l
dyAoSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFz
c05hbWV9KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgd2luZG93U2hlbGwpO1xuIik7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0gZWxzaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0ZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICB7XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAg
cmV0dXJuIG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFw
KSkgJHtjbGFzc05hbWV9KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChK
U0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPihnbG9iYWxEYXRhLmhlYXApKSAke2NsYXNzTmFt
ZX0oZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBpbXBsKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRl
ckNvbnRlbnQsICIgICAgfVxuXG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBBZGRJbmNsdWRl
c0ZvclR5cGVJbkhlYWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQcm9w
ZXJ0eVR5cGU7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFz
c05hbWUqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbClcbiIpOwogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCAiICAgICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1l
PihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NO
YW1lPihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgIiAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEo
KSk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHB0
cjtcbiIpOwogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAgICAg
fQogCkBAIC05MjcsNiArOTMxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6
U3RydWN0dXJlKiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVjdHVy
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOworICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpK
U0dsb2JhbERhdGEmKTtcbiIpOwogICAgIH0KIAogICAgICMgc3RydWN0dXJlIGZsYWdzCkBAIC0x
MDIwLDcgKzEwMjUsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogY3JlYXRlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50
LCAiICAgIHtcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBu
ZXcgKEpTQzo6YWxsb2NhdGVDZWxsPCR7Y2xhc3NOYW1lfVByb3RvdHlwZT4oZ2xvYmFsRGF0YS5o
ZWFwKSkgJHtjbGFzc05hbWV9UHJvdG90eXBlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKTtcbiIpOworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICR7Y2xhc3NO
YW1lfVByb3RvdHlwZSogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwke2NsYXNzTmFtZX1Q
cm90b3R5cGU+KGdsb2JhbERhdGEuaGVhcCkpICR7Y2xhc3NOYW1lfVByb3RvdHlwZShnbG9iYWxE
YXRhLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCAiICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpO1xuIik7CisgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgfVxuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
ICIgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwpAQCAtMTA0OCw3
ICsxMDU1LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0aW9u
LCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkN1c3RvbVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCiAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIlxucHJpdmF0ZTpcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
JHtjbGFzc05hbWV9UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTTm9u
RmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOyB9XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1l
fVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9i
amVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0
KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyB9XG4iKTsKIAogICAgICMgc3RydWN0dXJlIGZsYWdz
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgInByb3RlY3RlZDpcbiIpOwpAQCAtMTUwNiwyNSAr
MTUxMywzMCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCwgSlNE
T01XaW5kb3dTaGVsbCogc2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgOiAkcGFyZW50Q2xhc3NOYW1lKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgc2hlbGwp
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CiAgICAgICAgIEFkZEluY2x1ZGVzRm9y
VHlwZUluSW1wbCgkaW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
JHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShnbG9iYWxEYXRhLCBz
dHJ1Y3R1cmUsIGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PCRpbXBsVHlwZT4gaW1wbClcbiIpOwogICAgICAgICBpZiAoJGhhc1BhcmVudCkgewogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIntcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KVxuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7
Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxE
YXRhKCkpO1xuIik7CiAgICAgICAgIH0KKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4i
KTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworCisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIp
OworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhKTtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKICAgICB9Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKGluaGVyaXRz
KCZzX2luZm8pKTtcbiIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAogICAg
IGlmICghJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXh0ZW5kc0RPTUdsb2JhbE9i
amVjdCJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NO
YW1lfTo6Y3JlYXRlUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdClcbiIpOwpAQCAtMzEwNiwxMyArMzExOCwxNiBAQCBzdWIgR2VuZXJhdGVDb25z
dHJ1Y3RvckRlY2xhcmF0aW9uCiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjbGFzcyAke2Nv
bnN0cnVjdG9yQ2xhc3NOYW1lfSA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7XG4iKTsK
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJwcml2YXRlOlxuIik7Ci0gICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICR7Y29uc3RydWN0b3JDbGFzc05hbWV9KEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopO1xuXG4iKTsKLSAgICAKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oSlNDOjpTdHJ1Y3R1
cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCopO1xuXG4iKTsKKwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInB1YmxpYzpcbiIpOwogICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJh
c2U7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljICRjb25zdHJ1Y3Rv
ckNsYXNzTmFtZSogY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgcmV0dXJuIG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8JGNvbnN0cnVjdG9yQ2xhc3NOYW1l
PigqZXhlYy0+aGVhcCgpKSkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKGV4ZWMsIHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJGNv
bnN0cnVjdG9yQ2xhc3NOYW1lKiBwdHIgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPCRjb25zdHJ1
Y3RvckNsYXNzTmFtZT4oKmV4ZWMtPmhlYXAoKSkpICRjb25zdHJ1Y3RvckNsYXNzTmFtZShzdHJ1
Y3R1cmUsIGdsb2JhbE9iamVjdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTtcbiIpOworICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICB9XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBK
U0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0zMTUyLDkgKzMx
NjcsMTQgQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OnNf
aW5mbyA9IHsgXCIke3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwgJkRPTUNvbnN0cnVj
dG9yT2JqZWN0OjpzX2luZm8sICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCAwIH07XG5c
biIpOwogCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06
OiR7Y29uc3RydWN0b3JDbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNz
TmFtZX0oU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9i
amVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIntcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CisKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ2b2lkICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTtcbiIpOwog
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xu
Iik7CiAgICAgaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBnbG9iYWxPYmplY3QtPnByb3RvdHlwZSgpLCBE
b250RGVsZXRlIHwgUmVhZE9ubHkpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVu
dGltZU9iamVjdC5jcHAKaW5kZXggYjQ2MGE5MTQ1MmY2NTZiMDMzOTc4MzU3NDY4NWFjZjBkZTIx
ZDE0OS4uNWFkZjQyMzUxZmU5MTVmYWQ0NjY0ZDRmOGQ0ZmY4OWExNTdjZmI5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcApAQCAtNDAsNyArNDAsNiBAQCBj
b25zdCBDbGFzc0luZm8gQ1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9IHsgIkNSdW50aW1lT2JqZWN0
IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaQogQ1J1bnRpbWVPYmplY3Q6OkNSdW50aW1lT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFBhc3NSZWZQdHI8Q0luc3RhbmNlPiBpbnN0YW5jZSkKICAgICA6IFJ1bnRpbWVP
YmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGluc3RhbmNlKQogewotICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgQ1J1bnRpbWVPYmplY3Q6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAppbmRleCBmOTg0YTVjYThhN2ViYTZiMzQ3ODMwZTE2
YzE2YWJkMzhiZTJkMGYyLi5iZWVkZGJiMjgzMmNjNGExYWVmZmNhMjA4MzA2MzY3ODgzZDQ4MjU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmgKQEAgLTQ1LDcgKzQ1
LDkgQEAgcHVibGljOgogICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVy
ZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CiAgICAg
ICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImki
LgogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRH
ZXRET01TdHJ1Y3R1cmU8Q1J1bnRpbWVPYmplY3Q+KGV4ZWMpOwotICAgICAgICByZXR1cm4gbmV3
IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU9i
amVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAg
ICBDUnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8Q1J1bnRpbWVPYmpl
Y3Q+KCpleGVjLT5oZWFwKCkpKSBDUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRv
bVN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGds
b2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAgfQogCiAgICAgdmlydHVh
bCB+Q1J1bnRpbWVPYmplY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L2NfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAK
aW5kZXggZGU2MTQ0OTUxNzJkY2JkYTVlYTkzYjAxMDQxMDE0YzI2MWM2N2Y5Ny4uNDE1Y2I0OTRl
ZjRmODZmYzE5NTlkZDFjMzAwOGIzZjdjNTUyNmM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYnJpZGdlL2MvY19pbnN0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Y19pbnN0YW5jZS5jcHAKQEAgLTEzMCw4ICsxMzAsMTQgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIENSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJp
bmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZXhlYywg
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCisgICAgICAgIDogUnVudGltZU1l
dGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGlzdCkKICAgICB7CisgICAgICAgIGZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CisgICAgfQorCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUpCisgICAgeworICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBu
YW1lKTsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCmluZGV4
IDM5NzIwMDk3ZDVhMmEyODc1ZjM3MGM5ZmIwNGVjMDI2YzEwNjAwMWEuLjQ4NjI5MThjZjIzYTIx
MjVkYjNhMDNjNTNkMDRlZjI5OWZjYzUyODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcApAQCAtMTM1LDExICsxMzUsMTYgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIEphdmFSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0
IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICA6
IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3Qp
CisgICAgICAgIDogUnVudGltZU1ldGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGlzdCkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CisgICAgICAgIGZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CiAgICAgfQogCisgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUpCisgICAgeworICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBu
YW1lKTsKKyAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKKyAgICB9CiB9OwogCiBj
b25zdCBDbGFzc0luZm8gSmF2YVJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9IHsgIkphdmFSdW50aW1l
TWV0aG9kIiwgJlJ1bnRpbWVNZXRob2Q6OnNfaW5mbywgMCwgMCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwCmluZGV4IGQ2ODRh
YjAyZTM5NzAyOWYxMWY1YTI1MTRhY2IwYWQzMTNkYjBlZWQuLjM2ZDkxZmNmNmE3MzRhYjliZjEx
MWY3ZmJlNDViNWJlNjE5MDhlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9q
bmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5jcHAKQEAgLTM4LDcgKzM4LDYgQEAgY29uc3QgQ2xh
c3NJbmZvIEphdmFSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJKYXZhUnVudGltZU9iamVjdCIs
ICZSdW50aW1lT2JqZWMKIEphdmFSdW50aW1lT2JqZWN0OjpKYXZhUnVudGltZU9iamVjdChFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBQYXNzUmVmUHRyPEphdmFJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgOiBSdW50aW1l
T2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIEphdmFSdW50aW1lT2JqZWN0
OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmgKaW5kZXggOGZh
NDUyZWU4ZGI3NGQ2OWE3MmU5MTY2OGZlMjgxZGY0NzBkZTgzZC4uZWJlZGQ3NjZmM2NkOWRmNTFi
ODU3ZTk3ZmJkMTMyZTQ5ODNlMGY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
am5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCkBAIC0zOCwxMiArMzgsMTQgQEAgY2xhc3MgSmF2
YVJ1bnRpbWVPYmplY3QgOiBwdWJsaWMgUnVudGltZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBSdW50aW1lT2JqZWN0IEJhc2U7CiAKLSAgICBzdGF0aWMgSmF2YVJ1bnRpbWVPYmplY3Qq
IGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFBh
c3NSZWZQdHI8SmF2YUluc3RhbmNlPiBqYXZhSW5zdCkKKyAgICBzdGF0aWMgSmF2YVJ1bnRpbWVP
YmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFBhc3NSZWZQdHI8SmF2YUluc3RhbmNlPiBqYXZhSW5zdGFuY2UpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUg
b2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFz
cyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBmb3IgImkiLgogICAgICAgICBTdHJ1Y3R1cmUq
IGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SmF2YVJ1
bnRpbWVPYmplY3Q+KGV4ZWMpOwotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8SmF2
YVJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU9iamVjdChleGVjLCBn
bG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgamF2YUluc3QpOworICAgICAgICBKYXZhUnVudGlt
ZU9iamVjdCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8SmF2YVJ1bnRpbWVPYmplY3Q+KCpl
eGVjLT5oZWFwKCkpKSBKYXZhUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0
cnVjdHVyZSwgamF2YUluc3RhbmNlKTsKKyAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihn
bG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAogICAgIHZpcnR1
YWwgfkphdmFSdW50aW1lT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
T2JqQ1J1bnRpbWVPYmplY3QuaAppbmRleCBkZDczMzkwZDc3ZGUxYTkzOGFjZWM4MWZhMzIxYTU2
YjU0ODQ0OTVhLi4yZGFiZmM0MGMxN2Q1NzZlMzkwOTlkZjI0OTM4YTdlOWFlNGZiMDJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0LmgKQEAgLTQy
LDcgKzQyLDkgQEAgcHVibGljOgogICAgICAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0
cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0
CiAgICAgICAgIC8vIFdlIG5lZWQgdG8gcGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBm
b3IgImkiLgogICAgICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmU8T2JqQ1J1bnRpbWVPYmplY3Q+KGV4ZWMpOwotICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2JqQ1J1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBP
YmpDUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGluc3QsIHN0cnVjdHVyZSk7Cisg
ICAgICAgIE9iakNSdW50aW1lT2JqZWN0KiBvYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxPYmpD
UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIE9iakNSdW50aW1lT2JqZWN0KGV4ZWMsIGds
b2JhbE9iamVjdCwgaW5zdCwgc3RydWN0dXJlKTsKKyAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAogICAg
IHZpcnR1YWwgfk9iakNSdW50aW1lT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9vYmpjL09iakNSdW50aW1lT2JqZWN0Lm1tCmluZGV4IGM1MWJkNGQyMGM5M2I2YWM4MDg4ZGRj
ZGRiYTI4Y2YyMGQ4Nzg5NmQuLjIxZmY0MTI2NGJiZDAzMzg3ZGUxZmYyYjk2NDVjNjdlNzJhODI4
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2Jq
ZWN0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50aW1lT2JqZWN0
Lm1tCkBAIC0zOCw3ICszOCw2IEBAIGNvbnN0IENsYXNzSW5mbyBPYmpDUnVudGltZU9iamVjdDo6
c19pbmZvID0geyAiT2JqQ1J1bnRpbWVPYmplY3QiLCAmUnVudGltZU9iamVjCiBPYmpDUnVudGlt
ZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPE9iamNJbnN0YW5jZT4gaW5zdGFuY2UsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0
KTsKIH0KIAogdm9pZCBPYmpDUnVudGltZU9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfaW5zdGFuY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX2lu
c3RhbmNlLm1tCmluZGV4IGE2YWFmNjA1MzhkYTEwNjc3NjQ5OTZiMDIyOWRmNjg1NmZkYzJmNjgu
LjA2ZmM5MGY3OTljNGQ1OTMxNTc4MTZkMWY1Y2E3OWI2OGU5YjliNzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5tbQpAQCAtMTg5LDkgKzE4OSwxNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2luZm87CiAKIHByaXZhdGU6Cisg
ICAgdHlwZWRlZiBSdW50aW1lTWV0aG9kIEJhc2U7CisKICAgICBPYmpDUnVudGltZU1ldGhvZChF
eGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSog
c3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYg
bGlzdCkKLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0
dXJlLCBuYW1lLCBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUsIGxpc3QpCisgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9i
YWxEYXRhKCksIG5hbWUpOworICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQogICAgIHsKKyAgICAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbmFtZSk7CiAgICAgICAgIEFTU0VS
VChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQv
cXRfaW5zdGFuY2UuY3BwCmluZGV4IDZhNDhiMTQ2ZTBmNjVlZGNlZTIwOTZkZmNkMzBkMWIyN2E1
YWMzYTUuLjRiYmU2NWUwMTEzZGJmYzk4NGQ3YTU0NjQ0N2RkZTY1YzA5OTI2YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3RhbmNlLmNwcApAQCAtNTUsNyArNTUsOSBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFF0UnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFu
Y2UpCiAgICAgewogICAgICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8UXRSdW50aW1lT2JqZWN0PihleGVjKTsKLSAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkp
IFF0UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFu
Y2UpOworICAgICAgICBRdFJ1bnRpbWVPYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxs
PFF0UnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UnVudGltZU9iamVjdChleGVjLCBn
bG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2UpOworICAgICAgICBvYmplY3QtPmZp
bmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CisgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAg
fQogICAgIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtODUsNyArODcs
NiBAQCBjb25zdCBDbGFzc0luZm8gUXRSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJRdFJ1bnRp
bWVPYmplY3QiLCAmUnVudGltZU9iamVjdDo6cwogUXRSdW50aW1lT2JqZWN0OjpRdFJ1bnRpbWVP
YmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgOiBS
dW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsK
LSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QpOwogfQogCiAvLyBRdEluc3RhbmNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFwcnVudGltZS5jcHAKaW5kZXggZjBi
MjZhOGM1Y2Q4Nzk3YjdiYmQ1OTg5OWQ4ZjNhZDNhNmM0ZmZiMS4uZjkzOTUwY2JkY2JjMWRmZDg2
Y2M4NjBmMGY4MWQ4MDUwMzM5OTE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9x
dF9waXhtYXBydW50aW1lLmNwcApAQCAtMjA0LDcgKzIwNCw5IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUXRQaXhtYXBSdW50aW1lT2JqZWN0KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEluc3RhbmNlPiBpbnN0YW5jZSkKICAg
ICB7CiAgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVwcmVjYXRl
ZEdldERPTVN0cnVjdHVyZTxRdFBpeG1hcFJ1bnRpbWVPYmplY3Q+KGV4ZWMpOwotICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRQaXhtYXBSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVh
cCgpKSkgUXRQaXhtYXBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0
dXJlLCBpbnN0YW5jZSk7CisgICAgICAgIFF0UGl4bWFwUnVudGltZU9iamVjdCogb2JqZWN0ID0g
bmV3IChhbGxvY2F0ZUNlbGw8UXRQaXhtYXBSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkg
UXRQaXhtYXBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwgZG9tU3RydWN0dXJlLCBp
bnN0YW5jZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsK
KyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJ
bmZvIHNfaW5mbzsKQEAgLTIyNCw3ICsyMjYsNiBAQCBwcml2YXRlOgogUXRQaXhtYXBSdW50aW1l
T2JqZWN0OjpRdFBpeG1hcFJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxJbnN0
YW5jZT4gaW5zdGFuY2UpCiAgICAgOiBSdW50aW1lT2JqZWN0KGV4ZWMsIGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3Qp
OwogfQogCiBjb25zdCBDbGFzc0luZm8gUXRQaXhtYXBSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7
ICJRdFBpeG1hcFJ1bnRpbWVPYmplY3QiLCAmUnVudGltZU9iamVjdDo6c19pbmZvLCAwLCAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKaW5kZXggNTgxZTQ0M2Q1M2U3
NjE1YzM0OWRlNTAyYzkyYjRiNTE2ZWZmNjEyZi4uNTExNjFjNTMxNDE0Y2ZjOTE4ZWVhNDI0ODBl
ZTRhMTFmODViYzQ5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1
bnRpbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNwcApA
QCAtMTAxMCw3ICsxMDEwLDYgQEAgUXRSdW50aW1lTWV0aG9kOjpRdFJ1bnRpbWVNZXRob2QoUXRS
dW50aW1lTWV0aG9kRGF0YSogZGQsIEV4ZWNTdGF0ZSogZXhlYywgU3RydWMKICAgICA6IEludGVy
bmFsRnVuY3Rpb24oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCBzdHJ1Y3R1cmUpCiAgICAg
LCBkX3B0cihkZCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBpZGVudGlmaWVyLCBpbnN0
YW5jZSk7CiB9CiAKIHZvaWQgUXRSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UXRJbnN0
YW5jZT4gaW5zdGFuY2UpCkBAIC0xNDI2LDkgKzE0MjUsMTUgQEAgc3RhdGljIGludCBmaW5kU2ln
bmFsSW5kZXgoY29uc3QgUU1ldGFPYmplY3QqIG1ldGEsIGludCBpbml0aWFsSW5kZXgsIFFCeXRl
QXJyYXkKICAgICByZXR1cm4gaW5kZXg7CiB9CiAKLVF0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVu
dGltZU1ldGFNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgSWRlbnRpZmllciYgaWRlbnQsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdCwgaW50IGlu
ZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUsIGJvb2wgYWxsb3dQcml2YXRlKQotICAg
IDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhlYywg
c3RydWN0dXJlLCBpZGVudCwgaW5zdCkKK1F0UnVudGltZU1ldGFNZXRob2Q6OlF0UnVudGltZU1l
dGFNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRl
bnRpZmllciYgaWRlbnRpZmllciwgUGFzc1JlZlB0cjxRdEluc3RhbmNlPiBpbnN0YW5jZSwgaW50
IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUsIGJvb2wgYWxsb3dQcml2YXRlKQor
ICAgIDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lTWV0YU1ldGhvZERhdGEoKSwgZXhl
Yywgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBpbnN0YW5jZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlv
bihleGVjLCBpZGVudGlmaWVyLCBpbnN0YW5jZSwgaW5kZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2
YXRlKTsKK30KKwordm9pZCBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UXRJ
bnN0YW5jZT4gaW5zdGFuY2UsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJl
LCBib29sIGFsbG93UHJpdmF0ZSkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihleGVjLCBp
ZGVudGlmaWVyLCBpbnN0YW5jZSk7CiAgICAgUVdfRChRdFJ1bnRpbWVNZXRhTWV0aG9kKTsKICAg
ICBkLT5tX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTsKICAgICBkLT5tX2luZGV4ID0gaW5kZXg7CkBA
IC0xNTcwLDkgKzE1NzUsMTUgQEAgSlNWYWx1ZSBRdFJ1bnRpbWVNZXRhTWV0aG9kOjpkaXNjb25u
ZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwKIAogUU11bHRpTWFw
PFFPYmplY3QqLCBRdENvbm5lY3Rpb25PYmplY3QqPiBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9k
Ojpjb25uZWN0aW9uczsKIAotUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6UXRSdW50aW1lQ29u
bmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25z
dCBJZGVudGlmaWVyJiBpZGVudCwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5j
ZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUpCi0gICAgOiBR
dFJ1bnRpbWVNZXRob2QgKG5ldyBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kRGF0YSgpLCBleGVj
LCBzdHJ1Y3R1cmUsIGlkZW50LCBpbnN0KQorUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6UXRS
dW50aW1lQ29ubmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBib29sIGlzQ29ubmVjdCwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPiBpbnN0YW5jZSwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBz
aWduYXR1cmUpCisgICAgOiBRdFJ1bnRpbWVNZXRob2QgKG5ldyBRdFJ1bnRpbWVDb25uZWN0aW9u
TWV0aG9kRGF0YSgpLCBleGVjLCBzdHJ1Y3R1cmUsIGlkZW50aWZpZXIsIGluc3RhbmNlKQorewor
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGlkZW50aWZpZXIsIGlzQ29ubmVjdCwgaW5zdGFuY2Us
IGluZGV4LCBzaWduYXR1cmUpOworfQorCit2b2lkIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6
OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnRp
ZmllciwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdGFuY2UsIGlu
dCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQogeworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKGV4ZWMsIGlkZW50aWZpZXIsIGluc3RhbmNlKTsKICAgICBRV19EKFF0UnVudGlt
ZUNvbm5lY3Rpb25NZXRob2QpOwogCiAgICAgZC0+bV9zaWduYXR1cmUgPSBzaWduYXR1cmU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAppbmRleCAyNGRlMjU1YzE0ODFlNDY2YTRj
Nzc3MzcxMGNmZWU0NTNlNWI4MmNlLi5mMzQ5OWFkYWZmYjAzY2MzYzRjZjQ4NDc1MGI0ZWM1N2U0
ZTBlMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKQEAgLTE1OSw3ICsx
NTksOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFF0UnVudGltZU1ldGFNZXRob2QqIGNyZWF0ZShF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG4sIFBhc3NSZWZQdHI8UXRJbnN0YW5j
ZT4gaW5zdCwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUsIGJvb2wgYWxs
b3dQcml2YXRlKQogICAgIHsKICAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJD
b3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU1ldGhvZD4oZXhlYyk7Ci0g
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhl
Yy0+aGVhcCgpKSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4sIGlu
c3QsIGluZGV4LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CisgICAgICAgIFF0UnVudGltZU1l
dGFNZXRob2QqIG1ldGhvZCA9IG5ldyAoYWxsb2NhdGVDZWxsPFF0UnVudGltZU1ldGFNZXRob2Q+
KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVNZXRhTWV0aG9kKGV4ZWMsIGRvbVN0cnVjdHVyZSwg
biwgaW5zdCwgaW5kZXgsIHNpZ25hdHVyZSwgYWxsb3dQcml2YXRlKTsKKyAgICAgICAgcmV0dXJu
IG1ldGhvZDsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7CkBAIC0xNzMsNiAr
MTc0LDcgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFF0UnVudGltZU1ldGFNZXRob2Qo
RXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYsIFBhc3NSZWZQdHI8UXRJ
bnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYsIGJvb2wgYWxsb3dQcml2YXRl
KTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXIm
LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNp
Z25hdHVyZSwgYm9vbCBhbGxvd1ByaXZhdGUpOwogCiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRD
YWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsKQEAgLTIwMSw2ICsyMDMsNyBAQCBwcm90ZWN0ZWQ6
CiAKIHByaXZhdGU6CiAgICAgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZChFeGVjU3RhdGUqLCBT
dHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVyJiwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8
UXRJbnN0YW5jZT4sIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYpOworICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0
LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNp
Z25hdHVyZSk7CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7
CiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbChFeGVjU3RhdGUq
IGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAKaW5kZXggY2Yy
MzU1NTFkMzg0NjUwOWQxMTZmODJhZDdmYmUxNGIyNWRmMjY2Yy4uYWMwMDRmZDkxZWY4M2Q5NTVk
NjUzN2Q1YjQ1ZTE2MmFjZjRhOWEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfbWV0aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9t
ZXRob2QuY3BwCkBAIC00MywxMiArNDMsMTEgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChS
dW50aW1lTWV0aG9kKTsKIAogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVNZXRob2Q6OnNfaW5mbyA9
IHsgIlJ1bnRpbWVNZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pbmZvLCAwLCAwIH07CiAK
LVJ1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2QoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmll
ciYgaWRlbnQsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBtKQorUnVudGltZU1ldGhvZDo6UnVudGlt
ZU1ldGhvZChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIG0pCiAgICAgLy8gQ2FsbGVycyB3aWxsIG5lZWQgdG8g
cGFzcyBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdCBjb3JyZXNwb25kaW5nIHRvIHRoaXMgbmF0
aXZlIG9iamVjdCAibSIuCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQogICAgICwgX21ldGhvZExpc3QoYWRvcHRQdHIobmV3IE1ldGhvZExpc3QobSkpKQog
ewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgaWRlbnQpOwogfQogCiB2
b2lkIFJ1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9tZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5oCmluZGV4IGQxYWI5OWRlN2ViMDJkZjI0YzRmMDRiNDUyNjZmODY0Y2IwZjIxNmUuLmM1
ZDBhNmQwZmJlODI4OTQ3YmEzMzE5MzBlZmRhZWZkODc3MGQ1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9ydW50aW1lX21ldGhvZC5oCkBAIC0zOSw3ICszOSw5IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyBSdW50aW1lTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRpZmllciYg
bmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIG1ldGhvZExpc3QpCiAgICAgewotICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZU1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFJ1
bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIG1ldGhvZExp
c3QpOworICAgICAgICBSdW50aW1lTWV0aG9kKiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxS
dW50aW1lTWV0aG9kPigqZXhlYy0+aGVhcCgpKSkgUnVudGltZU1ldGhvZChnbG9iYWxPYmplY3Qs
IHN0cnVjdHVyZSwgbWV0aG9kTGlzdCk7CisgICAgICAgIG1ldGhvZC0+ZmluaXNoQ3JlYXRpb24o
ZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lKTsKKyAgICAgICAgcmV0dXJuIG1ldGhvZDsKICAgICB9
CiAKICAgICBCaW5kaW5nczo6TWV0aG9kTGlzdCogbWV0aG9kcygpIGNvbnN0IHsgcmV0dXJuIF9t
ZXRob2RMaXN0LmdldCgpOyB9CkBAIC01Nyw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHBy
b3RlY3RlZDoKLSAgICBSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0Kiwg
U3RydWN0dXJlKiwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3Qm
KTsKKyAgICBSdW50aW1lTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgQmluZGlu
Z3M6Ok1ldGhvZExpc3QmKTsKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYs
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcm5hbEZ1bmN0aW9uOjpT
dHJ1Y3R1cmVGbGFnczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGY2N2I4MTRhNDk3OGQzNTk5YWE0
NGYxZjY2OTJiZDRhMjIzMWZkYjIuLjFjNTk2ZGQ2NTUyOTg2NzJjNDkyMTEwY2Y1ZjNkZTMyOTIz
NjRkZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0wOS0xMiAgTWFy
ayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuemlwIGlu
aXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAo
Ni83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21w
bGV0ZWQgdGhlIHNpeHRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3Jl
YXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2Vs
bCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVz
LgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxz
IHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3Jz
IG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAK
KyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91
dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9k
IGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAK
KyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigp
IG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhl
IGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVy
IG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRp
b24gZmFpbHVyZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06
CisgICAgICAgIChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6UHJveHlSdW50aW1lTWV0aG9k
KToKKyAgICAgICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbik6
CisKIDIwMTEtMDktMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdmUgc3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2Uu
bW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmlu
ZGV4IGE4YTI3YTkyYWU0NWIwYTBkNmEzZTRlNjJhMTU5YzM3OTRlMzY4YWMuLjQzZDU0OTIzOWNm
ZjIxYjkwZDQ5OTBjN2JhOTMwYjRiM2FmZWE0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvUGx1Z2lucy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTk4LDggKzE5OCwxNCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAg
ICA6IFJ1bnRpbWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxp
c3QpCisgICAgICAgIDogUnVudGltZU1ldGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGlz
dCkKICAgICB7CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFt
ZSk7CisgICAgfQorCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCisgICAgeworICAgICAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhLCBuYW1lKTsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZz
X2luZm8pKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDczYzcwYjA0M2U3ZDBmZDFiOTMzNGMz
ZmQ4ZDZhOGRkM2M2MzZmNjguLjk1NTdmYmZiYmZkZTMwYTYzOWIwMDE0MGUzMDZkYjI2YzQ4Y2Uz
MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wOS0xMiAgTWFyayBIYWhuZW5i
ZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuemlwIGluaXRpYWxpemF0
aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoNi83KQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2OTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wbGV0ZWQgdGhl
IHNpeHRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAK
KyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJj
aHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAg
ICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlz
aENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBz
dWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAg
YXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRo
ZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhh
cyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAg
bWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBj
aGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9u
IG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAg
ICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVy
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6SlNOUE1ldGhvZDo6SlNOUE1ldGhvZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaDoKKyAgICAgICAgKFdlYktp
dDo6SlNOUE1ldGhvZDo6Y3JlYXRlKToKKwogMjAxMS0wOS0xMiAgQWxleGlzIE1lbmFyZCAgPGFs
ZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBbUXRdU3R5bGUgZXJyb3IgZml4
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L0pTTlBNZXRob2QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL0pTTlBNZXRob2QuY3BwCmluZGV4IDQxMGIyMDA2MzBkZDRmNjFmMmNkOTc2NzdiYzU1NmRl
NTIwMDViNWEuLjJlOGI3Y2NjOGFiZjBmMTZmODkwMzYxNTdhYjE0NGQ1OTQ5ZTgzZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0
aG9kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
SlNOUE1ldGhvZC5jcHAKQEAgLTQyLDExICs0MiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y29uc3QgQ2xhc3NJbmZvIEpTTlBNZXRob2Q6OnNfaW5mbyA9IHsgIk5QTWV0aG9kIiwgJkludGVy
bmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCi1KU05QTWV0aG9kOjpKU05QTWV0aG9kKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIE5QSWRlbnRpZmllciBucElkZW50aWZp
ZXIpCitKU05QTWV0aG9kOjpKU05QTWV0aG9kKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBOUElkZW50aWZpZXIgbnBJZGVudGlmaWVyKQogICAgIDog
SW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkKICAgICAsIG1fbnBJZGVu
dGlmaWVyKG5wSWRlbnRpZmllcikKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxE
YXRhKCksIG5hbWUpOwogfQogCiB2b2lkIEpTTlBNZXRob2Q6OmZpbmlzaENyZWF0aW9uKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5o
CmluZGV4IDkyOTkwMWI5YTVlZmEzMDE5NWY4NDQxMmFjYzY3OTJhYTMwYTE2NzguLjNjYmU5Yjk5
NmIyYjg1MmI1NjcxZmJjMmY5OGIxMmIzZjUyYmM2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaApAQCAtMzks
MTAgKzM5LDEyIEBAIGNsYXNzIEpTTlBNZXRob2QgOiBwdWJsaWMgSlNDOjpJbnRlcm5hbEZ1bmN0
aW9uIHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTQzo6SW50ZXJuYWxGdW5jdGlvbiBCYXNlOwog
Ci0gICAgc3RhdGljIEpTTlBNZXRob2QqIGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlND
OjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBKU0M6OklkZW50aWZpZXImIGlk
ZW50LCBOUElkZW50aWZpZXIgbnBJZGVudCkKKyAgICBzdGF0aWMgSlNOUE1ldGhvZCogY3JlYXRl
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgbmFtZSwgTlBJZGVudGlmaWVyIG5wSWRlbnQpCiAgICAg
ewogICAgICAgICBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlID0gY3JlYXRlU3RydWN0dXJlKGV4
ZWMtPmdsb2JhbERhdGEoKSwgZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmZ1bmN0aW9uUHJv
dG90eXBlKCkpOwotICAgICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU05QTWV0
aG9kPigqZXhlYy0+aGVhcCgpKSkgSlNOUE1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgaWRlbnQsIG5wSWRlbnQpOworICAgICAgICBKU05QTWV0aG9kKiBtZXRob2QgPSBuZXcg
KEpTQzo6YWxsb2NhdGVDZWxsPEpTTlBNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBKU05QTWV0aG9k
KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBucElkZW50KTsKKyAgICAgICAgbWV0aG9kLT5maW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOworICAgICAgICByZXR1cm4gbWV0
aG9kOwogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CkBA
IC01Myw3ICs1NSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
SlNHbG9iYWxEYXRhJiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBuYW1lKTsKIAogcHJpdmF0ZTog
ICAgCi0gICAgSlNOUE1ldGhvZChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3Qq
LCBKU0M6OlN0cnVjdHVyZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIE5QSWRlbnRpZmllcik7
CisgICAgSlNOUE1ldGhvZChKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqLCBO
UElkZW50aWZpZXIpOwogCiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1
cmUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107262</attachid>
            <date>2011-09-13 16:59:44 -0700</date>
            <delta_ts>2011-09-14 11:54:35 -0700</delta_ts>
            <desc>Fixing issues</desc>
            <filename>bug-67692-20110913165945.patch</filename>
            <type>text/plain</type>
            <size>126801</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ5NjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNDYWxsYmFja0Z1bmN0aW9uLmNwcAppbmRleCA2NGQ1MTNlMmVhZjQ0MzU4YmVlMjc3NGZk
ZDZhNzc4ZDNkMGQ0ZTljLi5hMzk2OGM2ODVjM2I3OGIwMTMzZTA1NDE2ZjJkNjBkYzNkYTY1MWIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5jdGlv
bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24u
Y3BwCkBAIC00MiwxMSArNDIsMTAgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU0NhbGxi
YWNrRnVuY3Rpb24pOwogCiBjb25zdCBDbGFzc0luZm8gSlNDYWxsYmFja0Z1bmN0aW9uOjpzX2lu
Zm8gPSB7ICJDYWxsYmFja0Z1bmN0aW9uIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwg
MCB9OwogCi1KU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5jdGlvbihFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTT2JqZWN0Q2FsbEFzRnVuY3Rp
b25DYWxsYmFjayBjYWxsYmFjaywgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKK0pTQ2FsbGJhY2tG
dW5jdGlvbjo6SlNDYWxsYmFja0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsYmFjaykKICAgICA6IEludGVybmFs
RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QtPmNhbGxiYWNrRnVuY3Rpb25TdHJ1
Y3R1cmUoKSkKICAgICAsIG1fY2FsbGJhY2soY2FsbGJhY2spCiB7Ci0gICAgZmluaXNoQ3JlYXRp
b24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBuYW1lKTsKIH0KIAogdm9pZCBKU0NhbGxiYWNrRnVuY3Rp
b246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRp
ZmllciYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxs
YmFja0Z1bmN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tGdW5j
dGlvbi5oCmluZGV4IDEzZTdlMDA5ZGJhZTY1ZDQ0NTk3MGQyZmY4YTBjOTBjNjg2OTUyYzEuLjdl
MjY1MmVkMmExNzQwZjExYmY3MmYzMmMxMzUyYTYzNmM0ZWJhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja0Z1bmN0aW9uLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrRnVuY3Rpb24uaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgSlNDYWxsYmFja0Z1bmN0aW9uIDogcHVibGljIEludGVy
bmFsRnVuY3Rpb24gewogcHJvdGVjdGVkOgotICAgIEpTQ2FsbGJhY2tGdW5jdGlvbihFeGVjU3Rh
dGUqLCBKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjaywgY29u
c3QgSWRlbnRpZmllciYgbmFtZSk7CisgICAgSlNDYWxsYmFja0Z1bmN0aW9uKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNPYmplY3RDYWxsQXNGdW5jdGlvbkNhbGxiYWNrKTsKICAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiBwdWJsaWM6
CkBAIC00MSw3ICs0MSw5IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBKU0NhbGxiYWNrRnVuY3Rp
b24qIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb25DYWxsYmFjayBjYWxsYmFjaywgY29uc3QgSWRlbnRpZmll
ciYgbmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxi
YWNrRnVuY3Rpb24+KCpleGVjLT5oZWFwKCkpKSBKU0NhbGxiYWNrRnVuY3Rpb24oZXhlYywgZ2xv
YmFsT2JqZWN0LCBjYWxsYmFjaywgbmFtZSk7CisgICAgICAgIEpTQ2FsbGJhY2tGdW5jdGlvbiog
ZnVuY3Rpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxKU0NhbGxiYWNrRnVuY3Rpb24+KCpleGVjLT5o
ZWFwKCkpKSBKU0NhbGxiYWNrRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBjYWxsYmFjayk7CisgICAg
ICAgIGZ1bmN0aW9uLT5maW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOwor
ICAgICAgICByZXR1cm4gZnVuY3Rpb247CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBzX2luZm87CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBjN2NhM2IxMmNmZjVjYWI4
Yjk5MGYyMTMzMWIyMzFmOWY2ZGI2MTRjLi40MzJkYmU3ZWYyNzYzY2I4NjFjM2ZiNWIwNzc3ODk5
OGZjNTc1NmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMDUgQEAKKzIw
MTEtMDktMTMgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2Vs
bCBoaWVyYXJjaHkgKDYvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY3NjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQ29tcGxldGVkIHRoZSBzaXh0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3JpbmcgdG8g
YWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMgd2l0
aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNvbnN0
cnVjdG9yIGJvZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBwdXNo
aW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8gdGhl
IGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgZmlmdGggbGV2ZWwgb2YgdGhl
IGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlv
bigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3Jl
YXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFs
bG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5p
c2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25j
ZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkg
b3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVz
ZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKworICAgICAgICAqIEFQSS9KU0NhbGxiYWNrRnVuY3Rp
b24uY3BwOgorICAgICAgICAoSlNDOjpKU0NhbGxiYWNrRnVuY3Rpb246OkpTQ2FsbGJhY2tGdW5j
dGlvbik6CisgICAgICAgICogQVBJL0pTQ2FsbGJhY2tGdW5jdGlvbi5oOgorICAgICAgICAoSlND
OjpKU0NhbGxiYWNrRnVuY3Rpb246OmNyZWF0ZSk6CisgICAgICAgICoganNjLmNwcDoKKyAgICAg
ICAgKEdsb2JhbE9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEdsb2JhbE9iamVjdDo6R2xvYmFs
T2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoSlNDOjpBcnJheUNvbnN0cnVjdG9yOjpBcnJheUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBy
dW50aW1lL0FycmF5Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6QXJyYXlDb25zdHJ1Y3Rv
cjo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChKU0M6OkJvb2xlYW5Db25zdHJ1Y3Rvcjo6Qm9vbGVhbkNvbnN0cnVjdG9yKToKKyAg
ICAgICAgKiBydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpCb29s
ZWFuQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90
eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6Qm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlw
ZSk6CisgICAgICAgICogcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6
OkJvb2xlYW5Qcm90b3R5cGU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpEYXRlQ29uc3RydWN0b3I6OkRhdGVDb25zdHJ1Y3Rv
cik6CisgICAgICAgICogcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6
RGF0ZUNvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHA6CisgICAgICAgIChKU0M6OkRhdGVQcm90b3R5cGU6OkRhdGVQcm90b3R5cGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvRGF0ZVByb3RvdHlwZS5oOgorICAgICAgICAoSlNDOjpEYXRlUHJvdG90
eXBlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3IuY3BwOgorICAgICAgICAoSlND
OjpTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb246OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlv
bik6CisgICAgICAgIChKU0M6OlN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKiBydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpF
cnJvckNvbnN0cnVjdG9yOjpFcnJvckNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL0Vy
cm9yQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6RXJyb3JDb25zdHJ1Y3Rvcjo6Y3JlYXRl
KToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAo
SlNDOjpGdW5jdGlvbkNvbnN0cnVjdG9yOjpGdW5jdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25D
b25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBl
LmNwcDoKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25Qcm90b3R5cGU6OkZ1bmN0aW9uUHJvdG90eXBl
KToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmg6CisgICAgICAgIChKU0M6
OkZ1bmN0aW9uUHJvdG90eXBlOjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJy
b3JDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3I6
Ok5hdGl2ZUVycm9yQ29uc3RydWN0b3IpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5oOgorICAgICAgICAoSlNDOjpOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjpjcmVh
dGUpOgorICAgICAgICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpOYXRpdmVFcnJvclByb3RvdHlwZTo6TmF0aXZlRXJyb3JQcm90b3R5cGUpOgorICAg
ICAgICAoSlNDOjpOYXRpdmVFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAg
ICAqIHJ1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaDoKKyAgICAgICAgKEpTQzo6TmF0aXZl
RXJyb3JQcm90b3R5cGU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlckNvbnN0cnVjdG9yOjpOdW1iZXJDb25zdHJ1
Y3Rvcik6CisgICAgICAgICogcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oOgorICAgICAgICAo
SlNDOjpOdW1iZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1lL051bWJl
clByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok51bWJlclByb3RvdHlwZTo6TnVtYmVyUHJv
dG90eXBlKToKKyAgICAgICAgKiBydW50aW1lL051bWJlclByb3RvdHlwZS5oOgorICAgICAgICAo
SlNDOjpOdW1iZXJQcm90b3R5cGU6OmNyZWF0ZSk6CisgICAgICAgICogcnVudGltZS9PYmplY3RD
b25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RD
b25zdHJ1Y3Rvcik6CisgICAgICAgICogcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKiBydW50aW1l
L1JlZ0V4cENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwQ29uc3RydWN0b3I6
OlJlZ0V4cENvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9y
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cENvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAgICAgICAq
IHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6UmVnRXhwUHJvdG90
eXBlOjpSZWdFeHBQcm90b3R5cGUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVnRXhwUHJvdG90eXBl
Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cFByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKiBy
dW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nQ29uc3Ry
dWN0b3I6OlN0cmluZ0NvbnN0cnVjdG9yKToKKyAgICAgICAgKiBydW50aW1lL1N0cmluZ0NvbnN0
cnVjdG9yLmg6CisgICAgICAgIChKU0M6OlN0cmluZ0NvbnN0cnVjdG9yOjpjcmVhdGUpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaDoK
KyAgICAgICAgKEpTQzo6U3RyaW5nT2JqZWN0VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQ6OmNy
ZWF0ZSk6CisgICAgICAgIChKU0M6OlN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkOjpTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZCk6CisgICAgICAgICog
cnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdQcm90b3R5
cGU6OlN0cmluZ1Byb3RvdHlwZSk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
aDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpjcmVhdGUpOgorCiAyMDExLTA5LTEy
ICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0g
QnVpbGQgZmFpbHMgYWZ0ZXIgcjk0OTIwIHdpdGggc3RyaWN0IGNvbXBpbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
c2MuY3BwCmluZGV4IDAxOGY5NTcyNDYxYWZlM2ZkNzU0NzczZDcwN2JhZjJmOTJkZDM1MTguLjkx
YTNlMWZlMjMzODUxMmQxODQ3NmFjN2E4MjliOTU1MmYzYmM4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCkBAIC0xNDUsMTQgKzE0NSwxNiBAQCBsb25nIFN0b3BXYXRjaDo6Z2V0RWxhcHNlZE1TKCkK
IAogY2xhc3MgR2xvYmFsT2JqZWN0IDogcHVibGljIEpTR2xvYmFsT2JqZWN0IHsKIHByaXZhdGU6
Ci0gICAgR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNvbnN0IFZlY3Rv
cjxVU3RyaW5nPiYgYXJndW1lbnRzKTsKKyAgICBHbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiwg
U3RydWN0dXJlKik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTR2xvYmFsT2JqZWN0IEJhc2U7
CiAKICAgICBzdGF0aWMgR2xvYmFsT2JqZWN0KiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBnbG9iYWxE
YXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVmVjdG9yPFVTdHJpbmc+JiBhcmd1bWVu
dHMpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8R2xvYmFsT2JqZWN0
PihnbG9iYWxEYXRhLmhlYXApKSBHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBh
cmd1bWVudHMpOworICAgICAgICBHbG9iYWxPYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVD
ZWxsPEdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgR2xvYmFsT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSwgYXJndW1lbnRzKTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAgICAgdmlydHVh
bCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJnbG9iYWwiOyB9CiAKQEAgLTE4
OCwxMCArMTkwLDkgQEAgcHJvdGVjdGVkOgogQ09NUElMRV9BU1NFUlQoIUlzSW50ZWdlcjxHbG9i
YWxPYmplY3Q+Ojp2YWx1ZSwgV1RGX0lzSW50ZWdlcl9HbG9iYWxPYmplY3RfZmFsc2UpOwogQVNT
RVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChHbG9iYWxPYmplY3QpOwogCi1HbG9iYWxPYmplY3Q6Okds
b2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBjb25zdCBWZWN0b3I8VVN0cmluZz4mIGFyZ3VtZW50cykKK0dsb2JhbE9iamVjdDo6R2xvYmFs
T2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAg
ICAgOiBKU0dsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSwgYXJndW1lbnRzKTsKIH0KIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblByaW50KEV4ZWNTdGF0ZSogZXhlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKaW5kZXggZDQwNmJh
MTk4YzBkMTdlZDIzNDIzYmY5ODBhYTIxYWY3OGUwNWE4NS4uYThkNjQ1ODc5MGRjY2M4NjUxNWZh
YTBkNjllOWIwZWNmZDdkNjA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5jcHAKQEAgLTUxLDEwICs1MSw5IEBAIGNvbnN0IENsYXNz
SW5mbyBBcnJheUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1
bmN0aW9uOjpzX2luCiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoQXJyYXlDb25zdHJ1Y3Rv
cik7CiAKLUFycmF5Q29uc3RydWN0b3I6OkFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQXJy
YXlQcm90b3R5cGUqIGFycmF5UHJvdG90eXBlKQorQXJyYXlDb25zdHJ1Y3Rvcjo6QXJyYXlDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0g
ICAgZmluaXNoQ3JlYXRpb24oZXhlYywgYXJyYXlQcm90b3R5cGUpOwogfQogCiB2b2lkIEFycmF5
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgQXJyYXlQcm90b3R5
cGUqIGFycmF5UHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQXJyYXlDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
QXJyYXlDb25zdHJ1Y3Rvci5oCmluZGV4IGMyYzcxOThkNjZjZjJmNTY5Yjk4NjU3NjM1MTg4NWM2
YTNjNWNmZWMuLjk2Y2VjNmI3YjdiMzIwN2FkMjM4ZmFhZWYyODEyZmEyZjg3MzQ1OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5Q29uc3RydWN0b3IuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUNvbnN0cnVjdG9yLmgKQEAg
LTMxLDkgKzMxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlw
ZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEFycmF5Q29uc3Ry
dWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBBcnJheVByb3RvdHlwZSogYXJyUHJvdG90eXBlKQor
ICAgICAgICBzdGF0aWMgQXJyYXlDb25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywg
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEFycmF5
UHJvdG90eXBlKiBhcnJheVByb3RvdHlwZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IG5ldyAoYWxsb2NhdGVDZWxsPEFycmF5Q29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBBcnJh
eUNvbnN0cnVjdG9yKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBhcnJQcm90b3R5cGUp
OworICAgICAgICAgICAgQXJyYXlDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxBcnJheUNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgQXJyYXlDb25zdHJ1Y3Rv
cihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvci0+Zmlu
aXNoQ3JlYXRpb24oZXhlYywgYXJyYXlQcm90b3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdG9yOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBz
X2luZm87CkBAIC00OCw3ICs1MCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QgfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIEFycmF5Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBBcnJheVByb3RvdHlwZSopOworICAgICAgICBBcnJheUNvbnN0cnVjdG9yKEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9w
ZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXgg
MzQwZmY3MjNjYTYyZmNjZTBjYjU3YjU1YTg1Y2JjMjkyMmEwYjYyNy4uZjZlMmE3MDhjM2ZmOTBj
YmU2ZmI4ZDMwYzE5YWRlZTJmYTM3NzlkNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuY3BwCkBAIC0yOCwxMCArMjgsOSBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChCb29sZWFuQ29uc3Ry
dWN0b3IpOwogCi1Cb29sZWFuQ29uc3RydWN0b3I6OkJvb2xlYW5Db25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBCb29sZWFuUHJvdG90eXBlKiBib29sZWFuUHJvdG90eXBlKQorQm9vbGVhbkNvbnN0cnVj
dG9yOjpCb29sZWFuQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwg
c3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGJvb2xlYW5Qcm90b3R5cGUp
OwogfQogCiB2b2lkIEJvb2xlYW5Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRl
KiBleGVjLCBCb29sZWFuUHJvdG90eXBlKiBib29sZWFuUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhbkNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaAppbmRleCAxZWVl
NGY2NjM3NmE1ZjM3YTU2MGFiZTVlZDU3MGE2ZDNkODNiNDdlLi4xZDk0Njg4NjM3OTEwZmE5YWZh
ZTE1YTc0MDUyNzBjYzg5NzA4NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9Cb29sZWFuQ29uc3RydWN0b3IuaApAQCAtMzEsMTYgKzMxLDE4IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJh
c2U7CiAKLSAgICAgICAgc3RhdGljIEJvb2xlYW5Db25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEJvb2xlYW5Qcm90b3R5cGUqIGJvb2xQcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBCb29s
ZWFuQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBCb29sZWFuUHJvdG90eXBlKiBib29s
ZWFuUHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0
ZUNlbGw8Qm9vbGVhbkNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgQm9vbGVhbkNvbnN0cnVj
dG9yKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBib29sUHJvdG90eXBlKTsKKyAgICAg
ICAgICAgIEJvb2xlYW5Db25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKGFsbG9jYXRlQ2Vs
bDxCb29sZWFuQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBCb29sZWFuQ29uc3RydWN0b3Io
Z2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgY29uc3RydWN0b3ItPmZpbmlz
aENyZWF0aW9uKGV4ZWMsIGJvb2xlYW5Qcm90b3R5cGUpOworICAgICAgICAgICAgcmV0dXJuIGNv
bnN0cnVjdG9yOwogICAgICAgICB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oRXhlY1N0YXRlKiwgQm9vbGVhblByb3RvdHlwZSopOwogCiAgICAgcHJpdmF0
ZToKLSAgICAgICAgQm9vbGVhbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0
KiwgU3RydWN0dXJlKiwgQm9vbGVhblByb3RvdHlwZSopOworICAgICAgICBCb29sZWFuQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogICAgICAgICB2aXJ0
dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKaW5kZXggYWM3
YTZlOTQ5YzA3MTdjYzk5NzEyMjdhNGE4YmQ2NjZmNzQ3MDA5Ni4uYWI2Mjk2MzIwNjczMjg4MWJm
Nzk4NjhiOTY2MDNkMjQxYmE0MzM2NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQm9vbGVhblByb3RvdHlwZS5jcHAKQEAgLTQ5LDEwICs0OSw5IEBAIGNvbnN0IENs
YXNzSW5mbyBCb29sZWFuUHJvdG90eXBlOjpzX2luZm8gPSB7ICJCb29sZWFuIiwgJkJvb2xlYW5P
YmplY3Q6OnNfaW5mbywKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChCb29sZWFuUHJvdG90
eXBlKTsKIAotQm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqIGV4
ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQor
Qm9vbGVhblByb3RvdHlwZTo6Qm9vbGVhblByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIDogQm9vbGVhbk9iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IHN0cnVjdHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOwog
fQogCiB2b2lkIEJvb2xlYW5Qcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhl
YywgSlNHbG9iYWxPYmplY3QqKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQm9vbGVhblByb3RvdHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Qm9vbGVhblByb3RvdHlwZS5oCmluZGV4IDJhNmM4MWZhM2Q1MzBkNjBiODJlNDU3ZTg5ODI4ZWE5
ODc4ZmYxOTYuLjJkY2ZjMWQ1NmYyMDFlMzNmN2I2Njk5NDFmNWIyNDA0NmI0NDMyMDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Jvb2xlYW5Qcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Cb29sZWFuUHJvdG90eXBlLmgKQEAg
LTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEJvb2xlYW5Q
cm90b3R5cGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3IChhbGxvY2F0ZUNlbGw8Qm9vbGVhblByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIEJv
b2xlYW5Qcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAg
ICAgQm9vbGVhblByb3RvdHlwZSogcHJvdG90eXBlID0gbmV3IChhbGxvY2F0ZUNlbGw8Qm9vbGVh
blByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIEJvb2xlYW5Qcm90b3R5cGUoZXhlYywgc3RydWN0
dXJlKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAgIH0KICAgICAg
ICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNDYsNyArNDgs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVj
dHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQm9vbGVhbk9iamVjdDo6
U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICBCb29sZWFuUHJvdG90eXBl
KEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CisgICAgICAgIEJvb2xl
YW5Qcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAg
ICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggN2IyNTM0ODgzNTRlMDIzY2QxYzM1ZDZlZjQ4MTE2OGM0NGZjZjQ5NC4uODVm
NTQ0YWRjNzQ4NWMyM2IyNGY0YmI4Yzg2OGIwODc2NTU0Mjc0MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwCkBAIC03MywxMCArNzMs
OSBAQCBjb25zdCBDbGFzc0luZm8gRGF0ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlv
biIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2luZgogCiBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KERhdGVDb25zdHJ1Y3Rvcik7CiAKLURhdGVDb25zdHJ1Y3Rvcjo6RGF0ZUNvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIERhdGVQcm90b3R5cGUqIGRhdGVQcm90b3R5cGUpCitEYXRlQ29uc3RydWN0b3I6
OkRhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUpIAogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGRhdGVQcm90b3R5cGUpOwogfQogCiB2
b2lkIERhdGVDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBEYXRl
UHJvdG90eXBlKiBkYXRlUHJvdG90eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9EYXRlQ29uc3RydWN0b3IuaAppbmRleCA1ZmE1MWRmOTU5OWVkM2UxNDZiNmI4M2NhOGIw
MmQ5MjEwMjg1MWFkLi5mZGI3YTExYTFjZTdhZDJjN2JkY2E1YjkxNzdjNDA5YzFjNmQzZDE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3Iu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuaApA
QCAtMzMsNyArMzMsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgRGF0ZUNv
bnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRGF0ZVByb3RvdHlwZSogZGF0ZVByb3RvdHlw
ZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPERhdGVD
b25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIERhdGVDb25zdHJ1Y3RvcihleGVjLCBnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSwgZGF0ZVByb3RvdHlwZSk7CisgICAgICAgICAgICBEYXRlQ29uc3Ry
dWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8RGF0ZUNvbnN0cnVjdG9yPigq
ZXhlYy0+aGVhcCgpKSkgRGF0ZUNvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsK
KyAgICAgICAgICAgIGNvbnN0cnVjdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBkYXRlUHJvdG90
eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQogCiAgICAg
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAtNDgsNyArNTAsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0
dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICBEYXRlQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBEYXRlUHJvdG90eXBlKik7CisgICAg
ICAgIERhdGVDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAg
ICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7
CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAppbmRleCA3
ODM4NTg1OGRiMGU2MjdjOGM3YjY0NTA1NTI0MjU4YzJjMDc0MzkwLi42MzFlNDc4ZmE2ZWI4YjNm
YTUzNjBjZjU3MWM0ZDkyMjFmNDdmYTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9EYXRlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9EYXRlUHJvdG90eXBlLmNwcApAQCAtNDMwLDEwICs0MzAsOSBAQCBjb25zdCBDbGFz
c0luZm8gRGF0ZVByb3RvdHlwZTo6c19pbmZvID0geyJEYXRlIiwgJkRhdGVJbnN0YW5jZTo6c19p
bmZvLCAwLCBFeGVjUwogCiAvLyBFQ01BIDE1LjkuNAogCi1EYXRlUHJvdG90eXBlOjpEYXRlUHJv
dG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpCitEYXRlUHJvdG90eXBlOjpEYXRlUHJvdG90eXBlKEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBEYXRlSW5zdGFuY2UoZXhlYywg
c3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7CiB9
CiAKIHZvaWQgRGF0ZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBK
U0dsb2JhbE9iamVjdCopCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9EYXRlUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRlUHJv
dG90eXBlLmgKaW5kZXggY2RhNmI3YWZhOTcxNTU4MDMxMWY0MGFiZjk0M2Q1ZmQyNDMwYTQwMS4u
NzFkOWVkYTMwOGE0YmM5NWZiOWMwNjQ3YmIxNTdkYjgwYzA3ZjY5YSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQcm90b3R5cGUuaApAQCAtMjksMTQgKzI5LDE2IEBA
IG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgRGF0ZVByb3RvdHlwZSA6IHB1YmxpYyBEYXRl
SW5zdGFuY2UgewogICAgIHByaXZhdGU6Ci0gICAgICAgIERhdGVQcm90b3R5cGUoRXhlY1N0YXRl
KiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKKyAgICAgICAgRGF0ZVByb3RvdHlwZShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmUqKTsKIAogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBE
YXRlSW5zdGFuY2UgQmFzZTsKIAogICAgICAgICBzdGF0aWMgRGF0ZVByb3RvdHlwZSogY3JlYXRl
KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRl
Q2VsbDxEYXRlUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkgRGF0ZVByb3RvdHlwZShleGVjLCBn
bG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBEYXRlUHJvdG90eXBlKiBwcm90
b3R5cGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxEYXRlUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkg
RGF0ZVByb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5m
aW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIHBy
b3RvdHlwZTsKICAgICAgICAgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlEZXNjcmlwdG9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FcnJvci5jcHAKaW5kZXggMjQ3MTY4OWNiNjdjZGUyYzA3ZDNlMTFjMGE4Nzk3Mjgz
ZGY2OTZmYi4uMDA4MTEzNWQ5ODFmNzllMzExYjc3NmJlZTUwMzFiYWUxMjIwMGM2NyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3IuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yLmNwcApAQCAtMTY3LDExICsxNjcsMTAgQEAg
SlNPYmplY3QqIHRocm93U3ludGF4RXJyb3IoRXhlY1N0YXRlKiBleGVjKQogCiBjbGFzcyBTdHJp
Y3RNb2RlVHlwZUVycm9yRnVuY3Rpb24gOiBwdWJsaWMgSW50ZXJuYWxGdW5jdGlvbiB7CiBwcml2
YXRlOgotICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBV
U3RyaW5nJiBtZXNzYWdlKQorICAgIFN0cmljdE1vZGVUeXBlRXJyb3JGdW5jdGlvbihKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmlu
ZyYgbWVzc2FnZSkKICAgICAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKQogICAgICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgIHsKLSAgICAgICAgZmlu
aXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkucHJvcGVy
dHlOYW1lcy0+ZW1wdHlJZGVudGlmaWVyKTsKICAgICB9CiAKIHB1YmxpYzoKQEAgLTE3OSw3ICsx
NzgsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9u
KiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbWVzc2FnZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24+
KCpleGVjLT5oZWFwKCkpKSBTdHJpY3RNb2RlVHlwZUVycm9yRnVuY3Rpb24oZXhlYywgZ2xvYmFs
T2JqZWN0LCBzdHJ1Y3R1cmUsIG1lc3NhZ2UpOworICAgICAgICBTdHJpY3RNb2RlVHlwZUVycm9y
RnVuY3Rpb24qIGZ1bmN0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaWN0TW9kZVR5cGVFcnJv
ckZ1bmN0aW9uPigqZXhlYy0+aGVhcCgpKSkgU3RyaWN0TW9kZVR5cGVFcnJvckZ1bmN0aW9uKGds
b2JhbE9iamVjdCwgc3RydWN0dXJlLCBtZXNzYWdlKTsKKyAgICAgICAgZnVuY3Rpb24tPmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+Z2xvYmFsRGF0YSgpLnByb3BlcnR5
TmFtZXMtPmVtcHR5SWRlbnRpZmllcik7CisgICAgICAgIHJldHVybiBmdW5jdGlvbjsKICAgICB9
CiAgICAgCiAgICAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc3RydWN0
VGhyb3dUeXBlRXJyb3IoRXhlY1N0YXRlKiBleGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmNwcAppbmRleCAzODAzZTAzNWRlYmRhYjU0
MDIzZGEzMmM3YTE4ZTdmMjU3OGYyODRhLi5hODkxOGQ2NmRhY2Y1Mzg4YjdlMWE3NThjMzZkMGQ5
MThlNmQyZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJv
ckNvbnN0cnVjdG9yLmNwcApAQCAtMjksMTAgKzI5LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoRXJyb3JDb25zdHJ1Y3Rvcik7CiAKLUVycm9yQ29uc3Ry
dWN0b3I6OkVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXJyb3JQcm90b3R5cGUqIGVycm9y
UHJvdG90eXBlKQorRXJyb3JDb25zdHJ1Y3Rvcjo6RXJyb3JDb25zdHJ1Y3RvcihKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFs
RnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24o
ZXhlYywgZXJyb3JQcm90b3R5cGUpOwogfQogCiB2b2lkIEVycm9yQ29uc3RydWN0b3I6OmZpbmlz
aENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgRXJyb3JQcm90b3R5cGUqIGVycm9yUHJvdG90eXBl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1
Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JDb25zdHJ1Y3Rvci5o
CmluZGV4IGQzYmQ4MDNlNWY4Mjc4NjA0NGM4NTUxOTMyY2MwMzdkY2ExNWI4ZTUuLjUwODNhOGU1
N2ZmZWNmMzIxNGVjNjhmMmQ1MWVkZDQ2ODI1ZmVmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0Vycm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9FcnJvckNvbnN0cnVjdG9yLmgKQEAgLTMyLDE2ICszMiwxOCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSW50ZXJuYWxGdW5j
dGlvbiBCYXNlOwogCi0gICAgICAgIHN0YXRpYyBFcnJvckNvbnN0cnVjdG9yKiBjcmVhdGUoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSwgRXJyb3JQcm90b3R5cGUqIGVyclByb3RvdHlwZSkKKyAgICAgICAgc3RhdGljIEVy
cm9yQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBFcnJvclByb3RvdHlwZSogZXJyb3JQ
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxFcnJvckNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgRXJyb3JDb25zdHJ1Y3RvcihleGVj
LCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZXJyUHJvdG90eXBlKTsKKyAgICAgICAgICAgIEVy
cm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8RXJyb3JDb25z
dHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEVycm9yQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUpOworICAgICAgICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKGV4ZWMs
IGVycm9yUHJvdG90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAg
ICAgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSosIEVycm9yUHJvdG90eXBlKik7CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAg
IEVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
LCBFcnJvclByb3RvdHlwZSopOworICAgICAgICBFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2Jq
ZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25z
dHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmKTsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRD
YWxsRGF0YShDYWxsRGF0YSYpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ1ODk3NGVhMzY1YTVk
NjQwYjYyNzVlNjg4ZWU0NjlhOWIzYWRjMWIuLjMwNDI0OWQ5NTQ5MjIzNWUxNjg3MTQ4ODE3ODRi
ZjIyZGRhMTg2YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1
bmN0aW9uQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNywxMCArMzcsOSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChGdW5jdGlvbkNvbnN0cnVjdG9yKTsKIAot
RnVuY3Rpb25Db25zdHJ1Y3Rvcjo6RnVuY3Rpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBGdW5j
dGlvblByb3RvdHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCitGdW5jdGlvbkNvbnN0cnVjdG9yOjpG
dW5jdGlvbkNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVy
ZSogc3RydWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBmdW5jdGlvblByb3RvdHlwZSk7CiB9
CiAKIHZvaWQgRnVuY3Rpb25Db25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBGdW5jdGlvblByb3RvdHlwZSogZnVuY3Rpb25Qcm90b3R5cGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmgKaW5kZXggZDQz
NmEyN2FjYWM4OWM5NmZhYTY0NmI4MDg2YThkY2Q0MTZjZDM1MC4uMzAzNGVmMWZmZDIxZjZmZjE3
NWRhYjBjODhlYzZhODM2OTRhMmJhMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvRnVuY3Rpb25Db25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuaApAQCAtMzEsMTMgKzMxLDE1IEBAIG5hbWVz
cGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9u
IEJhc2U7CiAKLSAgICAgICAgc3RhdGljIEZ1bmN0aW9uQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVj
U3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBGdW5jdGlvblByb3RvdHlwZSogZnVuY1Byb3RvdHlwZSkKKyAgICAgICAgc3RhdGlj
IEZ1bmN0aW9uQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBGdW5jdGlvblByb3RvdHlw
ZSogZnVuY3Rpb25Qcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcg
KGFsbG9jYXRlQ2VsbDxGdW5jdGlvbkNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rp
b25Db25zdHJ1Y3RvcihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgZnVuY1Byb3RvdHlw
ZSk7CisgICAgICAgICAgICBGdW5jdGlvbkNvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvciA9IG5ldyAo
YWxsb2NhdGVDZWxsPEZ1bmN0aW9uQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlv
bkNvbnN0cnVjdG9yKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIGNvbnN0
cnVjdG9yLT5maW5pc2hDcmVhdGlvbihleGVjLCBmdW5jdGlvblByb3RvdHlwZSk7CisgICAgICAg
ICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIEZ1bmN0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqLCBGdW5jdGlvblByb3RvdHlwZSopOworICAgICAgICBGdW5jdGlvbkNvbnN0cnVjdG9y
KEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oRXhlY1N0YXRlKiwgRnVuY3Rpb25Qcm90b3R5cGUqKTsKICAgICAgICAgdmlydHVhbCBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogICAgICAgICB2aXJ0
dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5jcHAKaW5kZXggNzIxMmViNzgz
NTI1YTJjZjJiZWVmNGQzZWM5ZmRjMjdkOGMyZGVlYi4uYTk3ZDk2NTI5ZTE5NjFmNDE5ZmMyYTRj
ZGU0ZWVhNTYxMzk3ZmRmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRnVuY3Rpb25Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0Z1bmN0aW9uUHJvdG90eXBlLmNwcApAQCAtMzcsMTAgKzM3LDkgQEAgc3RhdGljIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25Qcm90b0Z1bmNUb1N0cmluZyhFeGVjU3Rh
dGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJvdG9G
dW5jQXBwbHkoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBmdW5jdGlvblByb3RvRnVuY0NhbGwoRXhlY1N0YXRlKik7CiAKLUZ1bmN0aW9uUHJvdG90eXBl
OjpGdW5jdGlvblByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQorRnVuY3Rpb25Qcm90b3R5cGU6OkZ1bmN0
aW9uUHJvdG90eXBlKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlKQogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
IHsKLSAgICBmaW5pc2hDcmVhdGlvbihleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubnVsbElk
ZW50aWZpZXIpOwogfQogCiB2b2lkIEZ1bmN0aW9uUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUuaAppbmRleCA5YWQ3MGY3MDE1
NjJjMmQ5NTdkN2RiZTk4M2QwMGIwZjU2ZjkzOTBlLi45MGQ4Nzg5MWIxNzFkZjcwYjQxMzE3ZmEz
N2RkODEyY2I1OGQ3YzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9GdW5jdGlvblByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Z1bmN0aW9uUHJvdG90eXBlLmgKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIEZ1bmN0aW9uUHJvdG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUHJv
dG90eXBlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25Qcm90b3R5cGUoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUqIHByb3RvdHlw
ZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uUHJvdG90eXBlPigqZXhlYy0+aGVhcCgpKSkg
RnVuY3Rpb25Qcm90b3R5cGUoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAg
cHJvdG90eXBlLT5maW5pc2hDcmVhdGlvbihleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubnVs
bElkZW50aWZpZXIpOworICAgICAgICAgICAgcmV0dXJuIHByb3RvdHlwZTsKICAgICAgICAgfQog
ICAgICAgICAKICAgICAgICAgdm9pZCBhZGRGdW5jdGlvblByb3BlcnRpZXMoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqIGZ1bmN0aW9uU3RydWN0dXJlLCBKU0Z1bmN0aW9u
KiogY2FsbEZ1bmN0aW9uLCBKU0Z1bmN0aW9uKiogYXBwbHlGdW5jdGlvbik7CkBAIC00NSw3ICs0
Nyw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
RnVuY3Rpb25Qcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKKyAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUq
KTsKICAgICAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAg
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZl
RXJyb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNTM3YTQ1NzZjNzAyM2MwOTcwMjVhMmJjMDhlNmZi
NGEzZDlmNjA2My4uYTEwM2MzNzYxMzYyYzI1M2I2Y2UyOGRhMWYyYzAyYTYxYWY2Y2RmNyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JD
b25zdHJ1Y3Rvci5jcHAKQEAgLTMyLDEwICszMiw5IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBOYXRpdmVFcnJv
ckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpz
X2luZm8sIDAsIDAgfTsKIAotTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvcjo6TmF0aXZlRXJyb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0
cnVjdHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3Qg
VVN0cmluZyYgbmFtZSkKK05hdGl2ZUVycm9yQ29uc3RydWN0b3I6Ok5hdGl2ZUVycm9yQ29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlU3RydWN0dXJlLCBu
YW1lKTsKIH0KIAogdm9pZCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yOjp2aXNpdENoaWxkcmVuKFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTmF0aXZlRXJyb3JDb25zdHJ1Y3Rvci5oCmluZGV4IDFhMGI0ZTA3ODYyYWY3MzJjM2U1
Yzg0Zjc3YjJkZTE4N2Y5MzZiMmUuLmE3YWNjNWEyYTk2OTRmNjg4ZWJlYTQ5ZjJjYmRkZDNkMzQ4
N2RmZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVy
cm9yQ29uc3RydWN0b3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRp
dmVFcnJvckNvbnN0cnVjdG9yLmgKQEAgLTM2LDcgKzM2LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAK
ICAgICAgICAgc3RhdGljIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBTdHJ1Y3R1cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmluZyYgbmFtZSkKICAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUVycm9y
Q29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKGV4ZWMs
IGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBwcm90b3R5cGVTdHJ1Y3R1cmUsIG5hbWUpOworICAg
ICAgICAgICAgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3IgPSBuZXcgKGFsbG9j
YXRlQ2VsbDxOYXRpdmVFcnJvckNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgTmF0aXZlRXJy
b3JDb25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25z
dHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGVTdHJ1
Y3R1cmUsIG5hbWUpOworICAgICAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwogICAgICAgICB9
CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTY0
LDcgKzY2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIE5hdGl2ZUVycm9yQ29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3Qq
LCBTdHJ1Y3R1cmUqLCBTdHJ1Y3R1cmUqIHByb3RvdHlwZVN0cnVjdHVyZSwgY29uc3QgVVN0cmlu
ZyYpOworICAgICAgICBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKEpTR2xvYmFsT2JqZWN0KiwgU3Ry
dWN0dXJlKik7CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBJbnRlcm5hbEZ1bmN0aW9uOjpTdHJ1Y3R1cmVGbGFn
czsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3Ry
dWN0RGF0YSYpOwogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRh
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
clByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJv
clByb3RvdHlwZS5jcHAKaW5kZXggNWIyODk5ZWEzMGMxOTMxNzg3YTIxMjM0MzcxZTZiMDNiZTE5
ZjFkNC4uZGZkZDg3Zjg1MzIxYjkxOTc5NzdiZjVkN2Y1OWJjMDM3YjA4NzY0YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBl
LmNwcApAQCAtMzAsMTMgKzMwLDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKE5hdGl2ZUVycm9yUHJvdG90eXBlKTsKIAotTmF0aXZlRXJyb3JQcm90b3R5
cGU6Ok5hdGl2ZUVycm9yUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG5hbWVB
bmRNZXNzYWdlLCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKiBjb25zdHJ1Y3RvcikKK05hdGl2ZUVy
cm9yUHJvdG90eXBlOjpOYXRpdmVFcnJvclByb3RvdHlwZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVj
dHVyZSogc3RydWN0dXJlKQogICAgIDogRXJyb3JQcm90b3R5cGUoZXhlYywgc3RydWN0dXJlKQog
ewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCwgbmFtZUFuZE1lc3NhZ2Us
IGNvbnN0cnVjdG9yKTsKIH0KIAotaW5saW5lIHZvaWQgTmF0aXZlRXJyb3JQcm90b3R5cGU6OmZp
bmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgY29uc3QgVVN0cmluZyYgbmFtZUFuZE1lc3NhZ2UsIE5hdGl2ZUVycm9yQ29uc3RydWN0b3Iq
IGNvbnN0cnVjdG9yKQordm9pZCBOYXRpdmVFcnJvclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24o
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBVU3Ry
aW5nJiBuYW1lQW5kTWVzc2FnZSwgTmF0aXZlRXJyb3JDb25zdHJ1Y3RvciogY29uc3RydWN0b3Ip
CiB7CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKICAgICBw
dXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubmFtZSwg
anNTdHJpbmcoZXhlYywgbmFtZUFuZE1lc3NhZ2UpLCBEb250RW51bSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTmF0aXZlRXJyb3JQcm90b3R5cGUuaAppbmRleCBk
ODk0YWI0ZjM1MzA2YThmYTc5YmVhOWFjNGU5NzE3OGZmNzVkMDlmLi43NmFkNzA2ZGVmYTkwZTk0
MzVhOTE5ZjczZGM2MzQ0ZWY2MzQzNGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9OYXRpdmVFcnJvclByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL05hdGl2ZUVycm9yUHJvdG90eXBlLmgKQEAgLTI4LDE0ICsyOCwxNiBAQCBu
YW1lc3BhY2UgSlNDIHsKIAogICAgIGNsYXNzIE5hdGl2ZUVycm9yUHJvdG90eXBlIDogcHVibGlj
IEVycm9yUHJvdG90eXBlIHsKICAgICBwcml2YXRlOgotICAgICAgICBOYXRpdmVFcnJvclByb3Rv
dHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIGNvbnN0IFVTdHJp
bmcmLCBOYXRpdmVFcnJvckNvbnN0cnVjdG9yKik7CisgICAgICAgIE5hdGl2ZUVycm9yUHJvdG90
eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogICAgIAogICAgIHB1YmxpYzoKICAgICAgICAg
dHlwZWRlZiBFcnJvclByb3RvdHlwZSBCYXNlOwogCiAgICAgICAgIHN0YXRpYyBOYXRpdmVFcnJv
clByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG5hbWUsIE5hdGl2
ZUVycm9yQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yKQogICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8TmF0aXZlRXJyb3JQcm90b3R5cGU+KCpleGVjLT5oZWFw
KCkpKSBOYXRpdmVFcnJvclByb3RvdHlwZShleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
bmFtZSwgY29uc3RydWN0b3IpOworICAgICAgICAgICAgTmF0aXZlRXJyb3JQcm90b3R5cGUqIHBy
b3RvdHlwZSA9IG5ldyAoYWxsb2NhdGVDZWxsPE5hdGl2ZUVycm9yUHJvdG90eXBlPigqZXhlYy0+
aGVhcCgpKSkgTmF0aXZlRXJyb3JQcm90b3R5cGUoZXhlYywgc3RydWN0dXJlKTsKKyAgICAgICAg
ICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0LCBuYW1lLCBj
b25zdHJ1Y3Rvcik7CisgICAgICAgICAgICByZXR1cm4gcHJvdG90eXBlOwogICAgICAgICB9CiAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9OdW1iZXJDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjM4ZTNmZjliNTVkZTYyYTU2MTZkMDcxYWU5MDYy
MmZjM2Q1OWM4MS4uZjc4YTA0ZTkyMTU4ODkzODVmODlkMDFmMjgyOTBiMDVhMDlkNmMzZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0cnVjdG9y
LmNwcApAQCAtNTQsMTAgKzU0LDkgQEAgY29uc3QgQ2xhc3NJbmZvIE51bWJlckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJbnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICov
CiAKLU51bWJlckNvbnN0cnVjdG9yOjpOdW1iZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBOdW1i
ZXJQcm90b3R5cGUqIG51bWJlclByb3RvdHlwZSkKK051bWJlckNvbnN0cnVjdG9yOjpOdW1iZXJD
b25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rpb24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpIAog
ewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIG51bWJlclByb3RvdHlwZSk7CiB9CiAKIHZvaWQg
TnVtYmVyQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgTnVtYmVy
UHJvdG90eXBlKiBudW1iZXJQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvTnVtYmVyQ29uc3RydWN0b3IuaAppbmRleCA4NGM0ZDFmYjYyOTY4MmE1NjRmMWEx
YjZmODFkZDJlZDk5MTc2NzI3Li40ZDY0MWI5ODQyNTEzNjdiMmU5ZDZlYzlhOTRlMTMxZDY2Y2Jl
YTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25z
dHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlckNvbnN0
cnVjdG9yLmgKQEAgLTMxLDkgKzMxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoK
ICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKLSAgICAgICAgc3RhdGlj
IE51bWJlckNvbnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgTnVtYmVyUHJvdG90eXBlKiBu
dW1Qcm90b3R5cGUpCisgICAgICAgIHN0YXRpYyBOdW1iZXJDb25zdHJ1Y3RvciogY3JlYXRlKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIE51bWJlclByb3RvdHlwZSogbnVtYmVyUHJvdG90eXBlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8TnVtYmVyQ29uc3RydWN0b3I+KCpl
eGVjLT5oZWFwKCkpKSBOdW1iZXJDb25zdHJ1Y3RvcihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVj
dHVyZSwgbnVtUHJvdG90eXBlKTsKKyAgICAgICAgICAgIE51bWJlckNvbnN0cnVjdG9yKiBjb25z
dHJ1Y3RvciA9IG5ldyAoYWxsb2NhdGVDZWxsPE51bWJlckNvbnN0cnVjdG9yPigqZXhlYy0+aGVh
cCgpKSkgTnVtYmVyQ29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAg
ICAgICAgY29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIG51bWJlclByb3RvdHlwZSk7
CisgICAgICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTU0LDcgKzU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dl
dE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IEludGVybmFsRnVuY3Rp
b246OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTnVtYmVyQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBOdW1iZXJQcm90
b3R5cGUqKTsKKyAgICAgICAgTnVtYmVyQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1
Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEo
Q29uc3RydWN0RGF0YSYpOwogICAgICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENh
bGxEYXRhJik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL051bWJlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9O
dW1iZXJQcm90b3R5cGUuY3BwCmluZGV4IDg3MDFlOTExN2ZjODFlOWY5MzBlMGNkODBiNTBhMGEz
NDFmYTVhNmEuLjA3ZGExZTQyMmM2YWJjN2Y1Mjk2ZjY1NGIwYTI3YjVlOTA3MmFkYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmNwcApA
QCAtNzAsMTAgKzcwLDkgQEAgY29uc3QgQ2xhc3NJbmZvIE51bWJlclByb3RvdHlwZTo6c19pbmZv
ID0geyAiTnVtYmVyIiwgJk51bWJlck9iamVjdDo6c19pbmZvLCAwLAogCiBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKE51bWJlclByb3RvdHlwZSk7CiAKLU51bWJlclByb3RvdHlwZTo6TnVtYmVy
UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCitOdW1iZXJQcm90b3R5cGU6Ok51bWJlclByb3RvdHlwZShF
eGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogTnVtYmVyT2JqZWN0
KGV4ZWMtPmdsb2JhbERhdGEoKSwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4
ZWMsIGdsb2JhbE9iamVjdCk7CiB9CiAKIHZvaWQgTnVtYmVyUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL051bWJlclByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVyUHJvdG90eXBlLmgKaW5kZXggOGUxMDA3YWNiYmM4YmM2
Y2E1MDUyNDFkZTY2N2YzY2RlNmQ0ODA0MC4uMzQxZmNjY2Q5MDZmMzIyYTAwYzNlYmMwN2VmYjhl
ZWIxODEyMDQzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVt
YmVyUHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTnVtYmVy
UHJvdG90eXBlLmgKQEAgLTMxLDcgKzMxLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAg
c3RhdGljIE51bWJlclByb3RvdHlwZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxOdW1iZXJQcm90b3R5cGU+KCpleGVj
LT5oZWFwKCkpKSBOdW1iZXJQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUp
OworICAgICAgICAgICAgTnVtYmVyUHJvdG90eXBlKiBwcm90b3R5cGUgPSBuZXcgKGFsbG9jYXRl
Q2VsbDxOdW1iZXJQcm90b3R5cGU+KCpleGVjLT5oZWFwKCkpKSBOdW1iZXJQcm90b3R5cGUoZXhl
Yywgc3RydWN0dXJlKTsKKyAgICAgICAgICAgIHByb3RvdHlwZS0+ZmluaXNoQ3JlYXRpb24oZXhl
YywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiBwcm90b3R5cGU7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAt
NDYsNyArNDgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgTnVtYmVy
T2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIE51bWJlclBy
b3RvdHlwZShFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOworICAgICAg
ICBOdW1iZXJQcm90b3R5cGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
Q29uc3RydWN0b3IuY3BwCmluZGV4IGRjODcxMDE4N2FlZDdlZWY5NjRlMDQzODY4OTkyOGMzYzhi
OGNkZDEuLjNhNTRhNTQ3MWUwZmVjNmY2M2YxZmFmYmNkNDRjNDRhZDg1NDgzNDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5jcHAK
QEAgLTc1LDEwICs3NSw5IEBAIGNvbnN0IENsYXNzSW5mbyBPYmplY3RDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiRnVuY3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiBAZW5kCiAqLwogCi1P
YmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqZWN0UHJv
dG90eXBlKiBvYmplY3RQcm90b3R5cGUpCitPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUp
CiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogewotICAg
IGZpbmlzaENyZWF0aW9uKGV4ZWMsIG9iamVjdFByb3RvdHlwZSk7CiB9CiAKIHZvaWQgT2JqZWN0
Q29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYywgT2JqZWN0UHJvdG90
eXBlKiBvYmplY3RQcm90b3R5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuaAppbmRleCA0YzMyMDI4ODFiMjA0Y2M0MTI4Zjg3NDI4ZTQw
N2ExMTNjMjk3MGQwLi5iODQyMTJmMGQwNGMzMzU3YjExNjE5ZjY0NGFiNWRjNzRhNTQ0MzFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9y
LmgKQEAgLTMxLDkgKzMxLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAg
ICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKLSAgICAgICAgc3RhdGljIE9iamVj
dENvbnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgT2JqZWN0UHJvdG90eXBlKiBvYmpQcm90
b3R5cGUpCisgICAgICAgIHN0YXRpYyBPYmplY3RDb25zdHJ1Y3RvciogY3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIE9iamVjdFByb3RvdHlwZSogb2JqZWN0UHJvdG90eXBlKQogICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8T2JqZWN0Q29uc3RydWN0b3I+KCpleGVjLT5o
ZWFwKCkpKSBPYmplY3RDb25zdHJ1Y3RvcihleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwg
b2JqUHJvdG90eXBlKTsKKyAgICAgICAgICAgIE9iamVjdENvbnN0cnVjdG9yKiBjb25zdHJ1Y3Rv
ciA9IG5ldyAoYWxsb2NhdGVDZWxsPE9iamVjdENvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkg
T2JqZWN0Q29uc3RydWN0b3IoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAg
Y29uc3RydWN0b3ItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIG9iamVjdFByb3RvdHlwZSk7CisgICAg
ICAgICAgICByZXR1cm4gY29uc3RydWN0b3I7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKQEAgLTUxLDcgKzUzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEludGVybmFsRnVuY3Rpb246OlN0cnVjdHVyZUZsYWdzOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgT2JqZWN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqLCBTdHJ1Y3R1cmUqLCBPYmplY3RQcm90b3R5cGUqKTsKKyAgICAgICAgT2JqZWN0Q29uc3Ry
dWN0b3IoSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgdmlydHVhbCBDb25z
dHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoQ29uc3RydWN0RGF0YSYpOwogICAgICAgICB2aXJ0
dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAgICAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcAppbmRleCBm
ZTA2YjZjZDQ5NzNjYWVkNzcwNTQyZGJmMWQ5ZTQyNmU4NGMxYzE4Li5jYWZhMTI5MWJjMjVjOTVl
NTc3OTFiMTVjMGQ0YTkyYWRkMGNkYzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCkBAIC05NSwxMSArOTUsMTAgQEAgY29u
c3QgQ2xhc3NJbmZvIFJlZ0V4cENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJGdW5jdGlvbiIsICZJ
bnRlcm5hbEZ1bmN0aW9uOjpzX2kKIEBlbmQKICovCiAKLVJlZ0V4cENvbnN0cnVjdG9yOjpSZWdF
eHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBSZWdFeHBQcm90b3R5cGUqIHJlZ0V4cFByb3RvdHlw
ZSkKK1JlZ0V4cENvbnN0cnVjdG9yOjpSZWdFeHBDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEludGVybmFsRnVuY3Rp
b24oZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpCiAgICAgLCBkKGFkb3B0UHRyKG5ldyBSZWdFeHBD
b25zdHJ1Y3RvclByaXZhdGUpKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIHJlZ0V4cFBy
b3RvdHlwZSk7CiB9CiAKIHZvaWQgUmVnRXhwQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgUmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuaAppbmRleCA1
ZmE3NjFlYTZiMGFmYTc1NWQ5ODQzYjMzYjZkM2I3ODJjNjM4YTNjLi5hOWE5ZTY5M2FmMTJkNDEz
ODQ5YzFkNmU0NDdhMDk0NmRmZWM3YWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmgKQEAgLTYxLDcgKzYxLDkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgc3RhdGljIFJlZ0V4cENvbnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgUmVnRXhwUHJvdG90eXBlKiByZWdFeHBQcm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxSZWdFeHBDb25zdHJ1Y3Rvcj4oKmV4ZWMt
PmhlYXAoKSkpIFJlZ0V4cENvbnN0cnVjdG9yKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCByZWdFeHBQcm90b3R5cGUpOworICAgICAgICAgICAgUmVnRXhwQ29uc3RydWN0b3IqIGNvbnN0
cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8UmVnRXhwQ29uc3RydWN0b3I+KCpleGVjLT5oZWFw
KCkpKSBSZWdFeHBDb25zdHJ1Y3RvcihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7CisgICAgICAg
ICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgcmVnRXhwUHJvdG90eXBlKTsK
KyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsKICAgICAgICAgfQogCiAgICAgICAgIHN0
YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQpAQCAtOTQs
NyArOTYsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW1wbGVtZW50
c0hhc0luc3RhbmNlIHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBSZWdFeHBDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCosIFN0cnVjdHVyZSosIFJlZ0V4cFByb3RvdHlwZSopOworICAgICAgICBSZWdFeHBDb25z
dHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSopOwogICAgICAgICB2aXJ0dWFsIENv
bnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHZp
cnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEoQ2FsbERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKaW5kZXggOTFiODg2OTdm
M2RiOGI3ODA0YWZmMmIwOGVhZDhkODI3ODQ5M2ZlNi4uNmMxODcyOWY3MDIyYzZkYWUxM2ZmMWM4
NDFhZThmYTA3NjQ3N2JiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvUmVnRXhwUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuY3BwCkBAIC02MiwxMCArNjIsOSBAQCBjb25zdCBDbGFzc0luZm8g
UmVnRXhwUHJvdG90eXBlOjpzX2luZm8gPSB7ICJSZWdFeHAiLCAmUmVnRXhwT2JqZWN0OjpzX2lu
Zm8sIDAsCiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoUmVnRXhwUHJvdG90eXBlKTsKIAot
UmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQor
UmVnRXhwUHJvdG90eXBlOjpSZWdFeHBQcm90b3R5cGUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFJlZ0V4cCogcmVnRXhwKQogICAgIDogUmVnRXhw
T2JqZWN0KGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCByZWdFeHApCiB7Ci0gICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsT2JqZWN0KTsKIH0KIAogYm9vbCBSZWdFeHBQcm90b3R5cGU6OmdldE93blBy
b3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90ICZzbG90KQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9SZWdFeHBQcm90b3R5cGUuaAppbmRleCBjMzJhOWJmODdlZWY2MzVlMGE4NjJkZmZiZGMzNzUy
ZWZhZTc3ZDU5Li5jYTJhMjZkODE1MzNmMzRjZGI3ODc3YmYzNWNhN2RkNzk1OWVmMDA4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuaApAQCAt
MzIsNyArMzIsOSBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUmVnRXhwUHJv
dG90eXBlKiBjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUmVnRXhwKiByZWdFeHApCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxSZWdFeHBQcm90b3R5cGU+KCpleGVj
LT5oZWFwKCkpKSBSZWdFeHBQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUs
IHJlZ0V4cCk7CisgICAgICAgICAgICBSZWdFeHBQcm90b3R5cGUqIHByb3RvdHlwZSA9IG5ldyAo
YWxsb2NhdGVDZWxsPFJlZ0V4cFByb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIFJlZ0V4cFByb3Rv
dHlwZShnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgcmVnRXhwKTsKKyAgICAgICAgICAgIHByb3Rv
dHlwZS0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiBw
cm90b3R5cGU7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFz
c0luZm8gc19pbmZvOwpAQCAtNDMsNyArNDUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
fQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBSZWdFeHBQcm90b3R5cGUoRXhlY1N0YXRlKiwg
SlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqLCBSZWdFeHAqKTsKKyAgICAgICAgUmVnRXhwUHJv
dG90eXBlKEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgUmVnRXhwKik7CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IFJlZ0V4cE9iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0
b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3Iu
Y3BwCmluZGV4IGRiYjE2MWYwYmQxZTUzZTBiZjk0ZjUxMzU5YWE1Y2JhODAyZmUwNTUuLjZmMzUy
NjY0ZGUxNDVhMTM3MTg4ZjdjZjcxN2RkZTNkYTNkOWNhMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5jcHAKQEAgLTQ3LDEwICs0
Nyw5IEBAIGNvbnN0IENsYXNzSW5mbyBTdHJpbmdDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiRnVu
Y3Rpb24iLCAmSW50ZXJuYWxGdW5jdGlvbjo6c19pCiAKIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NF
TEwoU3RyaW5nQ29uc3RydWN0b3IpOwogCi1TdHJpbmdDb25zdHJ1Y3Rvcjo6U3RyaW5nQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQcm90b3R5cGUpCitTdHJp
bmdDb25zdHJ1Y3Rvcjo6U3RyaW5nQ29uc3RydWN0b3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBJbnRlcm5hbEZ1bmN0aW9uKGdsb2Jh
bE9iamVjdCwgc3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMsIHN0cmluZ1By
b3RvdHlwZSk7CiB9CiAKIHZvaWQgU3RyaW5nQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKEV4
ZWNTdGF0ZSogZXhlYywgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQcm90b3R5cGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nQ29uc3RydWN0b3IuaAppbmRleCA4
MGUzNzE2MjA5MDVlMDk4YmMzMWZlZWYxMjcwN2NjNzhjZTBiMmQ0Li45NTdiNGIzMTkzMGI2ZTVm
MGRhZTY4Mzc4OGM1NGQ1ZGIzMDUxODQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdDb25zdHJ1Y3Rvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1N0cmluZ0NvbnN0cnVjdG9yLmgKQEAgLTMxLDkgKzMxLDExIEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgIHB1YmxpYzoKICAgICAgICAgdHlwZWRlZiBJbnRlcm5hbEZ1bmN0aW9uIEJh
c2U7CiAKLSAgICAgICAgc3RhdGljIFN0cmluZ0NvbnN0cnVjdG9yKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ICwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFN0cmluZ1Byb3RvdHlwZSogc3RyUHJvdG90eXBlKQorICAgICAgICBzdGF0aWMgU3RyaW5n
Q29uc3RydWN0b3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QgLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgU3RyaW5nUHJvdG90eXBlKiBzdHJpbmdQ
cm90b3R5cGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxTdHJpbmdDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIFN0cmluZ0NvbnN0cnVjdG9yKGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBzdHJQcm90b3R5cGUpOworICAgICAgICAgICAg
U3RyaW5nQ29uc3RydWN0b3IqIGNvbnN0cnVjdG9yID0gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5n
Q29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBTdHJpbmdDb25zdHJ1Y3RvcihnbG9iYWxPYmpl
Y3QsIHN0cnVjdHVyZSk7CisgICAgICAgICAgICBjb25zdHJ1Y3Rvci0+ZmluaXNoQ3JlYXRpb24o
ZXhlYywgc3RyaW5nUHJvdG90eXBlKTsKKyAgICAgICAgICAgIHJldHVybiBjb25zdHJ1Y3RvcjsK
ICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwpAQCAt
NDcsNyArNDksNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJu
YWxGdW5jdGlvbjo6U3RydWN0dXJlRmxhZ3M7CiAKICAgICBwcml2YXRlOgotICAgICAgICBTdHJp
bmdDb25zdHJ1Y3RvcihFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIFN0
cmluZ1Byb3RvdHlwZSopOworICAgICAgICBTdHJpbmdDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVj
dCosIFN0cnVjdHVyZSopOwogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSos
IFN0cmluZ1Byb3RvdHlwZSopOwogICAgICAgICB2aXJ0dWFsIENvbnN0cnVjdFR5cGUgZ2V0Q29u
c3RydWN0RGF0YShDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0
Q2FsbERhdGEoQ2FsbERhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVm
aW5lZC5oCmluZGV4IGMwNGVmZGUzZTFhZGQyNTdiZjdkYWE5NmIwY2Q2YjE4MTQ0ZTFjMGUuLmUw
MjFlYjU0MzcyMjY1M2MzM2ZjNGIxYmY3NmJkMWJjNTAxNWU4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0
VGhhdE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQuaApAQCAtMzYsMTQgKzM2LDE1IEBAIG5hbWVzcGFj
ZSBKU0MgewogICAgICAgICB7CiAgICAgICAgICAgICBKU1N0cmluZyogbmV3U3RyaW5nID0ganNT
dHJpbmcoZXhlYywgc3RyaW5nKTsKICAgICAgICAgICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnN0cmluZ1Byb3RvdHlwZSgpKTsK
LSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxTdHJpbmdPYmplY3RUaGF0TWFz
cXVlcmFkZXNBc1VuZGVmaW5lZD4oKmV4ZWMtPmhlYXAoKSkpIFN0cmluZ09iamVjdFRoYXRNYXNx
dWVyYWRlc0FzVW5kZWZpbmVkKGV4ZWMsIHN0cnVjdHVyZSwgbmV3U3RyaW5nKTsKKyAgICAgICAg
ICAgIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKiBvYmplY3QgPSBuZXcg
KGFsbG9jYXRlQ2VsbDxTdHJpbmdPYmplY3RUaGF0TWFzcXVlcmFkZXNBc1VuZGVmaW5lZD4oKmV4
ZWMtPmhlYXAoKSkpIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGV4ZWMs
IHN0cnVjdHVyZSk7CisgICAgICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgbmV3U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBvYmplY3Q7CiAgICAg
ICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3Ry
aW5nKiBzdHJpbmcpCisgICAgICAgIFN0cmluZ09iamVjdFRoYXRNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICA6
IFN0cmluZ09iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAgICAgICAgewot
ICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHJpbmcpOwog
ICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBwcm90bykgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5n
UHJvdG90eXBlLmNwcAppbmRleCBhMWM5YWE5ZjFjYjZlODUwMTQ1MzI4MTBhZTIzYzBjODRiYmE1
MjljLi44ZTE5ZjAxZGNiZDQwMDA1M2IyMzc0OGEzNWQwNmFhYTkzMWUxYjFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEz
MSwxMCArMTMxLDkgQEAgY29uc3QgQ2xhc3NJbmZvIFN0cmluZ1Byb3RvdHlwZTo6c19pbmZvID0g
eyAiU3RyaW5nIiwgJlN0cmluZ09iamVjdDo6c19pbmZvLCAwLAogKi8KIAogLy8gRUNNQSAxNS41
LjQKLVN0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTU3RyaW5n
KiBuYW1lQW5kTWVzc2FnZSkKK1N0cmluZ1Byb3RvdHlwZTo6U3RyaW5nUHJvdG90eXBlKEV4ZWNT
dGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBTdHJpbmdPYmplY3QoZXhl
Yy0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywg
Z2xvYmFsT2JqZWN0LCBuYW1lQW5kTWVzc2FnZSk7CiB9CiAKIHZvaWQgU3RyaW5nUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiwgSlNTdHJp
bmcqIG5hbWVBbmRNZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJpbmdQcm90b3R5cGUuaAppbmRleCA0OWExZGEyMDhkMWUwYzE4Mjg1NDMyNWI4NDQ0NGMyMzdi
ZTgzOGQ5Li4xMjE0MzNjNTYzYWY5ZGU1NDFhNjVjMDdhNjdjOWEwYjEzODEyZDUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuaApAQCAtMjks
MTQgKzI5LDE3IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgY2xhc3MgU3RyaW5nUHJvdG90eXBl
IDogcHVibGljIFN0cmluZ09iamVjdCB7CiAgICAgcHJpdmF0ZToKLSAgICAgICAgU3RyaW5nUHJv
dG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgU3RydWN0dXJlKiwgSlNTdHJpbmcq
KTsKKyAgICAgICAgU3RyaW5nUHJvdG90eXBlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSopOwogCiAg
ICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIFN0cmluZ09iamVjdCBCYXNlOwogCiAgICAgICAg
IHN0YXRpYyBTdHJpbmdQcm90b3R5cGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8U3RyaW5nUHJvdG90eXBlPigqZXhl
Yy0+aGVhcCgpKSkgU3RyaW5nUHJvdG90eXBlKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBqc0VtcHR5U3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgICAgIEpTU3RyaW5nKiBlbXB0eSA9IGpz
RW1wdHlTdHJpbmcoZXhlYyk7CisgICAgICAgICAgICBTdHJpbmdQcm90b3R5cGUqIHByb3RvdHlw
ZSA9IG5ldyAoYWxsb2NhdGVDZWxsPFN0cmluZ1Byb3RvdHlwZT4oKmV4ZWMtPmhlYXAoKSkpIFN0
cmluZ1Byb3RvdHlwZShleGVjLCBzdHJ1Y3R1cmUpOworICAgICAgICAgICAgcHJvdG90eXBlLT5m
aW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxPYmplY3QsIGVtcHR5KTsKKyAgICAgICAgICAgIHJl
dHVybiBwcm90b3R5cGU7CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwppbmRleCBkYzE0MDgxMmQ0YWJj
MmQxYzhiY2NkNWViZWYzZGRjMzRjYWJhNmVhLi41MmU5NjAzNmEzODZjYzQwYmRhMDUxNTQ4OGI3
NDFhYmZkN2E0MGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMS0wOS0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlND
ZWxsIGhpZXJhcmNoeSAoNi83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njc2OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDb21wbGV0ZWQgdGhlIHNpeHRoIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0
byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3
aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29u
c3RydWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1
c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0
aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBmaWZ0aCBsZXZlbCBvZiB0
aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0
aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGluZworICAgICAgICBj
cmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2ltdWx0YW5lb3VzbHkg
YWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50IHRoYXQgdGhlIGZp
bmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5IAorICAgICAgICBv
bmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFu
eSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBtb3JlKSB3aWxsIGNh
dXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogSlNSdW4uY3BwOgorICAgICAg
ICAoSlNHbHVlR2xvYmFsT2JqZWN0OjpKU0dsdWVHbG9iYWxPYmplY3QpOgorICAgICAgICAqIEpT
UnVuLmg6CisgICAgICAgIChKU0dsdWVHbG9iYWxPYmplY3Q6OmNyZWF0ZSk6CisKIDIwMTEtMDkt
MDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgc3Vw
cG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNS
dW4uY3BwCmluZGV4IDA2NDI2MzRlNzc4MjZmYTNmMWNkMjc3ODk5YjVhYzVmYzM3OTVhMmQuLjYz
MTkyZTJjOGEzMmZmNzBlMGFmZDliNGUzNWYzNjkwMzIxM2FkODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0pT
UnVuLmNwcApAQCAtMzgsNyArMzgsNiBAQCBKU0dsdWVHbG9iYWxPYmplY3Q6OkpTR2x1ZUdsb2Jh
bE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydQogICAgICwg
bV9mbGFncyhmbGFncykKICAgICAsIG1fdXNlck9iamVjdFN0cnVjdHVyZShnbG9iYWxEYXRhLCB1
c2VyT2JqZWN0U3RydWN0dXJlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRo
aXMpOwogfQogCiBKU1J1bjo6SlNSdW4oQ0ZTdHJpbmdSZWYgc291cmNlLCBKU0ZsYWdzIGluRmxh
Z3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvSlNSdW4uaCBiL1NvdXJjZS9K
YXZhU2NyaXB0R2x1ZS9KU1J1bi5oCmluZGV4IGFmOWVhNDkwYTVjYzRkMDg0MjZkNDRkZGJmMmVl
YzNlZDZhNDAwMWYuLmM4Y2QwMTEzZmUyZTJkZjBlY2YxNGZiMTYxYzI1NGI2ZWVkNmJlZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9KU1J1bi5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0R2x1ZS9KU1J1bi5oCkBAIC00MSw3ICs0MSw5IEBAIGNsYXNzIEpTR2x1ZUdsb2JhbE9i
amVjdCA6IHB1YmxpYyBKU0dsb2JhbE9iamVjdCB7CiAgICAgICAgIHN0YXRpYyBKU0dsdWVHbG9i
YWxPYmplY3QqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0ZsYWdzIGZsYWdzID0ga0pTRmxhZ05vbmUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIFN0cnVjdHVyZSogdXNlck9iamVjdFN0cnVjdHVyZSA9IFVzZXJPYmplY3RJbXA6OmNyZWF0
ZVN0cnVjdHVyZShnbG9iYWxEYXRhLCAwLCBqc051bGwoKSk7Ci0gICAgICAgICAgICByZXR1cm4g
bmV3IChhbGxvY2F0ZUNlbGw8SlNHbHVlR2xvYmFsT2JqZWN0PihnbG9iYWxEYXRhLmhlYXApKSBK
U0dsdWVHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCB1c2VyT2JqZWN0U3RydWN0
dXJlLCBmbGFncyk7CisgICAgICAgICAgICBKU0dsdWVHbG9iYWxPYmplY3QqIG9iamVjdCA9IG5l
dyAoYWxsb2NhdGVDZWxsPEpTR2x1ZUdsb2JhbE9iamVjdD4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNH
bHVlR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgdXNlck9iamVjdFN0cnVjdHVy
ZSwgZmxhZ3MpOworICAgICAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
LCBvYmplY3QpOworICAgICAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICAgICAgfQogCiAgICAg
ICAgIEpTRmxhZ3MgRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggYmJkZjcyOGRhN2Q4ZjU0MWU0NjI0MGViN2VkMWIzN2EyNTY5M2VkZS4uMjQ2YzlkODkwY2Fi
NjkyNThkMTcxNDljMGE4NzA3ODU1YTA0NjkxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMyBA
QAorMjAxMS0wOS0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgor
CisgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4g
SlNDZWxsIGhpZXJhcmNoeSAoNi83KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Njc2OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMuCisKKyAgICAgICAgQ29tcGxldGVkIHRoZSBzaXh0
aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3JpbmcgdG8gYWRkIGZpbmlzaENyZWF0aW9uKCkgCisgICAg
ICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMgd2l0aGluIHRoZSBKU0NlbGwgaGllcmFyY2h5IHdp
dGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNvbnN0cnVjdG9yIGJvZGllcy4KKworICAgICAgICBU
aGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBwdXNoaW5nIHRoZSBjYWxscyB0byBmaW5pc2hDcmVh
dGlvbigpIGRvd24gCisgICAgICAgIGludG8gdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUgc3ViY2xh
c3NlcyBvZiB0aGUgZmlmdGggbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAgYXMgd2Vs
bCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRoZSBjbGFz
cydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhhcyBvbmUu
ICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAgbWFpbnRh
aW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBjaGFpbiBp
cyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9uIG9mIGFu
IG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAgICAgICB0
aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZS4KKwor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmlu
ZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ29uc3RydWN0b3JPYmplY3Q6OkRPTUNvbnN0
cnVjdG9yT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNvbnN0cnVjdG9yV2l0aERvY3Vt
ZW50OjpET01Db25zdHJ1Y3RvcldpdGhEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpET01D
b25zdHJ1Y3RvcldpdGhEb2N1bWVudDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0OjpKU0RPTUdsb2JhbE9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01HbG9iYWxPYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dvcmtl
ckNvbnRleHRCYXNlOjpKU1dvcmtlckNvbnRleHRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
V29ya2VyQ29udGV4dEJhc2U6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dvcmtlckNvbnRleHRCYXNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisKKyAgICAgICAgQWRkZWQgYSBmaW5pc2hDcmVhdGlvbiBkZWNsYXJh
dGlvbiBhbmQgTW92ZWQgdGhlIGZpbmlzaENyZWF0aW9uIGNhbGwgaW50byB0aGUgCisgICAgICAg
IGNyZWF0ZSBtZXRob2QgZm9yIGFsbCBjbGFzc2VzIGV4Y2VwdCBmb3Igc3ViY2xhc3NlcyBvZiBK
U1dvcmtlckNvbnRleHRCYXNlIGFuZCAKKyAgICAgICAgSlNET01XaW5kb3dCYXNlIGJlY2F1c2Ug
dGhvc2UgY2xhc3NlcyBhcmUgb24gdGhlIG5leHQgbGV2ZWwsIGFuZCBpdCdzIGVhc2llciAKKyAg
ICAgICAgdG8gZG8gYWxsIG9mIHRoZXNlIGNsYXNzZXMgaW4gb25lIGZlbGwgc3dvb3AgcmF0aGVy
IHRoYW4gbGV2ZWwgYnkgbGV2ZWwuCisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAg
IEFkZGVkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgZmluaXNoQ3JlYXRpb24gbWV0aG9kIGZv
ciB0aGUgY2xhc3NlcyBkZXNjcmliZWQgYWJvdmUuCisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgQWxzbyBhZGRlZCB0aGUgZmluaXNoQ3JlYXRpb24gY2FsbHMgdG8g
dGhlIGF1dG9nZW5lcmF0ZWQgRE9NIGNvbnN0cnVjdG9yIGNsYXNzZXMuCisgICAgICAgIChHZW5l
cmF0ZUNvbnN0cnVjdG9yRGVjbGFyYXRpb24pOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3Rv
ckRlZmluaXRpb24pOgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVj
dG9yOjpKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0SW50ZXJmYWNlOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0
SW50ZXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJv
dG90eXBlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlOjpKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rv
cjo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3Jl
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3Rv
dHlwZTo6SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVz
dE9iakNvbnN0cnVjdG9yOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNUZXN0T2JqOjpKU1Rlc3RPYmopOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpm
aW5pc2hDcmVhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T2JqOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0T2JqUHJvdG90eXBlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0T2JqUHJvdG90eXBlOjpKU1Rlc3RPYmpQcm90b3R5cGUpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlQ29uc3RydWN0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZTo6SlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKToKKyAgICAgICAgKiBi
cmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVu
dGltZU9iamVjdDo6Q1J1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9jL0NSdW50aW1l
T2JqZWN0Lmg6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpDUnVudGltZU9iamVjdDo6Y3JlYXRl
KToKKyAgICAgICAgKiBicmlkZ2UvYy9jX2luc3RhbmNlLmNwcDoKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6OkNSdW50aW1lTWV0aG9kOjpDUnVudGltZU1ldGhvZCk6CisgICAgICAgIChKU0M6OkJp
bmRpbmdzOjpDUnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIGJyaWRn
ZS9qbmkvanNjL0phdmFJbnN0YW5jZUpTQy5jcHA6CisgICAgICAgIChKYXZhUnVudGltZU1ldGhv
ZDo6SmF2YVJ1bnRpbWVNZXRob2QpOgorICAgICAgICAoSmF2YVJ1bnRpbWVNZXRob2Q6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRp
bWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0Lmg6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpKYXZhUnVudGltZU9iamVjdDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBicmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6T2JqQ1J1bnRpbWVPYmplY3Q6OmNyZWF0ZSk6CisgICAgICAgICogYnJpZGdlL29i
amMvT2JqQ1J1bnRpbWVPYmplY3QubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpDUnVu
dGltZU9iamVjdDo6T2JqQ1J1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9vYmpjL29i
amNfaW5zdGFuY2UubW06CisgICAgICAgIChPYmpDUnVudGltZU1ldGhvZDo6T2JqQ1J1bnRpbWVN
ZXRob2QpOgorICAgICAgICAoT2JqQ1J1bnRpbWVNZXRob2Q6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKiBicmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6UXRSdW50aW1lT2JqZWN0OjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRS
dW50aW1lT2JqZWN0OjpRdFJ1bnRpbWVPYmplY3QpOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9w
aXhtYXBydW50aW1lLmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UGl4bWFwUnVudGlt
ZU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UGl4bWFwUnVudGlt
ZU9iamVjdDo6UXRQaXhtYXBSdW50aW1lT2JqZWN0KToKKyAgICAgICAgKiBicmlkZ2UvcXQvcXRf
cnVudGltZS5jcHA6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRob2Q6OlF0
UnVudGltZU1ldGhvZCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0
aG9kOjpRdFJ1bnRpbWVNZXRhTWV0aG9kKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlF0UnVu
dGltZU1ldGFNZXRob2Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QpOgor
ICAgICAgICAoSlNDOjpCaW5kaW5nczo6UXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIGJyaWRnZS9xdC9xdF9ydW50aW1lLmg6CisgICAgICAgIChK
U0M6OkJpbmRpbmdzOjpRdFJ1bnRpbWVNZXRhTWV0aG9kOjpjcmVhdGUpOgorICAgICAgICAqIGJy
aWRnZS9ydW50aW1lX21ldGhvZC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVNZXRob2Q6OlJ1
bnRpbWVNZXRob2QpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX21ldGhvZC5oOgorICAgICAg
ICAoSlNDOjpSdW50aW1lTWV0aG9kOjpjcmVhdGUpOgorCiAyMDExLTA5LTEyICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBSdW50
aW1lLmNhbGxGdW5jdGlvbk9uIGRvZXMgbm90IGFjY2VwdCBhcmd1bWVudHMgdGhhdCBldmFsdWF0
ZSB0byBmYWxzZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggY2M3NDRlNjRmYmI5ZWYwY2ZhMGEz
MzZiYTI3NzM4ZTZmMjc4MjIyNy4uYmVmOTdiMzM5ZTc1MWVkZDMzMzdiZGM1N2VmZjVjNTEwZjI0
YWZjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE2NDMsMTAgKzE2NDMsMTEgQEAgX19aTjdX
ZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCiAKICNpZiBVU0UoUExV
R0lOX0hPU1RfUFJPQ0VTUykKIF9fWk4zSlNDMTNSdW50aW1lTWV0aG9kMTFnZXRDYWxsRGF0YUVS
TlNfOENhbGxEYXRhRQorX19aTjNKU0MxM1J1bnRpbWVNZXRob2QxNGZpbmlzaENyZWF0aW9uRVJO
U18xMkpTR2xvYmFsRGF0YUVSS05TXzEwSWRlbnRpZmllckUKIF9fWk4zSlNDMTNSdW50aW1lTWV0
aG9kMThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJF
Uk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2QyNGdldE93blByb3Bl
cnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVSTlNfMThQcm9w
ZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDZzX2luZm9FCi1fX1pOM0pT
QzEzUnVudGltZU1ldGhvZEMyRVBOU185RXhlY1N0YXRlRVBOU18xNEpTR2xvYmFsT2JqZWN0RVBO
U185U3RydWN0dXJlRVJLTlNfMTBJZGVudGlmaWVyRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5n
czZNZXRob2RFTG0wRUVFCitfX1pOM0pTQzEzUnVudGltZU1ldGhvZEMyRVBOU18xNEpTR2xvYmFs
T2JqZWN0RVBOU185U3RydWN0dXJlRVJOM1dURjZWZWN0b3JJUE5TXzhCaW5kaW5nczZNZXRob2RF
TG0wRUVFCiBfX1pOM0pTQzhCaW5kaW5nczEwUm9vdE9iamVjdEQxRXYKIF9fWk4zSlNDOEJpbmRp
bmdzMTNSdW50aW1lT2JqZWN0MTFnZXRDYWxsRGF0YUVSTlNfOENhbGxEYXRhRQogX19aTjNKU0M4
QmluZGluZ3MxM1J1bnRpbWVPYmplY3QxNGRlbGV0ZVByb3BlcnR5RVBOU185RXhlY1N0YXRlRVJL
TlNfMTBJZGVudGlmaWVyRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAppbmRleCBhYzhlOTgwOGE0NWNiNDJiZmYzZTYzNWJiZTI1ZmE3ZTMwYWZhMTMzLi40ZTI5MGVk
OTE5MzJjY2M5ZTYyNjg5N2MwOGQxNDc5NDU1OWI3YjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICAvLyBCYXNlIGNsYXNzIGZvciBhbGwgY29uc3RydWN0b3Igb2JqZWN0cyBpbiB0
aGUgSlNDIGJpbmRpbmdzLgogICAgIGNsYXNzIERPTUNvbnN0cnVjdG9yT2JqZWN0IDogcHVibGlj
IEpTRE9NV3JhcHBlciB7CisgICAgICAgIHR5cGVkZWYgSlNET01XcmFwcGVyIEJhc2U7CiAgICAg
cHVibGljOgogICAgICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgICAgICB7CkBAIC01NSwxMyArNTYs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01Db25zdHJ1Y3Rvck9iamVjdChK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KQogICAgICAgICAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+Z2xvYmFs
RGF0YSgpKTsKICAgICAgICAgfQogICAgIH07CiAKICAgICAvLyBDb25zdHJ1Y3RvcnMgdXNpbmcg
dGhpcyBiYXNlIGNsYXNzIGRlcGVuZCBvbiBiZWluZyBpbiBhIERvY3VtZW50IGFuZAogICAgIC8v
IGNhbiBuZXZlciBiZSB1c2VkIGZyb20gYSBXb3JrZXJDb250ZXh0LgogICAgIGNsYXNzIERPTUNv
bnN0cnVjdG9yV2l0aERvY3VtZW50IDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKKyAg
ICAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwogICAgIHB1YmxpYzoKICAg
ICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QKICAgICAgICAgewpAQCAtNzIsNiArNzMs
MTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBET01Db25zdHJ1Y3RvcldpdGhEb2N1
bWVudChKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0KQogICAgICAgICAgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1cmUsIGds
b2JhbE9iamVjdCkKICAgICAgICAgeworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFs
T2JqZWN0KTsKKyAgICAgICAgfQorCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOwogICAgICAgICAgICAg
QVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0RvY3VtZW50
KCkpOwogICAgICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NR2xvYmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NR2xvYmFsT2JqZWN0LmNwcAppbmRleCBmOWVhZjZhNDliMWU5ZjRiYzg1OTdlMGM5MjE1
NjlmMzE0ODY2YzA0Li43MWQ5OGM5MWE1N2Q3YjYxMzMxN2RhNmE3YjQ4MTI1NDcwNTE0MjBjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuY3Bw
CkBAIC00MiwxMiArNDIsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBDbGFzc0lu
Zm8gSlNET01HbG9iYWxPYmplY3Q6OnNfaW5mbyA9IHsgIkRPTUdsb2JhbE9iamVjdCIsICZKU0ds
b2JhbE9iamVjdDo6c19pbmZvLCAwLCAwIH07CiAKLUpTRE9NR2xvYmFsT2JqZWN0OjpKU0RPTUds
b2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPERPTVdyYXBwZXJXb3JsZD4gd29ybGQsIEpTT2JqZWN0KiB0aGlzVmFsdWUp
CitKU0RPTUdsb2JhbE9iamVjdDo6SlNET01HbG9iYWxPYmplY3QoSlNHbG9iYWxEYXRhJiBnbG9i
YWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjxET01XcmFwcGVyV29ybGQ+
IHdvcmxkKQogICAgIDogSlNHbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogICAg
ICwgbV9jdXJyZW50RXZlbnQoMCkKICAgICAsIG1fd29ybGQod29ybGQpCiB7Ci0gICAgZmluaXNo
Q3JlYXRpb24oZ2xvYmFsRGF0YSwgdGhpc1ZhbHVlKTsKIH0KIAogdm9pZCBKU0RPTUdsb2JhbE9i
amVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU09iamVjdCog
dGhpc1ZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01H
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NR2xvYmFsT2Jq
ZWN0LmgKaW5kZXggMDE0YjU2OWJhMmIzMWU5NTM5ZDc2ZTUzNWIwNWU5NzZmNDNiYmVkZC4uOTAw
MjgzMDgzNGUwZjMwYjFiZTBkNDJmODE2YjkyZTkzMTI1OTRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oCkBAIC00Niw3ICs0Niw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0cnVjdCBKU0RPTUds
b2JhbE9iamVjdERhdGE7CiAKLSAgICAgICAgSlNET01HbG9iYWxPYmplY3QoSlNDOjpKU0dsb2Jh
bERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxkPiwgSlND
OjpKU09iamVjdCogdGhpc1ZhbHVlKTsKKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QoSlNDOjpK
U0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8RE9NV3JhcHBlcldvcmxk
Pik7CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6
OkpTT2JqZWN0KiB0aGlzVmFsdWUpOwogCiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKaW5kZXggOTgyZWI2Y2VkNThjYzcyMDUx
NmNjZmRkOTBmZTU4MjAyNDQ4MTk1YS4uN2ZjYWU3NjQ2YjY0Mzc4ZGI0OTAyNTZlMGQ0NDI3ZjU5
MTcwYjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jh
c2UuY3BwCkBAIC00NCwxMCArNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xh
c3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93IiwgJkpTRE9NR2xvYmFs
T2JqZWN0OjpzX2luZm8sIDAsIDAgfTsKIAogSlNET01XaW5kb3dCYXNlOjpKU0RPTVdpbmRvd0Jh
c2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1Jl
ZlB0cjxET01XaW5kb3c+IHdpbmRvdywgSlNET01XaW5kb3dTaGVsbCogc2hlbGwpCi0gICAgOiBK
U0RPTUdsb2JhbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIHNoZWxsLT53b3JsZCgpLCBz
aGVsbCkKKyAgICA6IEpTRE9NR2xvYmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgc2hl
bGwtPndvcmxkKCkpCiAgICAgLCBtX2ltcGwod2luZG93KQogICAgICwgbV9zaGVsbChzaGVsbCkK
IHsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBzaGVsbCk7Cit9CisKK3ZvaWQgSlNE
T01XaW5kb3dCYXNlOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
RE9NV2luZG93U2hlbGwqIHNoZWxsKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEsIHNoZWxsKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgR2xv
YmFsUHJvcGVydHlJbmZvIHN0YXRpY0dsb2JhbHNbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5kZXggYTJjNDc4NTUzMjg5N2UwNjE4YzE5NTkw
NDcyOTA4M2Y3NzM4MWQyYi4uZmY3OTUzNzI1ZTRjNDRkZTczOGZkYjczZjZkYjYxNDU1NDQ4ZDBl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKQEAg
LTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB0eXBlZGVmIEpTRE9N
R2xvYmFsT2JqZWN0IEJhc2U7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBKU0RPTVdpbmRvd0Jh
c2UoSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6OlN0cnVjdHVyZSosIFBhc3NSZWZQdHI8RE9NV2lu
ZG93PiwgSlNET01XaW5kb3dTaGVsbCopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6SlNHbG9iYWxEYXRhJiwgSlNET01XaW5kb3dTaGVsbCopOwogCiAgICAgcHVibGljOgogICAg
ICAgICB2b2lkIHVwZGF0ZURvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29udGV4dEJhc2UuY3BwCmluZGV4IDY4N2Y3NGM4ZWVjYWIwZWU2ZjQx
MGIxYWYzMjkzMjAyNTNhMjc4MjcuLjY1ODRlODZmNzQ0YmQ0OWZiMWNlMzBkYzU5ZWViMDc2NDEw
Zjk2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
dGV4dEJhc2UuY3BwCkBAIC00OSw5ICs0OSwxNSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KEpTV29ya2VyQ29udGV4dEJhc2UpOwogY29uc3QgQ2xhc3NJbmZvIEpTV29ya2VyQ29udGV4dEJh
c2U6OnNfaW5mbyA9IHsgIldvcmtlckNvbnRleHQiLCAmSlNET01HbG9iYWxPYmplY3Q6OnNfaW5m
bywgMCwgMCB9OwogCiBKU1dvcmtlckNvbnRleHRCYXNlOjpKU1dvcmtlckNvbnRleHRCYXNlKEpT
Qzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBQ
YXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+IGltcGwpCi0gICAgOiBKU0RPTUdsb2JhbE9iamVjdChn
bG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG5vcm1hbFdvcmxkKGdsb2JhbERhdGEpLCB0aGlzKQorICAg
IDogSlNET01HbG9iYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlLCBub3JtYWxXb3JsZChn
bG9iYWxEYXRhKSkKICAgICAsIG1faW1wbChpbXBsKQogeworICAgIGZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEsIHRoaXMpOworfQorCit2b2lkIEpTV29ya2VyQ29udGV4dEJhc2U6OmZpbmlzaENy
ZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNXb3JrZXJDb250ZXh0QmFzZSogdGhp
c1ZhbHVlKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIHRoaXNWYWx1
ZSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb250ZXh0QmFzZS5oCmluZGV4IGIwODYzMzZjNDQy
ZDU4ZGQzOGU3YTYzOWI0YmI2MGY4YWRmMGJmYTguLjZkYzgwYzg3ODY1Yzk4NTYyNjJjNjkwMmEz
Y2E3MGUyMTk4NDQyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnRleHRCYXNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIGNsYXNzIEpTV29ya2VyQ29udGV4dEJhc2UgOiBwdWJsaWMgSlNET01HbG9iYWxPYmplY3Qg
ewogICAgICAgICB0eXBlZGVmIEpTRE9NR2xvYmFsT2JqZWN0IEJhc2U7CiAgICAgcHVibGljOgot
ICAgICAgICBKU1dvcmtlckNvbnRleHRCYXNlKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+KTsKICAgICAgICAgdmlydHVhbCB+SlNX
b3JrZXJDb250ZXh0QmFzZSgpOwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5m
byBzX2luZm87CkBAIC01NCw2ICs1MywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBnbG9iYWxPYmpl
Y3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgJnNfaW5mbyk7CiAgICAgICAgIH0KIAorICAgIHByb3RlY3RlZDoKKyAgICAgICAgSlNX
b3JrZXJDb250ZXh0QmFzZShKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6U3RydWN0dXJlKiwgUGFz
c1JlZlB0cjxXb3JrZXJDb250ZXh0Pik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlND
OjpKU0dsb2JhbERhdGEmLCBKU1dvcmtlckNvbnRleHRCYXNlKik7CisKICAgICBwcml2YXRlOgog
ICAgICAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gbV9pbXBsOwogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGU4
OWZiM2ZlZDQzZDBlNWQ0M2I2MjliNDlhY2E3MTI3OTVlN2QwMjIuLjI2MjUyMDVkNzgzYzkwNzBj
YjJkODFkMTY4ZmZlMzA3ZTYwZjQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC03MzAsMTggKzczMCwyMiBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgJGNsYXNzTmFtZSogY3Jl
YXRlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCwgSlNET01XaW5kb3dTaGVsbCogd2luZG93
U2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7XG4iKTsKLSAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5ldyAoSlNDOjphbGxv
Y2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFzc05hbWV9KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgd2luZG93U2hlbGwpO1xuIik7CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgICAgICRjbGFzc05hbWUqIHB0ciA9IG5ldyAoSlNDOjphbGxv
Y2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFzc05hbWV9KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgd2luZG93U2hlbGwpO1xuIik7CisgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBwdHI7XG4iKTsKICAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICB9XG5cbiIpOwogICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IklzV29ya2VyQ29udGV4dCJ9KSB7CiAgICAgICAgIHB1c2goQGhl
YWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0ZShKU0M6OkpTR2xvYmFs
RGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgUGFzc1JlZlB0cjwk
aW1wbFR5cGU+IGltcGwpXG4iKTsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB7
XG4iKTsKLSAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIG5ldyAo
SlNDOjphbGxvY2F0ZUNlbGw8JGNsYXNzTmFtZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFzc05h
bWV9KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICAgICAgJGNsYXNzTmFtZSogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRl
Q2VsbDwkY2xhc3NOYW1lPihnbG9iYWxEYXRhLmhlYXApKSAke2NsYXNzTmFtZX0oZ2xvYmFsRGF0
YSwgc3RydWN0dXJlLCBpbXBsKTtcbiIpOworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAi
ICAgICAgICByZXR1cm4gcHRyO1xuIik7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgfVxuXG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBBZGRJbmNsdWRlc0ZvclR5cGVJbkhl
YWRlcigkaW1wbFR5cGUpIHVubGVzcyAkc3ZnUHJvcGVydHlPckxpc3RQcm9wZXJ0eVR5cGU7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljICRjbGFzc05hbWUqIGNyZWF0
ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbClcbiIpOwogICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiICAgIHtcbiIpOwotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAg
ICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPihnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVj
dCwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgJGNs
YXNzTmFtZSogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwkY2xhc3NOYW1lPihnbG9iYWxP
YmplY3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgJGNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2JhbE9i
amVjdCwgaW1wbCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAg
cHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7XG4iKTsKKyAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAg
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIH1cblxuIik7CiAgICAgfQogCkBAIC05Mjcs
NiArOTMxLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgJGNsYXNzTmFtZShKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6U3RydWN0dXJlKiwg
UGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xv
YmFsT2JqZWN0KiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOworICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbERhdGEm
KTtcbiIpOwogICAgIH0KIAogICAgICMgc3RydWN0dXJlIGZsYWdzCkBAIC0xMDIwLDcgKzEwMjUs
OSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAg
c3RhdGljICR7Y2xhc3NOYW1lfVByb3RvdHlwZSogY3JlYXRlKEpTQzo6SlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUpXG4iKTsKICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHtcbiIp
OwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxs
b2NhdGVDZWxsPCR7Y2xhc3NOYW1lfVByb3RvdHlwZT4oZ2xvYmFsRGF0YS5oZWFwKSkgJHtjbGFz
c05hbWV9UHJvdG90eXBlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTtcbiIp
OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgICAgICR7Y2xhc3NOYW1lfVByb3RvdHlw
ZSogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDwke2NsYXNzTmFtZX1Qcm90b3R5cGU+KGds
b2JhbERhdGEuaGVhcCkpICR7Y2xhc3NOYW1lfVByb3RvdHlwZShnbG9iYWxEYXRhLCBnbG9iYWxP
YmplY3QsIHN0cnVjdHVyZSk7XG4iKTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICAg
ICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpO1xuIik7CisgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgfVxuXG4iKTsKIAogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbztcbiIpOwpAQCAtMTA0OCw3ICsxMDU1LDcgQEAg
c3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFs
IHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0aW9uLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bVByb3RvdHlwZURlZmluZUdldHRlciJ9OwogCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlxu
cHJpdmF0ZTpcbiIpOwotICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJHtjbGFzc05hbWV9
UHJvdG90eXBlKEpTQzo6SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkgOiBKU0M6OkpTTm9uRmluYWxPYmplY3Qo
Z2xvYmFsRGF0YSwgc3RydWN0dXJlKSB7IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOyB9XG4i
KTsKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfVByb3RvdHlwZShK
U0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEs
IHN0cnVjdHVyZSkgeyB9XG4iKTsKIAogICAgICMgc3RydWN0dXJlIGZsYWdzCiAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgInByb3RlY3RlZDpcbiIpOwpAQCAtMTUwNiwyNSArMTUxMywzMCBAQCBz
dWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7
Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCwgSlNET01XaW5kb3dTaGVs
bCogc2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50
Q2xhc3NOYW1lKGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgaW1wbCwgc2hlbGwpXG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJ9XG5cbiIpOwogICAgIH0gZWxzaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IklzV29ya2VyQ29udGV4dCJ9KSB7CiAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZUluSW1wbCgk
aW50ZXJmYWNlTmFtZSk7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9
OjokY2xhc3NOYW1lKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIGlt
cGwpXG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4g
aW1wbClcbiIpOwogICAgICAgICBpZiAoJGhhc1BhcmVudCkgewogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0LCBpbXBsKVxuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgOiAk
cGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7Ci0gICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpO1xuIik7
CiAgICAgICAgIH0KKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworCisgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAidm9pZCAke2NsYXNzTmFtZX06OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSlcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOworICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTtc
biIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNf
aW5mbykpO1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9
Ci0gICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTtc
biIpOwotICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKIAogICAgIGlmICghJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXh0ZW5kc0RPTUdsb2JhbE9iamVjdCJ9KSB7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiSlNPYmplY3QqICR7Y2xhc3NOYW1lfTo6Y3JlYXRl
UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdClc
biIpOwpAQCAtMzEwNiwxMyArMzExOCwxNiBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlY2xh
cmF0aW9uCiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJjbGFzcyAke2NvbnN0cnVjdG9yQ2xh
c3NOYW1lfSA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7XG4iKTsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJwcml2YXRlOlxuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICR7Y29uc3RydWN0b3JDbGFzc05hbWV9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpTdHJ1Y3R1cmUq
LCBKU0RPTUdsb2JhbE9iamVjdCopO1xuXG4iKTsKLSAgICAKKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUds
b2JhbE9iamVjdCopO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopO1xuXG4iKTsK
KwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgInB1YmxpYzpcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7XG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgc3RhdGljICRjb25zdHJ1Y3RvckNsYXNzTmFtZSog
Y3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8JGNvbnN0cnVjdG9yQ2xhc3NOYW1lPigqZXhlYy0+aGVh
cCgpKSkgJGNvbnN0cnVjdG9yQ2xhc3NOYW1lKGV4ZWMsIHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0
KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgJGNvbnN0cnVjdG9yQ2xh
c3NOYW1lKiBwdHIgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPCRjb25zdHJ1Y3RvckNsYXNzTmFt
ZT4oKmV4ZWMtPmhlYXAoKSkpICRjb25zdHJ1Y3RvckNsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHB0ci0+Zmlu
aXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICAgICAgcmV0dXJuIHB0cjtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICB9XG5cbiIpOwogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHZpcnR1YWwgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CkBAIC0zMTUyLDkgKzMxNjcsMTQgQEAgc3Vi
IEdlbmVyYXRlQ29uc3RydWN0b3JEZWZpbml0aW9uCiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICJjb25zdCBDbGFzc0luZm8gJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OnNfaW5mbyA9IHsgXCIk
e3Zpc2libGVDbGFzc05hbWV9Q29uc3RydWN0b3JcIiwgJkRPTUNvbnN0cnVjdG9yT2JqZWN0Ojpz
X2luZm8sICYke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfVRhYmxlLCAwIH07XG5cbiIpOwogCi0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAiJHtjb25zdHJ1Y3RvckNsYXNzTmFtZX06OiR7Y29uc3RydWN0
b3JDbGFzc05hbWV9KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIke2NvbnN0cnVjdG9yQ2xhc3NOYW1lfTo6JHtjb25zdHJ1Y3RvckNsYXNzTmFtZX0oU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1
cmUsIGdsb2JhbE9iamVjdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwor
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CisKKyAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICJ2b2lkICR7Y29uc3RydWN0b3JDbGFzc05hbWV9OjpmaW5pc2hDcmVhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpXG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQmFz
ZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTtcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpO1xuIik7CiAgICAgaWYg
KCRpbnRlcmZhY2VOYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucHJvdG90eXBlLCBnbG9iYWxPYmplY3QtPnByb3RvdHlwZSgpLCBEb250RGVsZXRlIHwg
UmVhZE9ubHkpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDUwNDdjNjEzNjM2MDJj
M2Y3M2NiZjdiYzk2YmY0NTkwMjliNGZkOTguLjQ1Y2Y4NTY5NGE5NTgwZGFkMzg4YmNiNzcxNWZh
YmVhOGNjNmMyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC02NCwxMyArNjQsMTYgQEAg
c3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFi
bGVWYWx1ZXNbXSA9CiBzdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSA9IHsgMSwgMCwgSlNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3JUYWJsZVZhbHVlcywgMCB9OwogY2xhc3MgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Ig
OiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogcHJpdmF0ZToKLSAgICBKU1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3RydWN0dXJlKiwgSlNET01H
bG9iYWxPYmplY3QqKTsKKyAgICBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihKU0M6OlN0cnVj
dHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAKIHB1YmxpYzoKICAgICB0eXBlZGVm
IERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3RhdGljIEpTVGVzdEludGVyZmFjZUNv
bnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgewotICAgICAg
ICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rv
cj4oKmV4ZWMtPmhlYXAoKSkpIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKGV4ZWMsIHN0cnVj
dHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Iq
IHB0ciA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I+
KCpleGVjLT5oZWFwKCkpKSBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGds
b2JhbE9iamVjdCk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0
T3duUHJvcGVydHlTbG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKQEAgLTg4LDkgKzkxLDE0IEBAIHByb3RlY3RlZDoKIAogY29u
c3QgQ2xhc3NJbmZvIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0
SW50ZXJmYWNlQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JPYmplY3Q6OnNfaW5mbywgJkpT
VGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIDAgfTsKIAotSlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3I6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU1Rl
c3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3IoU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgOiBE
T01Db25zdHJ1Y3Rvck9iamVjdChzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCkKIHsKK30KKwordm9p
ZCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlz
aENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2lu
Zm8pKTsKICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5h
bWVzKCkucHJvdG90eXBlLCBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xv
YmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKIH0KQEAgLTE0Niw3ICsxNTQsMTEg
QEAgSlNUZXN0SW50ZXJmYWNlOjpKU1Rlc3RJbnRlcmZhY2UoU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWwKICAgICA6IEpTRE9NV3JhcHBlcihzdHJ1Y3R1cmUs
IGdsb2JhbE9iamVjdCkKICAgICAsIG1faW1wbChpbXBsKQogewotICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKK30KKwordm9pZCBKU1Rlc3RJbnRlcmZhY2U6
OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggNDMyZjczYjc0YWEzODFkMTgxYTdjMTMxOTIy
NWFhYWNmZTFlZmRlMC4uNWJmZDg5ZjIyM2E3NWY4NTllN2YzM2NkYjI4MTg5NWEwYzc3OTAyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtMzYsNyArMzYsOSBAQCBwdWJsaWM6CiAgICAgdHlwZWRl
ZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0SW50ZXJmYWNlKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNlPiBpbXBsKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0SW50ZXJmYWNlPihnbG9iYWxPYmplY3QtPmds
b2JhbERhdGEoKS5oZWFwKSkgSlNUZXN0SW50ZXJmYWNlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0
LCBpbXBsKTsKKyAgICAgICAgSlNUZXN0SW50ZXJmYWNlKiBwdHIgPSBuZXcgKEpTQzo6YWxsb2Nh
dGVDZWxsPEpTVGVzdEludGVyZmFjZT4oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkuaGVhcCkp
IEpTVGVzdEludGVyZmFjZShzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgaW1wbCk7CisgICAgICAg
IHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOworICAgICAg
ICByZXR1cm4gcHRyOwogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQ
cm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CkBAIC01Niw2
ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFRlc3RJbnRlcmZhY2U+IG1faW1wbDsKIHBy
b3RlY3RlZDoKICAgICBKU1Rlc3RJbnRlcmZhY2UoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2Jh
bE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdEludGVyZmFjZT4pOworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNDOjpKU0dsb2JhbERhdGEmKTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3Ry
dWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwogfTsKIApAQCAtNjgsNyArNzEsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIHNlbGYoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAgICAgc3RhdGljIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogY3JlYXRlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChK
U0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU+KGdsb2JhbERhdGEuaGVh
cCkpIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0
cnVjdHVyZSk7CisgICAgICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZSogcHRyID0gbmV3IChK
U0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGU+KGdsb2JhbERhdGEuaGVh
cCkpIEpTVGVzdEludGVyZmFjZVByb3RvdHlwZShnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QsIHN0
cnVjdHVyZSk7CisgICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CisgICAg
ICAgIHJldHVybiBwdHI7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKQEAgLTc4LDcgKzgzLDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEs
IEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6
SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpIHsgZmluaXNoQ3JlYXRpb24o
Z2xvYmFsRGF0YSk7IH0KKyAgICBKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUoSlNDOjpKU0dsb2Jh
bERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlKSA6IEpTQzo6SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUp
IHsgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAzMjZiYjJiMTc4YTg5NjhhNGUzYzI3ZTJkYzY2MDE2
ZTcyOWM0NzlhLi5jYzlmNWMwNmY1ZjMxYzM2ODExODU4Y2FkZTVmMmJmMTFlNDYwM2M2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC02NSwxMyAr
NjUsMTYgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10KIHN0YXRpYyBKU0NfQ09OU1RfSEFTSFRB
QkxFIEhhc2hUYWJsZSBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3JUYWJs
ZSA9IHsgMSwgMCwgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFibGVW
YWx1ZXMsIDAgfTsKIGNsYXNzIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgotICAgIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyQ29uc3RydWN0b3IoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwor
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVj
dCopOwogCiBwdWJsaWM6CiAgICAgdHlwZWRlZiBET01Db25zdHJ1Y3Rvck9iamVjdCBCYXNlOwog
ICAgIHN0YXRpYyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IqIGNyZWF0
ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKEpT
Qzo6YWxsb2NhdGVDZWxsPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcj4o
KmV4ZWMtPmhlYXAoKSkpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcihl
eGVjLCBzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7CisgICAgICAgIEpTVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXJDb25zdHJ1Y3RvciogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I+KCpleGVjLT5oZWFwKCkpKSBKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3Ioc3RydWN0dXJlLCBnbG9iYWxPYmpl
Y3QpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGV4ZWMsIGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJv
cGVydHlTbG90Jik7CkBAIC04Nyw5ICs5MCwxNCBAQCBwcm90ZWN0ZWQ6CiAKIGNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
IlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3IiLCAmRE9NQ29uc3RydWN0b3JP
YmplY3Q6OnNfaW5mbywgJkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3RvclRh
YmxlLCAwIH07CiAKLUpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6SlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgU3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCitKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OkpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KQogeworfQorCit2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJD
b25zdHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSk7CiAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXREaXJl
Y3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9i
amVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSk7CiB9CkBAIC0xNDIsNyArMTUwLDExIEBAIEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIo
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsCiAgICAgOiBKU0RPTVdyYXBwZXIoc3RydWN0dXJlLCBnbG9i
YWxPYmplY3QpCiAgICAgLCBtX2ltcGwoaW1wbCkKIHsKLSAgICBmaW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSk7Cit9CisKK3ZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcjo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygm
c19pbmZvKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5o
CmluZGV4IGQ0ZDVmNjU0MTllZGQ5MGVlOTY2NTBjOTdiMTkyZThmZDc4NTAzY2IuLjZjMTQyZTlk
OWZhNmRmMTRlOTljZWY3NDEzMjc4MWUyYzk2OTQyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaApAQCAtMzQsNyArMzQsOSBAQCBwdWJsaWM6CiAgICAgdHlw
ZWRlZiBKU0RPTVdyYXBwZXIgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lciogY3JlYXRlKEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+
IGltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS5oZWFw
KSkgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwg
aW1wbCk7CisgICAgICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHB0ciA9IG5ldyAo
SlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCkuaGVhcCkpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoc3Ry
dWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwpOworICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwpAQCAtNTQsNiArNTYsNyBAQCBwcml2YXRlOgog
ICAgIFJlZlB0cjxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4gbV9pbXBsOwogcHJvdGVjdGVk
OgogICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KTsK
KyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6SlNHbG9iYWxEYXRhJik7CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CiAKQEAgLTY2LDcgKzY5LDkgQEAg
cHVibGljOgogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBzZWxmKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJvdG90eXBlKiBjcmVhdGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU+KGdsb2JhbERhdGEuaGVhcCkpIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBz
dHJ1Y3R1cmUpOworICAgICAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
KiBwdHIgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJQcm90b3R5cGU+KGdsb2JhbERhdGEuaGVhcCkpIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXJQcm90b3R5cGUoZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOworICAgICAg
ICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOworICAgICAgICByZXR1cm4gcHRyOwog
ICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CkBAIC03OCw3
ICs4Myw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lclByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlND
OjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05v
bkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsgfQorICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGUoSlND
OjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlKSA6IEpTQzo6SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBz
dHJ1Y3R1cmUpIHsgfQogcHJvdGVjdGVkOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3Ry
dWN0dXJlRmxhZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAzYmIzMDdlNjc5YmE5MjMzNDNjMTE1MjM3
MmRmNDExY2MzMzU5Yjc3Li5lZWJmODI1YmNiM2U2YTFlZTFhNzk5ZTk5NzliOTEwMGUwYTc1YjVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcApAQCAtMTY3LDEzICsxNjcsMTYgQEAgQ09NUElMRV9BU1NFUlQoMHgxYWJj
ID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzE0LCBUZXN0T2JqRW51bUNPTlNUX1ZBTFVFXzE0SXNX
cm8KIAogY2xhc3MgSlNUZXN0T2JqQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3QgewogcHJpdmF0ZToKLSAgICBKU1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKKyAgICBKU1Rlc3RPYmpD
b25zdHJ1Y3RvcihKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CisgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAK
IHB1YmxpYzoKICAgICB0eXBlZGVmIERPTUNvbnN0cnVjdG9yT2JqZWN0IEJhc2U7CiAgICAgc3Rh
dGljIEpTVGVzdE9iakNvbnN0cnVjdG9yKiBjcmVhdGUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
CiAgICAgewotICAgICAgICByZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RPYmpD
b25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEpTVGVzdE9iakNvbnN0cnVjdG9yKGV4ZWMsIHN0
cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgSlNUZXN0T2JqQ29uc3RydWN0b3IqIHB0
ciA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0T2JqQ29uc3RydWN0b3I+KCpleGVjLT5o
ZWFwKCkpKSBKU1Rlc3RPYmpDb25zdHJ1Y3RvcihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZXhlYywgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
cmV0dXJuIHB0cjsKICAgICB9CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKQEAgLTE4OSw5ICsxOTIsMTQgQEAgcHJvdGVjdGVkOgogCiBjb25zdCBDbGFzc0luZm8g
SlNUZXN0T2JqQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RPYmpDb25zdHJ1Y3RvciIsICZE
T01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZSwg
MCB9OwogCi1KU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6SlNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkKK0pTVGVzdE9iakNvbnN0cnVjdG9yOjpKU1Rlc3RPYmpDb25zdHJ1Y3RvcihTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6
IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQogeworfQorCit2
b2lkIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykp
OwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wcm90b3R5cGUsIEpTVGVzdE9ialByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3Qp
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwogfQpAQCAtMjk5LDcgKzMwNywxMSBAQCBKU1Rlc3RP
Ymo6OkpTVGVzdE9iaihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUGFzcwogICAgIDogSlNET01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2Jq
ZWN0KQogICAgICwgbV9pbXBsKGltcGwpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxEYXRhKCkpOworfQorCit2b2lkIEpTVGVzdE9iajo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAppbmRl
eCBmYjc0YjU2MDk5NzllMjY2NDM1ZDdkNTQ1OWJkNzY2YWMwMzQxOTYwLi44ZDUzNDEyZTg2NzYz
OTZjNGUxNjIxNTNlMTJjN2QzYjhlNzRkZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0zNCw3ICszNCw5IEBAIHB1
YmxpYzoKICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RP
YmoqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RPYmo+IGltcGwpCiAgICAgewotICAgICAgICBy
ZXR1cm4gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RPYmo+KGdsb2JhbE9iamVjdC0+Z2xv
YmFsRGF0YSgpLmhlYXApKSBKU1Rlc3RPYmooc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwp
OworICAgICAgICBKU1Rlc3RPYmoqIHB0ciA9IG5ldyAoSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0
T2JqPihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgSlNUZXN0T2JqKHN0cnVjdHVy
ZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9i
YWxPYmplY3QtPmdsb2JhbERhdGEoKSk7CisgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTY3LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBS
ZWZQdHI8VGVzdE9iaj4gbV9pbXBsOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdE9iaihKU0M6OlN0
cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0T2JqPik7CisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYpOwogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7
CiB9OwogCkBAIC03OSw3ICs4Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpKU09iamVj
dCogc2VsZihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAgICBzdGF0
aWMgSlNUZXN0T2JqUHJvdG90eXBlKiBjcmVhdGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpT
VGVzdE9ialByb3RvdHlwZT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNUZXN0T2JqUHJvdG90eXBlKGds
b2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgSlNUZXN0T2JqUHJv
dG90eXBlKiBwdHIgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdE9ialByb3RvdHlwZT4o
Z2xvYmFsRGF0YS5oZWFwKSkgSlNUZXN0T2JqUHJvdG90eXBlKGdsb2JhbERhdGEsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlKTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRh
KTsKKyAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwpAQCAtOTEsNyArOTYsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIEpTVGVzdE9ialByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlND
OjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhKTsgfQorICAgIEpTVGVzdE9ialByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1
Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyB9
CiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
SlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hp
bGRyZW4gfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDczMmIyNzI4MWEw
OGE1MmI3MjA3ZDFmZDIyNmEzODhkZjJmODJkZmEuLjE5MDcxY2JhMmYxNjExZTUyNTM3ZDdhYTk2
ZWFlMGYxMTU0YWY5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC02NiwxMyArNjYsMTYgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0
cnVjdG9yVGFibGUKIHN0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlID0geyAxLCAwLCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlVmFsdWVz
LCAwIH07CiBjbGFzcyBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1
Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwcml2YXRlOgotICAgIEpTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpTdHJ1Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCopOworICAgIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6U3RydWN0dXJlKiwgSlNE
T01HbG9iYWxPYmplY3QqKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAogcHVibGljOgogICAgIHR5cGVkZWYgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgQmFzZTsKICAgICBzdGF0aWMgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlQ29uc3RydWN0b3IqIGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yPigqZXhlYy0+aGVhcCgpKSkgSlNUZXN0
U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoZXhlYywgc3RydWN0dXJl
LCBnbG9iYWxPYmplY3QpOworICAgICAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2VDb25zdHJ1Y3RvciogcHRyID0gbmV3IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcj4oKmV4ZWMtPmhlYXAoKSkpIEpT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yKHN0cnVjdHVyZSwg
Z2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihleGVjLCBnbG9iYWxP
YmplY3QpOworICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAogICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXIm
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwpAQCAtODgsOSArOTEsMTQgQEAgcHJvdGVjdGVkOgogCiBj
b25zdCBDbGFzc0luZm8gSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3Ry
dWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25z
dHJ1Y3RvciIsICZET01Db25zdHJ1Y3Rvck9iamVjdDo6c19pbmZvLCAmSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3JUYWJsZSwgMCB9OwogCi1KU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3Rvcjo6SlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KHN0
cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQogeworfQorCit2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4
ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNo
Q3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5m
bykpOwogICAgIHB1dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPnByb3BlcnR5TmFt
ZXMoKS5wcm90b3R5cGUsIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3Rv
dHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkpOwog
fQpAQCAtMTMyLDcgKzE0MCwxMSBAQCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2U6OkpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZShTdHJ1YwogICAgIDogSlNE
T01XcmFwcGVyKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0KQogICAgICwgbV9pbXBsKGltcGwpCiB7
Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCkpOworfQorCit2
b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGds
b2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAppbmRleCBj
MTRkZDkwYjRmYjY2NGU0MjZhY2UyN2IzMDYwNjhmZTVkYTM4MGZjLi5mMWZhNGQ0NGYwYmU1YTMw
NjJiNmI5NzA4YTRlYmFhZDM2NzUzODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oCkBAIC0zNiw3ICszNiw5IEBAIHB1YmxpYzoK
ICAgICB0eXBlZGVmIEpTRE9NV3JhcHBlciBCYXNlOwogICAgIHN0YXRpYyBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPFRlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+IGltcGwpCiAgICAgewotICAgICAgICByZXR1cm4gbmV3
IChKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+
KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLmhlYXApKSBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2Uoc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIGltcGwpOworICAgICAgICBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHB0ciA9IG5ldyAoSlNDOjphbGxv
Y2F0ZUNlbGw8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPihnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKS5oZWFwKSkgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKKyAgICAgICAgcHRyLT5maW5pc2hD
cmVhdGlvbihnbG9iYWxPYmplY3QtPmdsb2JhbERhdGEoKSk7CisgICAgICAgIHJldHVybiBwdHI7
CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKQEAgLTU2LDYgKzU4LDcgQEAgcHJp
dmF0ZToKICAgICBSZWZQdHI8VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4gbV9p
bXBsOwogcHJvdGVjdGVkOgogICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZShKU0M6OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUGFzc1JlZlB0cjxUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OkpTR2xvYmFsRGF0YSYpOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVG
bGFncyA9IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJl
RmxhZ3M7CiB9OwogCkBAIC02OCw3ICs3MSw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogc2VsZihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKICAg
ICBzdGF0aWMgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKiBj
cmVhdGUoSlNDOjpKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZVByb3RvdHlwZT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVjdCwgc3Ry
dWN0dXJlKTsKKyAgICAgICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJv
dG90eXBlKiBwdHIgPSBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZT4oZ2xvYmFsRGF0YS5oZWFwKSkgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJvdG90eXBlKGdsb2JhbERhdGEsIGdsb2JhbE9iamVj
dCwgc3RydWN0dXJlKTsKKyAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
KyAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwpAQCAtNzgsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRl
OgotICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZShKU0M6
OkpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3Ry
dWN0dXJlKiBzdHJ1Y3R1cmUpIDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0
cnVjdHVyZSkgeyBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsgfQorICAgIEpTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByb3RvdHlwZShKU0M6OkpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUp
IDogSlNDOjpKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkgeyB9CiBwcm90
ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gQmFzZTo6
U3RydWN0dXJlRmxhZ3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2Mv
Q1J1bnRpbWVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmpl
Y3QuY3BwCmluZGV4IGI0NjBhOTE0NTJmNjU2YjAzMzk3ODM1NzQ2ODVhY2YwZGUyMWQxNDkuLjVh
ZGY0MjM1MWZlOTE1ZmFkNDY2NGQ0ZjhkNGZmODlhMTU3Y2ZiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9jL0NSdW50aW1lT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5jcHAKQEAgLTQwLDcgKzQwLDYgQEAgY29uc3QgQ2xh
c3NJbmZvIENSdW50aW1lT2JqZWN0OjpzX2luZm8gPSB7ICJDUnVudGltZU9iamVjdCIsICZSdW50
aW1lT2JqZWN0OjpzX2kKIENSdW50aW1lT2JqZWN0OjpDUnVudGltZU9iamVjdChFeGVjU3RhdGUq
IGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJl
LCBQYXNzUmVmUHRyPENJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgOiBSdW50aW1lT2JqZWN0KGV4
ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpbnN0YW5jZSkKIHsKLSAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QpOwogfQogCiB2b2lkIENSdW50aW1lT2JqZWN0OjpmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9j
L0NSdW50aW1lT2JqZWN0LmgKaW5kZXggZjk4NGE1Y2E4YTdlYmE2YjM0NzgzMGUxNmMxNmFiZDM4
YmUyZDBmMi4uYmVlZGRiYjI4MzJjYzRhMWFlZmZjYTIwODMwNjM2Nzg4M2Q0ODI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvYy9DUnVudGltZU9iamVjdC5oCkBAIC00NSw3ICs0NSw5IEBAIHB1
YmxpYzoKICAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0
aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAogICAgICAgICAvLyBX
ZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KICAgICAg
ICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3Ry
dWN0dXJlPENSdW50aW1lT2JqZWN0PihleGVjKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2Nh
dGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhl
YywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsKKyAgICAgICAgQ1J1bnRp
bWVPYmplY3QqIG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPENSdW50aW1lT2JqZWN0PigqZXhl
Yy0+aGVhcCgpKSkgQ1J1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1
cmUsIGluc3RhbmNlKTsKKyAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmpl
Y3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNSdW50
aW1lT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX2luc3Rh
bmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFuY2UuY3BwCmluZGV4IGRl
NjE0NDk1MTcyZGNiZGE1ZWE5M2IwMTA0MTAxNGMyNjFjNjdmOTcuLjQxNWNiNDk0ZWY0Zjg2ZmMx
OTU5ZGQxYzMwMDhiM2Y3YzU1MjZjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9jL2NfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfaW5zdGFu
Y2UuY3BwCkBAIC0xMzAsOCArMTMwLDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDUnVu
dGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBCaW5kaW5nczo6
TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgOiBSdW50aW1lTWV0aG9kKGV4ZWMsIGdsb2JhbE9i
amVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQorICAgICAgICA6IFJ1bnRpbWVNZXRob2QoZ2xv
YmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxpc3QpCiAgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOworICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQor
ICAgIHsKKyAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbmFtZSk7CiAg
ICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YUluc3RhbmNlSlNDLmNwcAppbmRleCAzOTcyMDA5
N2Q1YTJhMjg3NWYzNzBjOWZiMDRlYzAyNmMxMDYwMDFhLi40ODYyOTE4Y2YyM2EyMTI1ZGIzYTAz
YzUzZDA0ZWYyOTlmY2M1Mjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L2pzYy9KYXZhSW5zdGFuY2VKU0MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkv
anNjL0phdmFJbnN0YW5jZUpTQy5jcHAKQEAgLTEzNSwxMSArMTM1LDE2IEBAIHB1YmxpYzoKIAog
cHJpdmF0ZToKICAgICBKYXZhUnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBJZGVudGlm
aWVyJiBuYW1lLCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbGlzdCkKLSAgICAgICAgOiBSdW50aW1l
TWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBsaXN0KQorICAgICAg
ICA6IFJ1bnRpbWVNZXRob2QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGxpc3QpCiAgICAgewot
ICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOworICAgICAgICBmaW5pc2hDcmVhdGlv
bihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUpOwogICAgIH0KIAorICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQor
ICAgIHsKKyAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgbmFtZSk7Cisg
ICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CisgICAgfQogfTsKIAogY29uc3QgQ2xh
c3NJbmZvIEphdmFSdW50aW1lTWV0aG9kOjpzX2luZm8gPSB7ICJKYXZhUnVudGltZU1ldGhvZCIs
ICZSdW50aW1lTWV0aG9kOjpzX2luZm8sIDAsIDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmNwcAppbmRleCBkNjg0YWIwMmUzOTcw
MjlmMTFmNWEyNTE0YWNiMGFkMzEzZGIwZWVkLi4zNmQ5MWZjZjZhNzM0YWI5YmYxMTFmN2ZiZTQ1
YjViZTYxOTA4ZTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhUnVudGltZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2Mv
SmF2YVJ1bnRpbWVPYmplY3QuY3BwCkBAIC0zOCw3ICszOCw2IEBAIGNvbnN0IENsYXNzSW5mbyBK
YXZhUnVudGltZU9iamVjdDo6c19pbmZvID0geyAiSmF2YVJ1bnRpbWVPYmplY3QiLCAmUnVudGlt
ZU9iamVjCiBKYXZhUnVudGltZU9iamVjdDo6SmF2YVJ1bnRpbWVPYmplY3QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
UGFzc1JlZlB0cjxKYXZhSW5zdGFuY2U+IGluc3RhbmNlKQogICAgIDogUnVudGltZU9iamVjdChl
eGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7Ci0gICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsT2JqZWN0KTsKIH0KIAogdm9pZCBKYXZhUnVudGltZU9iamVjdDo6ZmluaXNo
Q3JlYXRpb24oSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNjL0phdmFSdW50aW1lT2JqZWN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhUnVudGltZU9iamVjdC5oCmluZGV4IDhmYTQ1MmVlOGRi
NzRkNjlhNzJlOTE2NjhmZTI4MWRmNDcwZGU4M2QuLmViZWRkNzY2ZjNjZDlkZjUxYjg1N2U5N2Zi
ZDEzMmU0OTgzZTBmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvanNj
L0phdmFSdW50aW1lT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2Mv
SmF2YVJ1bnRpbWVPYmplY3QuaApAQCAtMzgsMTIgKzM4LDE0IEBAIGNsYXNzIEphdmFSdW50aW1l
T2JqZWN0IDogcHVibGljIFJ1bnRpbWVPYmplY3QgewogcHVibGljOgogICAgIHR5cGVkZWYgUnVu
dGltZU9iamVjdCBCYXNlOwogCi0gICAgc3RhdGljIEphdmFSdW50aW1lT2JqZWN0KiBjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRy
PEphdmFJbnN0YW5jZT4gamF2YUluc3QpCisgICAgc3RhdGljIEphdmFSdW50aW1lT2JqZWN0KiBj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNz
UmVmUHRyPEphdmFJbnN0YW5jZT4gamF2YUluc3RhbmNlKQogICAgIHsKICAgICAgICAgLy8gRklY
TUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0
aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAogICAgICAgICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhl
IHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4KICAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1
Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPEphdmFSdW50aW1lT2Jq
ZWN0PihleGVjKTsKLSAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEphdmFSdW50aW1l
T2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgSmF2YVJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBkb21TdHJ1Y3R1cmUsIGphdmFJbnN0KTsKKyAgICAgICAgSmF2YVJ1bnRpbWVPYmplY3Qq
IG9iamVjdCA9IG5ldyAoYWxsb2NhdGVDZWxsPEphdmFSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVh
cCgpKSkgSmF2YVJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUs
IGphdmFJbnN0YW5jZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2Jq
ZWN0KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5KYXZh
UnVudGltZU9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMv
T2JqQ1J1bnRpbWVPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL09iakNSdW50
aW1lT2JqZWN0LmgKaW5kZXggZGQ3MzM5MGQ3N2RlMWE5MzhhY2VjODFmYTMyMWE1NmI1NDg0NDk1
YS4uMmRhYmZjNDBjMTdkNTc2ZTM5MDk5ZGYyNDkzOGE3ZTlhZTRmYjAyYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvT2JqQ1J1bnRpbWVPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5oCkBAIC00Miw3ICs0Miw5
IEBAIHB1YmxpYzoKICAgICAgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUg
dXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAogICAgICAg
ICAvLyBXZSBuZWVkIHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJpIi4K
ICAgICAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlPE9iakNSdW50aW1lT2JqZWN0PihleGVjKTsKLSAgICAgICAgcmV0dXJuIG5ldyAo
YWxsb2NhdGVDZWxsPE9iakNSdW50aW1lT2JqZWN0PigqZXhlYy0+aGVhcCgpKSkgT2JqQ1J1bnRp
bWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBpbnN0LCBzdHJ1Y3R1cmUpOworICAgICAgICBP
YmpDUnVudGltZU9iamVjdCogb2JqZWN0ID0gbmV3IChhbGxvY2F0ZUNlbGw8T2JqQ1J1bnRpbWVP
YmplY3Q+KCpleGVjLT5oZWFwKCkpKSBPYmpDUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmpl
Y3QsIGluc3QsIHN0cnVjdHVyZSk7CisgICAgICAgIG9iamVjdC0+ZmluaXNoQ3JlYXRpb24oZ2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIG9iamVjdDsKICAgICB9CiAKICAgICB2aXJ0dWFs
IH5PYmpDUnVudGltZU9iamVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L29iamMvT2JqQ1J1bnRpbWVPYmplY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9P
YmpDUnVudGltZU9iamVjdC5tbQppbmRleCBjNTFiZDRkMjBjOTNiNmFjODA4OGRkY2RkYmEyOGNm
MjBkODc4OTZkLi4yMWZmNDEyNjRiYmQwMzM4N2RlMWZmMmI5NjQ1YzY3ZTcyYTgyODg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9PYmpDUnVudGltZU9iamVjdC5tbQpAQCAt
MzgsNyArMzgsNiBAQCBjb25zdCBDbGFzc0luZm8gT2JqQ1J1bnRpbWVPYmplY3Q6OnNfaW5mbyA9
IHsgIk9iakNSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplYwogT2JqQ1J1bnRpbWVPYmplY3Q6
Ok9iakNSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUGFzc1JlZlB0cjxPYmpjSW5zdGFuY2U+IGluc3RhbmNlLCBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSkKICAgICA6IFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIGluc3RhbmNlKQogewotICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CiB9CiAK
IHZvaWQgT2JqQ1J1bnRpbWVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpj
X2luc3RhbmNlLm1tIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19pbnN0YW5jZS5t
bQppbmRleCBhNmFhZjYwNTM4ZGExMDY3NzY0OTk2YjAyMjlkZjY4NTZmZGMyZjY4Li4wNmZjOTBm
Nzk5YzRkNTkzMTU3ODE2ZDFmNWNhNzliNjhlOWI5Yjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX2luc3RhbmNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9vYmpjL29iamNfaW5zdGFuY2UubW0KQEAgLTE4OSw5ICsxODksMTcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gc19pbmZvOwogCiBwcml2YXRlOgorICAgIHR5cGVk
ZWYgUnVudGltZU1ldGhvZCBCYXNlOworCiAgICAgT2JqQ1J1bnRpbWVNZXRob2QoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVy
ZSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgQmluZGluZ3M6Ok1ldGhvZExpc3QmIGxpc3QpCi0g
ICAgICAgIDogUnVudGltZU1ldGhvZChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbmFt
ZSwgbGlzdCkKKyAgICAgICAgOiBSdW50aW1lTWV0aG9kKGdsb2JhbE9iamVjdCwgc3RydWN0dXJl
LCBsaXN0KQorICAgIHsKKyAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
LCBuYW1lKTsKKyAgICB9CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSkKICAgICB7CisgICAgICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIG5hbWUpOwogICAgICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcXQvcXRfaW5zdGFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X2luc3Rh
bmNlLmNwcAppbmRleCA2YTQ4YjE0NmUwZjY1ZWRjZWUyMDk2ZGZjZDMwZDFiMjdhNWFjM2E1Li40
YmJlNjVlMDExM2RiZmM5ODRkN2E1NDY0NDdkZGU2NWMwOTkyNmFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfaW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9pbnN0YW5jZS5jcHAKQEAgLTU1LDcgKzU1LDkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBRdFJ1bnRpbWVPYmplY3QqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQogICAg
IHsKICAgICAgICAgU3RydWN0dXJlKiBkb21TdHJ1Y3R1cmUgPSBXZWJDb3JlOjpkZXByZWNhdGVk
R2V0RE9NU3RydWN0dXJlPFF0UnVudGltZU9iamVjdD4oZXhlYyk7Ci0gICAgICAgIHJldHVybiBu
ZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRp
bWVPYmplY3QoZXhlYywgZ2xvYmFsT2JqZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsKKyAg
ICAgICAgUXRSdW50aW1lT2JqZWN0KiBvYmplY3QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRp
bWVPYmplY3Q+KCpleGVjLT5oZWFwKCkpKSBRdFJ1bnRpbWVPYmplY3QoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBkb21TdHJ1Y3R1cmUsIGluc3RhbmNlKTsKKyAgICAgICAgb2JqZWN0LT5maW5pc2hDcmVh
dGlvbihnbG9iYWxPYmplY3QpOworICAgICAgICByZXR1cm4gb2JqZWN0OwogICAgIH0KICAgICAK
ICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIHNfaW5mbzsKQEAgLTg1LDcgKzg3LDYgQEAgY29u
c3QgQ2xhc3NJbmZvIFF0UnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUXRSdW50aW1lT2JqZWN0
IiwgJlJ1bnRpbWVPYmplY3Q6OnMKIFF0UnVudGltZU9iamVjdDo6UXRSdW50aW1lT2JqZWN0KEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBz
dHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGluc3RhbmNlKQogICAgIDogUnVudGltZU9i
amVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgaW5zdGFuY2UpCiB7Ci0gICAgZmlu
aXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKIH0KIAogLy8gUXRJbnN0YW5jZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3F0L3F0X3BpeG1hcHJ1bnRpbWUuY3BwCmluZGV4IGYwYjI2YThjNWNk
ODc5N2I3YmJkNTk4OTlkOGYzYWQzYTZjNGZmYjEuLmY5Mzk1MGNiZGNiYzFkZmQ4NmNjODYwZjBm
ODFkODA1MDMzOTkxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9w
aXhtYXBydW50aW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcGl4bWFw
cnVudGltZS5jcHAKQEAgLTIwNCw3ICsyMDQsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFF0UGl4
bWFwUnVudGltZU9iamVjdCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaW5zdGFuY2UpCiAgICAgewogICAg
ICAgICBTdHJ1Y3R1cmUqIGRvbVN0cnVjdHVyZSA9IFdlYkNvcmU6OmRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8UXRQaXhtYXBSdW50aW1lT2JqZWN0PihleGVjKTsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPFF0UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0
UGl4bWFwUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5z
dGFuY2UpOworICAgICAgICBRdFBpeG1hcFJ1bnRpbWVPYmplY3QqIG9iamVjdCA9IG5ldyAoYWxs
b2NhdGVDZWxsPFF0UGl4bWFwUnVudGltZU9iamVjdD4oKmV4ZWMtPmhlYXAoKSkpIFF0UGl4bWFw
UnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIGRvbVN0cnVjdHVyZSwgaW5zdGFuY2Up
OworICAgICAgICBvYmplY3QtPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdCk7CisgICAgICAg
IHJldHVybiBvYmplY3Q7CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBzX2lu
Zm87CkBAIC0yMjQsNyArMjI2LDYgQEAgcHJpdmF0ZToKIFF0UGl4bWFwUnVudGltZU9iamVjdDo6
UXRQaXhtYXBSdW50aW1lT2JqZWN0KEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8SW5zdGFuY2U+IGlu
c3RhbmNlKQogICAgIDogUnVudGltZU9iamVjdChleGVjLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVy
ZSwgaW5zdGFuY2UpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0KTsKIH0KIAog
Y29uc3QgQ2xhc3NJbmZvIFF0UGl4bWFwUnVudGltZU9iamVjdDo6c19pbmZvID0geyAiUXRQaXht
YXBSdW50aW1lT2JqZWN0IiwgJlJ1bnRpbWVPYmplY3Q6OnNfaW5mbywgMCwgMCB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuY3BwCmluZGV4IDU4MWU0NDNkNTNlNzYxNWMzNDlk
ZTUwMmM5MmI0YjUxNmVmZjYxMmYuLjUxMTYxYzUzMTQxNGNmYzkxOGVlYTQyNDgwZWU0YTExZjg1
YmM0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9xdC9xdF9ydW50aW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5jcHAKQEAgLTEwMTAs
NyArMTAxMCw2IEBAIFF0UnVudGltZU1ldGhvZDo6UXRSdW50aW1lTWV0aG9kKFF0UnVudGltZU1l
dGhvZERhdGEqIGRkLCBFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjCiAgICAgOiBJbnRlcm5hbEZ1bmN0
aW9uKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgc3RydWN0dXJlKQogICAgICwgZF9wdHIo
ZGQpCiB7Ci0gICAgZmluaXNoQ3JlYXRpb24oZXhlYywgaWRlbnRpZmllciwgaW5zdGFuY2UpOwog
fQogCiB2b2lkIFF0UnVudGltZU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGlu
c3RhbmNlKQpAQCAtMTQyNiw5ICsxNDI1LDE1IEBAIHN0YXRpYyBpbnQgZmluZFNpZ25hbEluZGV4
KGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRhLCBpbnQgaW5pdGlhbEluZGV4LCBRQnl0ZUFycmF5CiAg
ICAgcmV0dXJuIGluZGV4OwogfQogCi1RdFJ1bnRpbWVNZXRhTWV0aG9kOjpRdFJ1bnRpbWVNZXRh
TWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50
aWZpZXImIGlkZW50LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3QsIGludCBpbmRleCwgY29u
c3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKLSAgICA6IFF0UnVu
dGltZU1ldGhvZCAobmV3IFF0UnVudGltZU1ldGFNZXRob2REYXRhKCksIGV4ZWMsIHN0cnVjdHVy
ZSwgaWRlbnQsIGluc3QpCitRdFJ1bnRpbWVNZXRhTWV0aG9kOjpRdFJ1bnRpbWVNZXRhTWV0aG9k
KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXIm
IGlkZW50aWZpZXIsIFBhc3NSZWZQdHI8UXRJbnN0YW5jZT4gaW5zdGFuY2UsIGludCBpbmRleCwg
Y29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0ZSkKKyAgICA6IFF0
UnVudGltZU1ldGhvZCAobmV3IFF0UnVudGltZU1ldGFNZXRob2REYXRhKCksIGV4ZWMsIHN0cnVj
dHVyZSwgaWRlbnRpZmllciwgaW5zdGFuY2UpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYywg
aWRlbnRpZmllciwgaW5zdGFuY2UsIGluZGV4LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7Cit9
CisKK3ZvaWQgUXRSdW50aW1lTWV0YU1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+
IGluc3RhbmNlLCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSwgYm9vbCBh
bGxvd1ByaXZhdGUpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYywgaWRlbnRpZmll
ciwgaW5zdGFuY2UpOwogICAgIFFXX0QoUXRSdW50aW1lTWV0YU1ldGhvZCk7CiAgICAgZC0+bV9z
aWduYXR1cmUgPSBzaWduYXR1cmU7CiAgICAgZC0+bV9pbmRleCA9IGluZGV4OwpAQCAtMTU3MCw5
ICsxNTc1LDE1IEBAIEpTVmFsdWUgUXRSdW50aW1lTWV0YU1ldGhvZDo6ZGlzY29ubmVjdEdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsCiAKIFFNdWx0aU1hcDxRT2JqZWN0
KiwgUXRDb25uZWN0aW9uT2JqZWN0Kj4gUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZDo6Y29ubmVj
dGlvbnM7CiAKLVF0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNvbm5lY3Rpb25N
ZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgSWRlbnRp
ZmllciYgaWRlbnQsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3Qs
IGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlKQotICAgIDogUXRSdW50aW1l
TWV0aG9kIChuZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERhdGEoKSwgZXhlYywgc3RydWN0
dXJlLCBpZGVudCwgaW5zdCkKK1F0UnVudGltZUNvbm5lY3Rpb25NZXRob2Q6OlF0UnVudGltZUNv
bm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgSWRlbnRpZmllciYgaWRlbnRpZmllciwgYm9vbCBpc0Nvbm5lY3QsIFBhc3NSZWZQdHI8UXRJ
bnN0YW5jZT4gaW5zdGFuY2UsIGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJl
KQorICAgIDogUXRSdW50aW1lTWV0aG9kIChuZXcgUXRSdW50aW1lQ29ubmVjdGlvbk1ldGhvZERh
dGEoKSwgZXhlYywgc3RydWN0dXJlLCBpZGVudGlmaWVyLCBpbnN0YW5jZSkKK3sKKyAgICBmaW5p
c2hDcmVhdGlvbihleGVjLCBpZGVudGlmaWVyLCBpc0Nvbm5lY3QsIGluc3RhbmNlLCBpbmRleCwg
c2lnbmF0dXJlKTsKK30KKwordm9pZCBRdFJ1bnRpbWVDb25uZWN0aW9uTWV0aG9kOjpmaW5pc2hD
cmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50aWZpZXIsIGJv
b2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3RhbmNlLCBpbnQgaW5kZXgs
IGNvbnN0IFFCeXRlQXJyYXkmIHNpZ25hdHVyZSkKIHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihleGVjLCBpZGVudGlmaWVyLCBpbnN0YW5jZSk7CiAgICAgUVdfRChRdFJ1bnRpbWVDb25uZWN0
aW9uTWV0aG9kKTsKIAogICAgIGQtPm1fc2lnbmF0dXJlID0gc2lnbmF0dXJlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9xdC9xdF9ydW50aW1lLmgKaW5kZXggMjRkZTI1NWMxNDgxZTQ2NmE0Yzc3NzM3MTBj
ZmVlNDUzZTViODJjZS4uZjM0OTlhZGFmZmIwM2NjM2M0Y2Y0ODQ3NTBiNGVjNTdlNGUwZTFjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3F0L3F0X3J1bnRpbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcXQvcXRfcnVudGltZS5oCkBAIC0xNTksNyArMTU5LDggQEAg
cHVibGljOgogICAgIHN0YXRpYyBRdFJ1bnRpbWVNZXRhTWV0aG9kKiBjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+IGluc3Qs
IGludCBpbmRleCwgY29uc3QgUUJ5dGVBcnJheSYgc2lnbmF0dXJlLCBib29sIGFsbG93UHJpdmF0
ZSkKICAgICB7CiAgICAgICAgIFN0cnVjdHVyZSogZG9tU3RydWN0dXJlID0gV2ViQ29yZTo6ZGVw
cmVjYXRlZEdldERPTVN0cnVjdHVyZTxRdFJ1bnRpbWVNZXRob2Q+KGV4ZWMpOwotICAgICAgICBy
ZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UXRSdW50aW1lTWV0YU1ldGhvZD4oKmV4ZWMtPmhlYXAo
KSkpIFF0UnVudGltZU1ldGFNZXRob2QoZXhlYywgZG9tU3RydWN0dXJlLCBuLCBpbnN0LCBpbmRl
eCwgc2lnbmF0dXJlLCBhbGxvd1ByaXZhdGUpOworICAgICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9k
KiBtZXRob2QgPSBuZXcgKGFsbG9jYXRlQ2VsbDxRdFJ1bnRpbWVNZXRhTWV0aG9kPigqZXhlYy0+
aGVhcCgpKSkgUXRSdW50aW1lTWV0YU1ldGhvZChleGVjLCBkb21TdHJ1Y3R1cmUsIG4sIGluc3Qs
IGluZGV4LCBzaWduYXR1cmUsIGFsbG93UHJpdmF0ZSk7CisgICAgICAgIHJldHVybiBtZXRob2Q7
CiAgICAgfQogCiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUg
KiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpAQCAtMTczLDYgKzE3NCw3IEBA
IHByb3RlY3RlZDoKIAogcHJpdmF0ZToKICAgICBRdFJ1bnRpbWVNZXRhTWV0aG9kKEV4ZWNTdGF0
ZSosIFN0cnVjdHVyZSosIGNvbnN0IElkZW50aWZpZXImLCBQYXNzUmVmUHRyPFF0SW5zdGFuY2U+
LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmLCBib29sIGFsbG93UHJpdmF0ZSk7CisgICAg
dm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUs
IGJvb2wgYWxsb3dQcml2YXRlKTsKIAogICAgIHZpcnR1YWwgQ2FsbFR5cGUgZ2V0Q2FsbERhdGEo
Q2FsbERhdGEmKTsKICAgICBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxs
KEV4ZWNTdGF0ZSogZXhlYyk7CkBAIC0yMDEsNiArMjAzLDcgQEAgcHJvdGVjdGVkOgogCiBwcml2
YXRlOgogICAgIFF0UnVudGltZUNvbm5lY3Rpb25NZXRob2QoRXhlY1N0YXRlKiwgU3RydWN0dXJl
KiwgY29uc3QgSWRlbnRpZmllciYsIGJvb2wgaXNDb25uZWN0LCBQYXNzUmVmUHRyPFF0SW5zdGFu
Y2U+LCBpbnQgaW5kZXgsIGNvbnN0IFFCeXRlQXJyYXkmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImLCBib29sIGlzQ29ubmVjdCwgUGFzc1Jl
ZlB0cjxRdEluc3RhbmNlPiwgaW50IGluZGV4LCBjb25zdCBRQnl0ZUFycmF5JiBzaWduYXR1cmUp
OwogCiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0YSYpOwogICAgIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGwoRXhlY1N0YXRlKiBleGVjKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21ldGhvZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCmluZGV4IGNmMjM1NTUxZDM4
NDY1MDlkMTE2ZjgyYWQ3ZmJlMTRiMjVkZjI2NmMuLmFjMDA0ZmQ5MWVmODNkOTU1ZDY1MzdkNWI0
NWUxNjJhY2Y0YTlhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X21ldGhvZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNw
cApAQCAtNDMsMTIgKzQzLDExIEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoUnVudGltZU1l
dGhvZCk7CiAKIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lTWV0aG9kOjpzX2luZm8gPSB7ICJSdW50
aW1lTWV0aG9kIiwgJkludGVybmFsRnVuY3Rpb246OnNfaW5mbywgMCwgMCB9OwogCi1SdW50aW1l
TWV0aG9kOjpSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIGlkZW50
LCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbSkKK1J1bnRpbWVNZXRob2Q6OlJ1bnRpbWVNZXRob2Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEJpbmRp
bmdzOjpNZXRob2RMaXN0JiBtKQogICAgIC8vIENhbGxlcnMgd2lsbCBuZWVkIHRvIHBhc3MgaW4g
dGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgY29ycmVzcG9uZGluZyB0byB0aGlzIG5hdGl2ZSBvYmpl
Y3QgIm0iLgogICAgIDogSW50ZXJuYWxGdW5jdGlvbihnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSkK
ICAgICAsIF9tZXRob2RMaXN0KGFkb3B0UHRyKG5ldyBNZXRob2RMaXN0KG0pKSkKIHsKLSAgICBm
aW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIGlkZW50KTsKIH0KIAogdm9pZCBSdW50
aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0
IElkZW50aWZpZXImIGlkZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaApp
bmRleCBkMWFiOTlkZTdlYjAyZGYyNGM0ZjA0YjQ1MjY2Zjg2NGNiMGYyMTZlLi5jNWQwYTZkMGZi
ZTgyODk0N2JhMzMxOTMwZWZkYWVmZDg3NzBkNTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9tZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9tZXRob2QuaApAQCAtMzksNyArMzksOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgUnVu
dGltZU1ldGhvZCogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJp
bmRpbmdzOjpNZXRob2RMaXN0JiBtZXRob2RMaXN0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyAoYWxsb2NhdGVDZWxsPFJ1bnRpbWVNZXRob2Q+KCpleGVjLT5oZWFwKCkpKSBSdW50aW1lTWV0
aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBuYW1lLCBtZXRob2RMaXN0KTsKKyAg
ICAgICAgUnVudGltZU1ldGhvZCogbWV0aG9kID0gbmV3IChhbGxvY2F0ZUNlbGw8UnVudGltZU1l
dGhvZD4oKmV4ZWMtPmhlYXAoKSkpIFJ1bnRpbWVNZXRob2QoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1
cmUsIG1ldGhvZExpc3QpOworICAgICAgICBtZXRob2QtPmZpbmlzaENyZWF0aW9uKGV4ZWMtPmds
b2JhbERhdGEoKSwgbmFtZSk7CisgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAgfQogCiAgICAg
QmluZGluZ3M6Ok1ldGhvZExpc3QqIG1ldGhvZHMoKSBjb25zdCB7IHJldHVybiBfbWV0aG9kTGlz
dC5nZXQoKTsgfQpAQCAtNTcsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6
Ci0gICAgUnVudGltZU1ldGhvZChFeGVjU3RhdGUqLCBKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVy
ZSosIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0Jik7CisgICAg
UnVudGltZU1ldGhvZChKU0dsb2JhbE9iamVjdCosIFN0cnVjdHVyZSosIEJpbmRpbmdzOjpNZXRo
b2RMaXN0Jik7CiAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBjb25zdCBJ
ZGVudGlmaWVyJik7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0g
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJuYWxGdW5jdGlvbjo6U3RydWN0dXJl
RmxhZ3M7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmNjdiODE0YTQ5NzhkMzU5OWFhNDRmMWY2Njky
YmQ0YTIyMzFmZGIyLi5kMTJjOTcxODhiY2Y1NGJmNTgzNGNjNjhmYjIzYWQ4NzRjY2M4ZmMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDktMTMgIE1hcmsgSGFobmVu
YmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnppcCBpbml0aWFsaXph
dGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDYvNykKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NjkyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29tcGxldGVkIHRo
ZSBzaXh0aCBsZXZlbCBvZiB0aGUgcmVmYWN0b3JpbmcgdG8gYWRkIGZpbmlzaENyZWF0aW9uKCkg
CisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMgd2l0aGluIHRoZSBKU0NlbGwgaGllcmFy
Y2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNvbnN0cnVjdG9yIGJvZGllcy4KKworICAg
ICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBwdXNoaW5nIHRoZSBjYWxscyB0byBmaW5p
c2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8gdGhlIGNvbnN0cnVjdG9ycyBvZiB0aGUg
c3ViY2xhc3NlcyBvZiB0aGUgZmlmdGggbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAgICAgICAg
YXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBpbnRvIHRo
ZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlmIGl0IGhh
cyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAgICAgICAg
bWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1ldGhvZCBj
aGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNyZWF0aW9u
IG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9mIAorICAg
ICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVy
ZS4KKworICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW06CisgICAgICAg
IChXZWJLaXQ6OlByb3h5UnVudGltZU1ldGhvZDo6UHJveHlSdW50aW1lTWV0aG9kKToKKyAgICAg
ICAgKFdlYktpdDo6UHJveHlSdW50aW1lTWV0aG9kOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTEt
MDktMDkgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
c3VwcG9ydCBmb3IgYW5vbnltb3VzIHN0b3JhZ2UgZnJvbSBqc29iamVjdHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9Qcm94eUluc3RhbmNlLm1tCmluZGV4IGE4YTI3
YTkyYWU0NWIwYTBkNmEzZTRlNjJhMTU5YzM3OTRlMzY4YWMuLjQzZDU0OTIzOWNmZjIxYjkwZDQ5
OTBjN2JhOTMwYjRiM2FmZWE0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdp
bnMvSG9zdGVkL1Byb3h5SW5zdGFuY2UubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lu
cy9Ib3N0ZWQvUHJveHlJbnN0YW5jZS5tbQpAQCAtMTk4LDggKzE5OCwxNCBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgUHJveHlSdW50aW1lTWV0aG9kKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IElkZW50
aWZpZXImIG5hbWUsIEJpbmRpbmdzOjpNZXRob2RMaXN0JiBsaXN0KQotICAgICAgICA6IFJ1bnRp
bWVNZXRob2QoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIG5hbWUsIGxpc3QpCisgICAg
ICAgIDogUnVudGltZU1ldGhvZChnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSwgbGlzdCkKICAgICB7
CisgICAgICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CisgICAg
fQorCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNv
bnN0IElkZW50aWZpZXImIG5hbWUpCisgICAgeworICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBuYW1lKTsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsK
ICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDczYzcwYjA0M2U3ZDBmZDFiOTMzNGMzZmQ4ZDZhOGRk
M2M2MzZmNjguLmI5MzZiYmFiOTUzNmUwNzI1ODc0OTI2NzAyYjcxOGYyZmZjYmUwMTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wOS0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgorCisgICAgICAgIFVuemlwIGluaXRpYWxpemF0aW9uIGxpc3Rz
IGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNoeSAoNi83KQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njc2OTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wbGV0ZWQgdGhlIHNpeHRoIGxl
dmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAg
bWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBu
b24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgorCisgICAgICAgIFRoaXMg
cHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRvIGZpbmlzaENyZWF0aW9u
KCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9mIHRoZSBzdWJjbGFzc2Vz
IG9mIHRoZSBmaWZ0aCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFz
IHB1bGxpbmcgdGhlIGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3Mg
Y29ycmVzcG9uZGluZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERv
aW5nIGJvdGggc2ltdWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0
aGUgaW52YXJpYW50IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNh
bGxlZCBleGFjdGx5IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2Jq
ZWN0LCBzaW5jZSBjYWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVz
ICgwLCAyLCBvciBtb3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpKU05QTWV0aG9kOjpKU05QTWV0aG9kKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oOgorICAgICAgICAoV2ViS2l0OjpKU05QTWV0
aG9kOjpjcmVhdGUpOgorCiAyMDExLTA5LTEyICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFy
ZEBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF1TdHlsZSBlcnJvciBmaXguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhv
ZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1l
dGhvZC5jcHAKaW5kZXggNDEwYjIwMDYzMGRkNGY2MWYyY2Q5NzY3N2JjNTU2ZGU1MjAwNWI1YS4u
MmU4YjdjY2M4YWJmMGYxNmY4OTAzNjE1N2FiMTQ0ZDU5NDllODNlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9k
LmNwcApAQCAtNDIsMTEgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjb25zdCBDbGFz
c0luZm8gSlNOUE1ldGhvZDo6c19pbmZvID0geyAiTlBNZXRob2QiLCAmSW50ZXJuYWxGdW5jdGlv
bjo6c19pbmZvLCAwLCAwIH07CiAKLUpTTlBNZXRob2Q6OkpTTlBNZXRob2QoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwg
Y29uc3QgSWRlbnRpZmllciYgbmFtZSwgTlBJZGVudGlmaWVyIG5wSWRlbnRpZmllcikKK0pTTlBN
ZXRob2Q6OkpTTlBNZXRob2QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJl
KiBzdHJ1Y3R1cmUsIE5QSWRlbnRpZmllciBucElkZW50aWZpZXIpCiAgICAgOiBJbnRlcm5hbEZ1
bmN0aW9uKGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKQogICAgICwgbV9ucElkZW50aWZpZXIobnBJ
ZGVudGlmaWVyKQogewotICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFt
ZSk7CiB9CiAKIHZvaWQgSlNOUE1ldGhvZDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9KU05QTWV0aG9kLmgKaW5kZXggOTI5
OTAxYjlhNWVmYTMwMTk1Zjg0NDEyYWNjNjc5MmFhMzBhMTY3OC4uM2NiZTliOTk2YjJiODUyYjU2
NzFmYmMyZjk4YjEyYjNmNTJiYzZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL0pTTlBNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvSlNOUE1ldGhvZC5oCkBAIC0zOSwxMCArMzksMTIg
QEAgY2xhc3MgSlNOUE1ldGhvZCA6IHB1YmxpYyBKU0M6OkludGVybmFsRnVuY3Rpb24gewogcHVi
bGljOgogICAgIHR5cGVkZWYgSlNDOjpJbnRlcm5hbEZ1bmN0aW9uIEJhc2U7CiAKLSAgICBzdGF0
aWMgSlNOUE1ldGhvZCogY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgaWRlbnQsIE5QSWRl
bnRpZmllciBucElkZW50KQorICAgIHN0YXRpYyBKU05QTWV0aG9kKiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiBuYW1lLCBOUElkZW50aWZpZXIgbnBJZGVudCkKICAgICB7CiAgICAgICAg
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+Z2xvYmFs
RGF0YSgpLCBnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC0+ZnVuY3Rpb25Qcm90b3R5cGUoKSk7
Ci0gICAgICAgIHJldHVybiBuZXcgKEpTQzo6YWxsb2NhdGVDZWxsPEpTTlBNZXRob2Q+KCpleGVj
LT5oZWFwKCkpKSBKU05QTWV0aG9kKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlLCBpZGVu
dCwgbnBJZGVudCk7CisgICAgICAgIEpTTlBNZXRob2QqIG1ldGhvZCA9IG5ldyAoSlNDOjphbGxv
Y2F0ZUNlbGw8SlNOUE1ldGhvZD4oKmV4ZWMtPmhlYXAoKSkpIEpTTlBNZXRob2QoZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUsIG5wSWRlbnQpOworICAgICAgICBtZXRob2QtPmZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSk7CisgICAgICAgIHJldHVybiBtZXRob2Q7CiAgICAg
fQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKQEAgLTUzLDcgKzU1
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbERh
dGEmLCBjb25zdCBKU0M6OklkZW50aWZpZXImIG5hbWUpOwogCiBwcml2YXRlOiAgICAKLSAgICBK
U05QTWV0aG9kKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCosIEpTQzo6U3Ry
dWN0dXJlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiwgTlBJZGVudGlmaWVyKTsKKyAgICBKU05Q
TWV0aG9kKEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSosIE5QSWRlbnRpZmll
cik7CiAKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OkpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>