<?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>55827</bug_id>
          
          <creation_ts>2011-03-05 13:30:03 -0800</creation_ts>
          <short_desc>Replace WebKit2&apos;s decidePolicyForMIMEType with decidePolicyForResponse</short_desc>
          <delta_ts>2011-03-07 10:28:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>362977</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-05 13:30:03 -0800</bug_when>
    <thetext>Replace WebKit2&apos;s decidePolicyForMIMEType with decidePolicyForResponse</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362981</commentid>
    <comment_count>1</comment_count>
      <attachid>84874</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-05 13:36:22 -0800</bug_when>
    <thetext>Created attachment 84874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>362982</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-05 13:38:21 -0800</bug_when>
    <thetext>Attachment 84874 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/platform/mac-wk2/Skipped&apos;, u&apos;S...&quot; exit_code: 1

Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h:126:  The parameter name &quot;function&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/wx/WebKitSupport/FrameLoaderClientWx.h:200:  The parameter name &quot;function&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit/chromium/src/FrameLoaderClientImpl.h:117:  The parameter name &quot;function&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 3 in 49 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>363401</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-03-07 10:28:59 -0800</bug_when>
    <thetext>Landed in 80475.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84874</attachid>
            <date>2011-03-05 13:36:22 -0800</date>
            <delta_ts>2011-03-06 10:16:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55827-20110305133621.patch</filename>
            <type>text/plain</type>
            <size>56930</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDI3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMDUgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZXBsYWNlIFdlYktpdDIncyBkZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSB3
aXRoIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NTgyNworCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50
cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50Lmg6CisgICAgICAgICogbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAg
ICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KToKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hl
Y2tlci5oOgorICAgICAgICBSZW5hbWUgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTUlNRVR5cGUgdG8gZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZQorICAg
ICAgICBhbmQgcGFzcyB0aGUgZW50aXJlIHJlc3BvbnNlLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIE1J
TUVUeXBlLgorCiAyMDExLTAzLTA1ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDgwNDI2KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzksNyArMjc5
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFNob3coKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFN0cmluZyYsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
clJlc3BvbnNlKEZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0
YXRlPiwgY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5Q2hlY2soKSB7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA4MDQy
NikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xNTIsNyArMTUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpID0gMDsKIAotICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShGcmFtZVBvbGlj
eUZ1bmN0aW9uLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3Bv
bnNlKEZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3Rh
dGU+LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rp
b24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGlj
eUNoZWNrKCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJj
ZUxvYWRlci5jcHAJKHJldmlzaW9uIDgwNDI2KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL01h
aW5SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwNiw3ICs0MDYsNyBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvCiAgICAgfQogI2VuZGlmCiAK
LSAgICBmcmFtZUxvYWRlcigpLT5wb2xpY3lDaGVja2VyKCktPmNoZWNrQ29udGVudFBvbGljeSht
X3Jlc3BvbnNlLm1pbWVUeXBlKCksIGNhbGxDb250aW51ZUFmdGVyQ29udGVudFBvbGljeSwgdGhp
cyk7CisgICAgZnJhbWVMb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT5jaGVja0NvbnRlbnRQb2xp
Y3kobV9yZXNwb25zZSwgY2FsbENvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5LCB0aGlzKTsKIH0K
IAogdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBsZW5ndGhSZWNlaXZlZCwgYm9vbCBhbGxBdE9uY2Up
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCShyZXZpc2lvbiA4
MDQyNikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTcsMTEgKzk3LDExIEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdX
aW5kb3dQb2xpY3kKICAgICAgICAgYWN0aW9uLCByZXF1ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFt
ZSk7CiB9CiAKLXZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFN0
cmluZyYgTUlNRVR5cGUsIENvbnRlbnRQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uIGZ1bmN0aW9uLCB2
b2lkKiBhcmd1bWVudCkKK3ZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tDb250ZW50UG9saWN5KGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5j
dGlvbiBmdW5jdGlvbiwgdm9pZCogYXJndW1lbnQpCiB7CiAgICAgbV9jYWxsYmFjay5zZXQoZnVu
Y3Rpb24sIGFyZ3VtZW50KTsKLSAgICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoJlBvbGljeUNoZWNrZXI6OmNvbnRpbnVlQWZ0ZXJD
b250ZW50UG9saWN5LAotICAgICAgICBNSU1FVHlwZSwgbV9mcmFtZS0+bG9hZGVyKCktPmFjdGl2
ZURvY3VtZW50TG9hZGVyKCktPnJlcXVlc3QoKSk7CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNs
aWVudCgpLT5kaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKCZQb2xpY3lDaGVja2VyOjpj
b250aW51ZUFmdGVyQ29udGVudFBvbGljeSwKKyAgICAgICAgcmVzcG9uc2UsIG1fZnJhbWUtPmxv
YWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXF1ZXN0KCkpOwogfQogCiB2b2lkIFBv
bGljeUNoZWNrZXI6OmNhbmNlbENoZWNrKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGlj
eUNoZWNrZXIuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNoZWNrTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBEb2N1
bWVudExvYWRlciosIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uRnVuY3Rpb24sIHZvaWQqIGFyZ3VtZW50KTsKICAgICB2b2lkIGNoZWNrTmF2aWdhdGlvblBv
bGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5j
dGlvbiwgdm9pZCogYXJndW1lbnQpOwogICAgIHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYsIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24sIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsIHZvaWQqIGFyZ3VtZW50KTsKLSAgICB2b2lkIGNoZWNrQ29udGVudFBvbGlj
eShjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiwg
dm9pZCogYXJndW1lbnQpOworICAgIHZvaWQgY2hlY2tDb250ZW50UG9saWN5KGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBDb250ZW50UG9saWN5RGVjaXNpb25GdW5jdGlvbiwgdm9pZCogYXJndW1l
bnQpOwogCiAgICAgLy8gRklYTUU6IFRoZXNlIGFyZSBkaWZmZXJlbnQuICBUaGV5IGNvdWxkIHVz
ZSBiZXR0ZXIgbmFtZXMuCiAgICAgdm9pZCBjYW5jZWxDaGVjaygpOwpJbmRleDogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwko
cmV2aXNpb24gODA0MjcpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0wMy0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
cGxhY2UgV2ViS2l0MidzIGRlY2lkZVBvbGljeUZvck1JTUVUeXBlIHdpdGggZGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU1ODI3CisKKyAgICAgICAgLSBSZW5hbWVkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkZVBvbGljeUZvck1JTUVUeXBlIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UKKyAgICAgICAgICBhbmQgcGFzcyB0aGUgZW50aXJlIHJlc3BvbnNlLCBpbnN0ZWFkIG9mIGp1
c3QgdGhlIE1JTUVUeXBlLgorICAgICAgICAtIFVwZGF0ZWQgYm90aCBVSVByb2Nlc3MgQVBJIGFu
ZCBidW5kbGUgQVBJIHRvIGFsc28gYmUgYmFzZWQgb24gdGhlIHdob2xlIHJlc3BvbnNlLCBub3Qg
anVzdCB0aGUKKyAgICAgICAgICBNSU1FVHlwZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvbGljeUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQb2xpY3lDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xp
ZW50OjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9y
UmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKwogMjAxMS0wMy0wNCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRA
YXBwbGUuY29tPgogCiAgICAgICAgIFdLMiBNYWMgYnVpbGQgZml4LgpJbmRleDogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDgwNDI2KQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE2NTgsNyArMTY1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdX
aW4KICAgICAgICAgbGlzdGVuZXItPnVzZSgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGVj
aWRlUG9saWN5Rm9yTUlNRVR5cGUodWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBNSU1F
VHlwZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgYm9vbCYgcmVjZWl2ZWRQb2xp
Y3lBY3Rpb24sIHVpbnQ2NF90JiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90JiBkb3dubG9hZElEKQor
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1l
SUQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciogYXJndW1lbnRzLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGlj
eUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpCiB7CiAgICAgUmVmUHRyPEFQSU9iamVjdD4g
dXNlckRhdGE7CiAgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdlRGVjb2Rl
cih1c2VyRGF0YSwgY29udGV4dCgpKTsKQEAgLTE2NzUsNyArMTY3NSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JNSU1FVHkKICAgICBtX2luRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUgPSB0cnVlOwogICAgIG1fc3luY01pbWVUeXBlUG9saWN5QWN0aW9uSXNWYWxpZCA9IGZh
bHNlOwogCi0gICAgaWYgKCFtX3BvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSh0
aGlzLCBmcmFtZSwgTUlNRVR5cGUsIHJlcXVlc3QsIGxpc3RlbmVyLmdldCgpLCAwIC8qdXNlckRh
dGEqLykpCisgICAgaWYgKCFtX3BvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh0
aGlzLCBmcmFtZSwgcmVzcG9uc2UsIHJlcXVlc3QsIGxpc3RlbmVyLmdldCgpLCB1c2VyRGF0YS5n
ZXQoKSkpCiAgICAgICAgIGxpc3RlbmVyLT51c2UoKTsKIAogICAgIG1faW5EZWNpZGVQb2xpY3lG
b3JNSU1FVHlwZSA9IGZhbHNlOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwMSw3ICs1MDEsNyBAQCBwcml2YXRlOgog
ICAgIAogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBm
cmFtZUlELCB1aW50MzJfdCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQz
Ml90IG1vdXNlQnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCB1aW50NjRf
dCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBib29sJiByZWNlaXZlZFBv
bGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQp
OwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uKHVpbnQ2NF90IGZyYW1l
SUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBlLCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3Qg
bW91c2VCdXR0b24sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCB1aW50NjRfdCBsaXN0ZW5lcklELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKLSAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1JTUVUeXBlKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRz
LCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWludDY0X3QmIHBvbGljeUFjdGlvbiwgdWlu
dDY0X3QmIGRvd25sb2FkSUQpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodWlu
dDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQ2NF90IGxpc3RlbmVySUQsIENvcmVJUEM6OkFy
Z3VtZW50RGVjb2RlciogYXJndW1lbnRzLCBib29sJiByZWNlaXZlZFBvbGljeUFjdGlvbiwgdWlu
dDY0X3QmIHBvbGljeUFjdGlvbiwgdWludDY0X3QmIGRvd25sb2FkSUQpOwogCiAgICAgdm9pZCB3
aWxsU3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBj
b25zdCBTdHJpbmdQYWlyVmVjdG9yJiB0ZXh0RmllbGRWYWx1ZXMsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDgwNDI2
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkg
ewogI2VuZGlmCiAKICAgICAjIFBvbGljeSBtZXNzYWdlcwotICAgIERlY2lkZVBvbGljeUZvck1J
TUVUeXBlKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIE1JTUVUeXBlLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkgLT4gKGJvb2wgcmVjZWl2ZWRQ
b2xpY3lBY3Rpb24sIHVpbnQ2NF90IHBvbGljeUFjdGlvbiwgdWludDY0X3QgZG93bmxvYWRJRCkK
KyAgICBEZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh1aW50NjRfdCBmcmFtZUlELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgdWludDY0X3QgbGlzdGVuZXJJRCwgV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
RW5jb2RlciB1c2VyRGF0YSkgLT4gKGJvb2wgcmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHVpbnQ2NF90
IHBvbGljeUFjdGlvbiwgdWludDY0X3QgZG93bmxvYWRJRCkKICAgICBEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQzMl90IG5hdmlnYXRpb25UeXBl
LCB1aW50MzJfdCBtb2RpZmllcnMsIGludDMyX3QgbW91c2VCdXR0b24sIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVk
QnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSAtPiAoYm9vbCByZWNlaXZlZFBvbGlj
eUFjdGlvbiwgdWludDY0X3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQogICAg
IERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJf
dCBuYXZpZ2F0aW9uVHlwZSwgdWludDMyX3QgbW9kaWZpZXJzLCBpbnQzMl90IG1vdXNlQnV0dG9u
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV1RGOjpTdHJpbmcgZnJhbWVOYW1l
LCB1aW50NjRfdCBsaXN0ZW5lcklELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VF
bmNvZGVyIHVzZXJEYXRhKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9s
aWN5Q2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UG9saWN5Q2xpZW50LmNwcAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUG9saWN5Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTQgKzU1LDE1
IEBAIGJvb2wgV2ViUG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOZXcKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBXZWJQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvck1JTUVUeXBl
KFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
TUlNRVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyLCBBUElPYmplY3QqIHVzZXJEYXRhKQorYm9v
bCBXZWJQb2xpY3lDbGllbnQ6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYlBhZ2VQcm94eSog
cGFnZSwgV2ViRnJhbWVQcm94eSogZnJhbWUsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc291
cmNlUmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIGxpc3RlbmVyLCBBUElPYmplY3QqIHVzZXJEYXRhKQog
ewotICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUpCisgICAgaWYgKCFt
X2NsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgUmVmUHRyPFdlYlVSTFJlc3BvbnNlPiByZXNwb25zZSA9IFdlYlVSTFJlc3BvbnNlOjpj
cmVhdGUocmVzb3VyY2VSZXNwb25zZSk7CiAgICAgUmVmUHRyPFdlYlVSTFJlcXVlc3Q+IHJlcXVl
c3QgPSBXZWJVUkxSZXF1ZXN0OjpjcmVhdGUocmVzb3VyY2VSZXF1ZXN0KTsKIAotICAgIG1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvck1JTUVUeXBlKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRv
QVBJKE1JTUVUeXBlLmltcGwoKSksIHRvQVBJKHJlcXVlc3QuZ2V0KCkpLCB0b0FQSShsaXN0ZW5l
ciksIHRvQVBJKHVzZXJEYXRhKSwgbV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQu
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEko
cmVzcG9uc2UuZ2V0KCkpLCB0b0FQSShyZXF1ZXN0LmdldCgpKSwgdG9BUEkobGlzdGVuZXIpLCB0
b0FQSSh1c2VyRGF0YSksIG1fY2xpZW50LmNsaWVudEluZm8pOwogICAgIHJldHVybiB0cnVlOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUG9saWN5Q2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBvbGljeUNsaWVudC5oCShy
ZXZpc2lvbiA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQb2xpY3lDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworICAgIGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDcsNyArNDgsNyBAQCBjbGFzcyBXZWJQ
b2xpY3lDbGllbnQgOiBwdWJsaWMgQVBJQ2xpZW50CiBwdWJsaWM6CiAgICAgYm9vbCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSwgV2ViRXZlbnQ6Ok1vZGlmaWVycywgV2ViTW91c2VFdmVu
dDo6QnV0dG9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJGcmFtZVBvbGlj
eUxpc3RlbmVyUHJveHkqLCBBUElPYmplY3QqIHVzZXJEYXRhKTsKICAgICBib29sIGRlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbihXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2Vi
Q29yZTo6TmF2aWdhdGlvblR5cGUsIFdlYkV2ZW50OjpNb2RpZmllcnMsIFdlYk1vdXNlRXZlbnQ6
OkJ1dHRvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSosIEFQSU9iamVjdCogdXNlckRh
dGEpOwotICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViUGFnZVByb3h5KiwgV2Vi
RnJhbWVQcm94eSosIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSosIEFQSU9iamVjdCogdXNl
ckRhdGEpOworICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViUGFnZVByb3h5Kiwg
V2ViRnJhbWVQcm94eSosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqLCBB
UElPYmplY3QqIHVzZXJEYXRhKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24gODA0MjYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEwMSwxNCArMTAxLDE0IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZUxvYWRlckNsaWVudCBX
S1BhZ2UKIC8vIFBvbGljeSBDbGllbnQuCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVm
IGZyYW1lLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2Rp
ZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLVVJMUmVx
dWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb25DYWxsYmFjaykoV0tQYWdlUmVmIHBh
Z2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlw
ZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1
dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9y
TUlNRVR5cGVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU3Ry
aW5nUmVmIE1JTUVUeXBlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVVJMUmVzcG9uc2VSZWYg
cmVzcG9uc2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiAKIHN0cnVjdCBXS1BhZ2VQb2xpY3lDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsK
ICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNsaWVudEluZm87CiAgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBkZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQWN0aW9uOwogICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmV3V2lu
ZG93QWN0aW9uOwotICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck1JTUVUeXBlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGU7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBX
S1BhZ2VQb2xpY3lDbGllbnQgV0tQYWdlUG9saWN5Q2xpZW50OwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVBvbGljeUNs
aWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwCShyZXZpc2lvbiA4MDQy
NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksMTUgKzU5LDE2
IEBAIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiBJbmplY3RlZEJ1bmRsZVAKICAgICByZXR1cm4g
cG9saWN5OwogfQogCi1XS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdl
UG9saWN5Q2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShXZWJQYWdlKiBwYWdlLCBXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0LCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCitXS0J1bmRs
ZVBhZ2VQb2xpY3lBY3Rpb24gSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0LCBSZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpCiB7Ci0gICAgaWYg
KCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSkKKyAgICBpZiAoIW1fY2xpZW50LmRl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKQogICAgICAgICByZXR1cm4gV0tCdW5kbGVQYWdlUG9saWN5
QWN0aW9uUGFzc1Rocm91Z2g7CiAKKyAgICBSZWZQdHI8V2ViVVJMUmVzcG9uc2U+IHJlc3BvbnNl
ID0gV2ViVVJMUmVzcG9uc2U6OmNyZWF0ZShyZXNvdXJjZVJlc3BvbnNlKTsKICAgICBSZWZQdHI8
V2ViVVJMUmVxdWVzdD4gcmVxdWVzdCA9IFdlYlVSTFJlcXVlc3Q6OmNyZWF0ZShyZXNvdXJjZVJl
cXVlc3QpOwogCiAgICAgV0tUeXBlUmVmIHVzZXJEYXRhVG9QYXNzID0gMDsKLSAgICBXS0J1bmRs
ZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTUlNRVR5
cGUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkoTUlNRVR5cGUuaW1wbCgpKSwgdG9B
UEkocmVxdWVzdC5nZXQoKSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7
CisgICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGljeSA9IG1fY2xpZW50LmRlY2lkZVBv
bGljeUZvclJlc3BvbnNlKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHJlc3BvbnNl
LmdldCgpKSwgdG9BUEkocmVxdWVzdC5nZXQoKSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQu
Y2xpZW50SW5mbyk7CiAgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bh
c3MpKTsKICAgICByZXR1cm4gcG9saWN5OwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oCShyZXZpc2lvbiA4MDQyNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKKyAgICBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1LDcgKzQ2LDcgQEAgY2xhc3Mg
SW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50IDogcAogcHVibGljOgogICAgIFdLQnVuZGxl
UGFnZVBvbGljeUFjdGlvbiBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYlBhZ2Uq
LCBXZWJGcmFtZSosIEluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbiosIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CiAgICAg
V0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihX
ZWJQYWdlKiwgV2ViRnJhbWUqLCBJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25BY3Rpb24qLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgUmVm
UHRyPEFQSU9iamVjdD4mIHVzZXJEYXRhKTsKLSAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24g
ZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3QgU3RyaW5n
JiBNSU1FVHlwZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmVmUHRyPEFQSU9i
amVjdD4mIHVzZXJEYXRhKTsKKyAgICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFJlZlB0cjxBUElP
YmplY3Q+JiB1c2VyRGF0YSk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjQsMTQgKzEyNCwxNCBAQCB0eXBlZGVmIHVpbnQzMl90IFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvCiAvLyBQb2xpY3kgQ2xpZW50CiB0eXBlZGVmIFdLQnVuZGxlUGFnZVBvbGlj
eUFjdGlvbiAoKldLQnVuZGxlUGFnZURlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25DYWxs
YmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLQnVu
ZGxlTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1VSTFJlcXVlc3RSZWYg
cmVxdWVzdCwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0
eXBlZGVmIFdLQnVuZGxlUGFnZVBvbGljeUFjdGlvbiAoKldLQnVuZGxlUGFnZURlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbkNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25B
Y3Rpb24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5hbWUsIFdL
VHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotdHlwZWRlZiBXS0J1
bmRsZVBhZ2VQb2xpY3lBY3Rpb24gKCpXS0J1bmRsZVBhZ2VEZWNpZGVQb2xpY3lGb3JNSU1FVHlw
ZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwg
IFdLU3RyaW5nUmVmIE1JTUVUeXBlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tUeXBlUmVm
KiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLQnVuZGxlUGFn
ZVBvbGljeUFjdGlvbiAoKldLQnVuZGxlUGFnZURlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJh
Y2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCAgV0tVUkxS
ZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLVHlwZVJlZiog
dXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdl
UG9saWN5Q2xpZW50IHsKICAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb247CiAgICAgY29uc3Qgdm9pZCAq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGllbnRJbmZvOwogICAgIFdLQnVuZGxlUGFnZURlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b25DYWxsYmFjayAgICAgICAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjsKICAgICBXS0J1bmRsZVBhZ2VEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb25DYWxsYmFj
ayAgICAgICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbjsKLSAgICBX
S0J1bmRsZVBhZ2VEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlY2lkZVBvbGljeUZvck1JTUVUeXBlOworICAgIFdLQnVuZGxlUGFnZURlY2lk
ZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2U7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlUG9saWN5
Q2xpZW50IFdLQnVuZGxlUGFnZVBvbGljeUNsaWVudDsKIApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAJKHJldmlzaW9uIDgwNDI2KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU3NSw3ICs1NzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFNob3coCiAgICAgd2ViUGFnZS0+c2hvdygpOwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rp
b24gZnVuY3Rpb24sIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsK
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2ViUGFn
ZSkKQEAgLTU4Nyw3ICs1ODcsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aERlY2lkCiAgICAgUmVmUHRyPEFQSU9iamVjdD4gdXNlckRhdGE7CiAKICAgICAvLyBOb3RpZnkg
dGhlIGJ1bmRsZSBjbGllbnQuCi0gICAgV0tCdW5kbGVQYWdlUG9saWN5QWN0aW9uIHBvbGljeSA9
IHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUG9saWN5Q2xpZW50KCkuZGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUod2ViUGFnZSwgbV9mcmFtZSwgTUlNRVR5cGUsIHJlcXVlc3QsIHVzZXJEYXRhKTsKKyAg
ICBXS0J1bmRsZVBhZ2VQb2xpY3lBY3Rpb24gcG9saWN5ID0gd2ViUGFnZS0+aW5qZWN0ZWRCdW5k
bGVQb2xpY3lDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSh3ZWJQYWdlLCBtX2ZyYW1l
LCByZXNwb25zZSwgcmVxdWVzdCwgdXNlckRhdGEpOwogICAgIGlmIChwb2xpY3kgPT0gV0tCdW5k
bGVQYWdlUG9saWN5QWN0aW9uVXNlKSB7CiAgICAgICAgIChtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+
bG9hZGVyKCktPnBvbGljeUNoZWNrZXIoKS0+KmZ1bmN0aW9uKShQb2xpY3lVc2UpOwogICAgICAg
ICByZXR1cm47CkBAIC01OTksNyArNTk5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hEZWNpZAogICAgIHVpbnQ2NF90IGRvd25sb2FkSUQ7CiAKICAgICAvLyBOb3RpZnkg
dGhlIFVJUHJvY2Vzcy4KLSAgICBpZiAoIXdlYlBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck1JTUVUeXBlKG1fZnJhbWUtPmZyYW1lSUQoKSwgTUlN
RVR5cGUsIHJlcXVlc3QsIGxpc3RlbmVySUQsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNv
ZGVyKHVzZXJEYXRhLmdldCgpKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck1JTUVUeXBlOjpSZXBseShyZWNlaXZlZFBvbGljeUFjdGlvbiwgcG9saWN5QWN0aW9uLCBk
b3dubG9hZElEKSkpCisgICAgaWYgKCF3ZWJQYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShtX2ZyYW1lLT5mcmFtZUlEKCksIHJlc3Bv
bnNlLCByZXF1ZXN0LCBsaXN0ZW5lcklELCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rl
cih1c2VyRGF0YS5nZXQoKSkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZTo6UmVwbHkocmVjZWl2ZWRQb2xpY3lBY3Rpb24sIHBvbGljeUFjdGlvbiwgZG93
bmxvYWRJRCkpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBXZSBjYWxsIHRoaXMgc3luY2hy
b25vdXNseSBiZWNhdXNlIENGTmV0d29yayBjYW4gb25seSBjb252ZXJ0IGEgbG9hZGluZyBjb25u
ZWN0aW9uIHRvIGEgZG93bmxvYWQgZnJvbSBpdHMgZGlkUmVjZWl2ZVJlc3BvbnNlIGNhbGxiYWNr
LgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAkocmV2aXNpb24gODA0MjYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDcgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNob3coKTsKICAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdl
YkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdlYkNvcmU6OkZy
YW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xpY3lDaGVjaygpOwpJbmRleDogU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNDI3KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0w
NSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgV2ViS2l0MidzIGRlY2lkZVBvbGljeUZv
ck1JTUVUeXBlIHdpdGggZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1ODI3CisKKyAgICAgICAgUmVuYW1lZCBG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSB0byBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAgICAgIGFuZCBwYXNzIHRoZSBlbnRpcmUg
cmVzcG9uc2UsIGluc3RlYWQgb2YganVzdCB0aGUgTUlNRVR5cGUuCisKKyAgICAgICAgKiBzcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJD
bGllbnRJbXBsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBz
cmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmg6CisKIDIwMTEtMDMtMDQgIEFkYW0gQmFydGggIDxh
YmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3Yu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHAJKHJldmlzaW9uIDgwNDI2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQyLDE0
ICs4NDIsMTEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoU2hvdwogICAg
ICAgICB3ZWJWaWV3LT5jbGllbnQoKS0+c2hvdyh3ZWJWaWV3LT5pbml0aWFsTmF2aWdhdGlvblBv
bGljeSgpKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudEltcGw6OmRpc3BhdGNoRGVjaWRl
UG9saWN5Rm9yTUlNRVR5cGUoCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSgKICAgICAgRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlv
biwKLSAgICAgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwKKyAgICAgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsCiAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCiB7Ci0gICAgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UgPQotICAgICAgICBtX3dlYkZyYW1lLT5mcmFt
ZSgpLT5sb2FkZXIoKS0+YWN0aXZlRG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKTsKLQogICAg
IFBvbGljeUFjdGlvbiBhY3Rpb247CiAKICAgICBpbnQgc3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCk7CkBAIC04NjEsNyArODU4LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEltcGw6OmRpc3BhdGNoRGVjaQogICAgICAgICAvLyBEb3dubG9hZGluZyBpcyBoYW5kbGVkIGJ5
IHRoZSBlbWJlZGRlciwgYnV0IHdlIHN0aWxsIGdldCB0aGUgaW5pdGlhbAogICAgICAgICAvLyBy
ZXNwb25zZSBzbyB0aGF0IHdlIGNhbiBpZ25vcmUgaXQgYW5kIGNsZWFuIHVwIHByb3Blcmx5Lgog
ICAgICAgICBhY3Rpb24gPSBQb2xpY3lJZ25vcmU7Ci0gICAgfSBlbHNlIGlmICghY2FuU2hvd01J
TUVUeXBlKG1pbWVUeXBlKSkgeworICAgIH0gZWxzZSBpZiAoIWNhblNob3dNSU1FVHlwZShyZXNw
b25zZS5taW1lVHlwZSgpKSkgewogICAgICAgICAvLyBNYWtlIHN1cmUgdGhhdCB3ZSBjYW4gYWN0
dWFsbHkgaGFuZGxlIHRoaXMgdHlwZSBpbnRlcm5hbGx5LgogICAgICAgICBhY3Rpb24gPSBQb2xp
Y3lJZ25vcmU7CiAgICAgfSBlbHNlIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCShyZXZpc2lvbiA4MDQyNikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dCgpOwogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpOwotICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24gZnVuY3Rpb24sIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lX3R5cGUsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBv
bGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5k
b3dBY3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiBmb3JtX3N0YXRl
LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVfbmFtZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1
bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24s
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpGb3JtU3RhdGU+IGZvcm1fc3RhdGUpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQb2xp
Y3lDaGVjaygpOwpJbmRleDogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwkocmV2aXNpb24gODA0MjcpCisrKyBTb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0wMy0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgV2ViS2l0MidzIGRlY2lk
ZVBvbGljeUZvck1JTUVUeXBlIHdpdGggZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1ODI3CisKKyAgICAgICAg
UmVuYW1lZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlw
ZSB0byBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAgICAgIGFuZCBwYXNzIHRo
ZSBlbnRpcmUgcmVzcG9uc2UsIGluc3RlYWQgb2YganVzdCB0aGUgTUlNRVR5cGUuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoK
KwogMjAxMS0wMy0wNCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAJKHJldmlzaW9uIDgwNDI2KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsMTEg
KzMxNCwxMSBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlCiAgICAg
bV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rp
b24sIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCit2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZy
YW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQogewogICAgIC8vIHdlIG5lZWQgdG8gY2FsbCBk
aXJlY3RseSBoZXJlIChjdXJyZW50bHkgY2FsbFBvbGljeUZ1bmN0aW9uIGRvZXMgdGhhdCEpCiAg
ICAgQVNTRVJUKGZ1bmN0aW9uKTsKLSAgICBpZiAoY2FuU2hvd01JTUVUeXBlKE1JTUVUeXBlKSkK
KyAgICBpZiAoY2FuU2hvd01JTUVUeXBlKHJlc3BvbnNlLm1pbWVUeXBlKCkpKQogICAgICAgICBj
YWxsUG9saWN5RnVuY3Rpb24oZnVuY3Rpb24sIFBvbGljeVVzZSk7CiAgICAgZWxzZQogICAgICAg
ICBjYWxsUG9saWN5RnVuY3Rpb24oZnVuY3Rpb24sIFBvbGljeURvd25sb2FkKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsNyAr
MTE1LDcgQEAgY2xhc3MgRnJhbWVMb2FkZXJDbGllbnRFZmwgOiBwdWJsaWMgRnJhbQogICAgIHZp
cnR1YWwgRnJhbWUqIGRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpOwogCi0gICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoRnJhbWVQb2xpY3lGdW5jdGlv
biwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lG
dW5jdGlvbiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgV1RGOjpQYXNzUmVmUHRyPEZvcm1TdGF0ZT4sIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKEZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXVEY6OlBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4MDQyNykKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVwbGFjZSBXZWJLaXQyJ3MgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUgd2l0aCBkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTU4MjcKKworICAgICAgICBSZW5hbWVkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UKKyAgICAgICAgYW5kIHBhc3MgdGhlIGVudGlyZSByZXNwb25zZSwgaW5zdGVhZCBvZiBq
dXN0IHRoZSBNSU1FVHlwZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50R3RrLmg6CisKIDIwMTEtMDMtMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDog
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ1OCw3ICs0NTgsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFJlY2Vp
CiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9s
aWN5RnVuY3Rpb24sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVzb3VyY2VSZXF1ZXN0KQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGljeUZ1bmN0aW9uIHBvbGljeUZ1bmN0aW9uLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QpCiB7CiAgICAgQVNTRVJUKHBvbGljeUZ1bmN0aW9uKTsKICAgICBpZiAo
IXBvbGljeUZ1bmN0aW9uKQpAQCAtNDc3LDYgKzQ3Nyw4IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnQ6OmRpc3BhdGNoRGVjaWRlUG8KICAgICAgICAgZ19vYmplY3RfdW5yZWYobV9wb2xpY3lEZWNp
c2lvbik7CiAgICAgbV9wb2xpY3lEZWNpc2lvbiA9IHBvbGljeURlY2lzaW9uOwogCisgICAgU3Ry
aW5nIG1pbWVUeXBlID0gcmVzcG9uc2UubWltZVR5cGUoKTsKKwogICAgIGdib29sZWFuIGlzSGFu
ZGxlZCA9IGZhbHNlOwogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShwYWdlLCAibWltZS10eXBl
LXBvbGljeS1kZWNpc2lvbi1yZXF1ZXN0ZWQiLCBtX2ZyYW1lLCByZXF1ZXN0LmdldCgpLCBtaW1l
VHlwZS51dGY4KCkuZGF0YSgpLCBwb2xpY3lEZWNpc2lvbiwgJmlzSGFuZGxlZCk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRHdGsuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5oCSh3b3JraW5nIGNvcHkpCkBAIC05NCw3
ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZy
YW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCk7CiAKLSAgICAgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV2ViQ29yZTo6RnJhbWVQb2xp
Y3lGdW5jdGlvbiwgY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
b24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdURjo6UGFzc1JlZlB0
cjxXZWJDb3JlOjpGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYgZnJhbWVOYW1lKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9u
QWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV1RGOjpQYXNzUmVmUHRy
PFdlYkNvcmU6OkZvcm1TdGF0ZT4pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9saWN5
Q2hlY2soKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDQyNykKKysrIFNv
dXJjZS9XZWJLaXQvaGFpa3UvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMDMtMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFdlYktpdDIncyBk
ZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSB3aXRoIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTgyNworCisgICAg
ICAgIFJlbmFtZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGUgdG8gZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZQorICAgICAgICBhbmQgcGFz
cyB0aGUgZW50aXJlIHJlc3BvbnNlLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIE1JTUVUeXBlLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEhhaWt1OjpkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEhhaWt1Lmg6CisKIDIwMTEtMDMtMDMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZpbmcgYW4gaW5jbHVkZSBvZiBXZWJDb3JlS2V5Ym9hcmRVSU1v
ZGUuaCB0aGF0IEl2ZSBqdXN0IGFkZGVkLiBJdCdzIGFscmVhZHkgaW5jbHVkZWQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvaGFpa3UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRIYWlrdS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9oYWlrdS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEhhaWt1LmNwcAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0
L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02NTYsOCArNjU2LDggQEAgRnJhbWUqIEZyYW1lTG9hZGVyQ2xpZW50SGFpa3U6
OmRpc3BhdGNoQwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEhhaWt1OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rp
b24gZnVuY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBtaW1ldHlwZSwKK3ZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRIYWlrdTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZShGcmFtZVBvbGlj
eUZ1bmN0aW9uIGZ1bmN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAoIW1fZnJh
bWUpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50SGFpa3UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3Vy
Y2UvV2ViS2l0L2hhaWt1L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50SGFpa3UuaAko
d29ya2luZyBjb3B5KQpAQCAtMjA2LDggKzIwNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBS
ZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2Fk
KGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmlydHVhbCBGcmFtZSogZGlzcGF0Y2hD
cmVhdGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoRnJhbWVQb2xpY3lGdW5jdGlvbiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
U3RyaW5nJiwKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVz
cG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQb2xpY3lGdW5jdGlvbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLApJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gODA0MjcpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0wMy0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgV2ViS2l0MidzIGRlY2lk
ZVBvbGljeUZvck1JTUVUeXBlIHdpdGggZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1ODI3CisKKyAgICAgICAg
UmVuYW1lZCBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlw
ZSB0byBkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAgICAgIGFuZCBwYXNzIHRo
ZSBlbnRpcmUgcmVzcG9uc2UsIGluc3RlYWQgb2YganVzdCB0aGUgTUlNRVR5cGUuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorCiAyMDExLTAz
LTA1ICBJbHlhIFNoZXJtYW4gIDxpc2hlcm1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDgwNDI2
KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDggKzExNCw4IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hTaG93KCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShXZWJDb3JlOjpG
cmFtZVBvbGljeUZ1bmN0aW9uLAotICAgICAgICBjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24s
IAorICAgICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9s
aWN5Rm9yTmV3V2luZG93QWN0aW9uKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sCiAgICAg
ICAgIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6
U3RyaW5nJiBmcmFtZU5hbWUpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCShyZXZpc2lvbiA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03
NDIsMTMgKzc0MiwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFNob3co
CiAgICAgW1t3ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3U2hvdzp3ZWJWaWV3
XTsKIH0KIAotdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLAotICAgIGNvbnN0IFN0cmlu
ZyYgTUlNRVR5cGUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xp
Y3lGdW5jdGlvbiBmdW5jdGlvbiwKKyAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIFdlYlZpZXcgKndlYlZp
ZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogCiAgICAgW1t3ZWJWaWV3IF9wb2xp
Y3lEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBkZWNpZGVQb2xpY3lGb3JNSU1FVHlwZTpNSU1FVHlwZQorICAgICAgICAgICAgICAgICAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGU6cmVzcG9uc2UubWltZVR5cGUoKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q6cmVxdWVzdC5uc1VSTFJl
cXVlc3QoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJhbWU6
bV93ZWJGcmFtZS5nZXQoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY2lzaW9u
TGlzdGVuZXI6c2V0VXBQb2xpY3lMaXN0ZW5lcihmdW5jdGlvbikuZ2V0KCldOwpJbmRleDogU291
cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDgwNDI3KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wMy0wNSAgU2FtIFdlaW5pZyAg
PHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlcGxhY2UgV2ViS2l0MidzIGRlY2lkZVBvbGljeUZvck1JTUVUeXBlIHdpdGgg
ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTU1ODI3CisKKyAgICAgICAgUmVuYW1lZCBGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSB0byBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvclJlc3BvbnNlCisgICAgICAgIGFuZCBwYXNzIHRoZSBlbnRpcmUgcmVzcG9uc2UsIGluc3Rl
YWQgb2YganVzdCB0aGUgTUlNRVR5cGUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaDoKKwogMjAxMS0wMy0wNSAgUWkgWmhhbmcgIDxx
aS4yLnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBMYXN6bG8gR29tYm9z
LgpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTExNTcsMTMgKzExNTcsMTIgQEAgV2ViQ29yZTo6RnJhbWUqIEZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmRpcwogICAgIHJldHVybiBuZXdQYWdlLT5tYWluRnJhbWUoKS0+ZC0+ZnJhbWU7CiB9CiAK
LXZvaWQgRnJhbWVMb2FkZXJDbGllbnRRdDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlw
ZShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5
cGUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit2b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50UXQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlv
biBmdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCiB7CiAgICAgLy8gd2UgbmVlZCB0byBjYWxs
IGRpcmVjdGx5IGhlcmUKLSAgICBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSA9IG1f
ZnJhbWUtPmxvYWRlcigpLT5hY3RpdmVEb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpOwogICAg
IGlmIChXZWJDb3JlOjpjb250ZW50RGlzcG9zaXRpb25UeXBlKHJlc3BvbnNlLmh0dHBIZWFkZXJG
aWVsZCgiQ29udGVudC1EaXNwb3NpdGlvbiIpKSA9PSBXZWJDb3JlOjpDb250ZW50RGlzcG9zaXRp
b25BdHRhY2htZW50KQogICAgICAgICBjYWxsUG9saWN5RnVuY3Rpb24oZnVuY3Rpb24sIFBvbGlj
eURvd25sb2FkKTsKLSAgICBlbHNlIGlmIChjYW5TaG93TUlNRVR5cGUoTUlNRVR5cGUpKQorICAg
IGVsc2UgaWYgKGNhblNob3dNSU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKSkKICAgICAgICAg
Y2FsbFBvbGljeUZ1bmN0aW9uKGZ1bmN0aW9uLCBQb2xpY3lVc2UpOwogICAgIGVsc2UKICAgICAg
ICAgY2FsbFBvbGljeUZ1bmN0aW9uKGZ1bmN0aW9uLCBQb2xpY3lEb3dubG9hZCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDcgKzEyMyw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBh
Z2UoY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBk
aXNwYXRjaFNob3coKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZv
ck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IFdURjo6U3RyaW5n
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFz
c1JlZlB0cjxGb3JtU3RhdGU+LCBjb25zdCBXVEY6OlN0cmluZyYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oRnJhbWVQb2xpY3lGdW5j
dGlvbiBmdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CiAgICAgdmly
dHVhbCB2b2lkIGNhbmNlbFBvbGljeUNoZWNrKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZp
c2lvbiA4MDQyNykKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVw
bGFjZSBXZWJLaXQyJ3MgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUgd2l0aCBkZWNpZGVQb2xpY3lG
b3JSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTU4MjcKKworICAgICAgICBSZW5hbWVkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERl
Y2lkZVBvbGljeUZvck1JTUVUeXBlIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UK
KyAgICAgICAgYW5kIHBhc3MgdGhlIGVudGlyZSByZXNwb25zZSwgaW5zdGVhZCBvZiBqdXN0IHRo
ZSBNSU1FVHlwZS4KKworICAgICAgICAqIFdlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkZyYW1l
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJGcmFtZS5o
OgorCiAyMDExLTAzLTA0ICBTdGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUu
Y3BwCShyZXZpc2lvbiA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTc2NCw3ICsxNzY0LDcgQEAgdm9pZCBXZWJGcmFtZTo6cmVjZWl2
ZWRQb2xpY3lEZWNpc2lvbihQbwogICAgIChjb3JlRnJhbWUtPmxvYWRlcigpLT5wb2xpY3lDaGVj
a2VyKCktPipmdW5jdGlvbikoYWN0aW9uKTsKIH0KIAotdm9pZCBXZWJGcmFtZTo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lk
IFdlYkZyYW1lOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKEZyYW1lUG9saWN5RnVu
Y3Rpb24gZnVuY3Rpb24sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
dGhpcyk7CiAgICAgQVNTRVJUKGNvcmVGcmFtZSk7CkBAIC0xNzc1LDcgKzE3NzUsNyBAQCB2b2lk
IFdlYkZyYW1lOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JCiAKICAgICBDT01QdHI8SVdlYlVS
TFJlcXVlc3Q+IHVybFJlcXVlc3QoQWRvcHRDT00sIFdlYk11dGFibGVVUkxSZXF1ZXN0OjpjcmVh
dGVJbnN0YW5jZShyZXF1ZXN0KSk7CiAKLSAgICBpZiAoU1VDQ0VFREVEKHBvbGljeURlbGVnYXRl
LT5kZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShkLT53ZWJWaWV3LCBCU3RyaW5nKG1pbWVUeXBlKSwg
dXJsUmVxdWVzdC5nZXQoKSwgdGhpcywgc2V0VXBQb2xpY3lMaXN0ZW5lcihmdW5jdGlvbikuZ2V0
KCkpKSkKKyAgICBpZiAoU1VDQ0VFREVEKHBvbGljeURlbGVnYXRlLT5kZWNpZGVQb2xpY3lGb3JN
SU1FVHlwZShkLT53ZWJWaWV3LCBCU3RyaW5nKHJlc3BvbnNlLm1pbWVUeXBlKCkpLCB1cmxSZXF1
ZXN0LmdldCgpLCB0aGlzLCBzZXRVcFBvbGljeUxpc3RlbmVyKGZ1bmN0aW9uKS5nZXQoKSkpKQog
ICAgICAgICByZXR1cm47CiAKICAgICAoY29yZUZyYW1lLT5sb2FkZXIoKS0+cG9saWN5Q2hlY2tl
cigpLT4qZnVuY3Rpb24pKFBvbGljeVVzZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJG
cmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgJKHJldmlz
aW9uIDgwNDI2KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzI4LDcgKzMyOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgZmlsZURvZXNOb3RFeGlzdEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcGx1Z2luV2lsbEhh
bmRsZUxvYWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShXZWJDb3Jl
OjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERl
Y2lkZVBvbGljeUZvclJlc3BvbnNlKFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6Rm9ybVN0YXRlPiwgY29uc3QgV1RGOjpTdHJpbmcmIGZyYW1lTmFtZSk7CiAgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJD
b3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpG
b3JtU3RhdGU+KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hVbmFibGVUb0ltcGxlbWVudFBv
bGljeShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbmNlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZwkocmV2aXNpb24gODA0MjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTAzLTA1ICBTYW0gV2VpbmlnICA8
c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVwbGFjZSBXZWJLaXQyJ3MgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUgd2l0aCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTU4MjcKKworICAgICAgICBSZW5hbWVkIEZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBlIHRvIGRpc3BhdGNoRGVjaWRlUG9saWN5
Rm9yUmVzcG9uc2UKKyAgICAgICAgYW5kIHBhc3MgdGhlIGVudGlyZSByZXNwb25zZSwgaW5zdGVh
ZCBvZiBqdXN0IHRoZSBNSU1FVHlwZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVu
dFdpbkNFOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmg6CisKIDIwMTEtMDMtMDMgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZpbmcgYW4gaW5j
bHVkZSBvZiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCB0aGF0IEl2ZSBqdXN0IGFkZGVkLiBJdCdz
IGFscmVhZHkgaW5jbHVkZWQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAkocmV2aXNp
b24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsOSArMTI3LDkgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaERpZAogICAgIG1fcmVzcG9uc2UgPSBy
ZXNwb25zZTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaERlY2lk
ZVBvbGljeUZvck1JTUVUeXBlKEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24sIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9u
c2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
CiB7Ci0gICAgaWYgKGNhblNob3dNSU1FVHlwZShtaW1lVHlwZSkpCisgICAgaWYgKGNhblNob3dN
SU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKSkKICAgICAgICAgKG1fZnJhbWUtPmxvYWRlcigp
LT5wb2xpY3lDaGVja2VyKCktPipwb2xpY3lGdW5jdGlvbikoUG9saWN5VXNlKTsKICAgICBlbHNl
CiAgICAgICAgIChtX2ZyYW1lLT5sb2FkZXIoKS0+cG9saWN5Q2hlY2tlcigpLT4qcG9saWN5RnVu
Y3Rpb24pKFBvbGljeURvd25sb2FkKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5oCShyZXZp
c2lvbiA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRXaW5DRS5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw3ICs4OCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFNo
b3coKTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck1JTUVUeXBl
KFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24sIGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlw
ZSwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6U3RyaW5nJiBmcmFt
ZU5hbWUpOwogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KTsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUG9s
aWN5Q2hlY2soKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MDQyNykKKysrIFNvdXJj
ZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTEtMDMtMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIFdlYktpdDIncyBkZWNpZGVQ
b2xpY3lGb3JNSU1FVHlwZSB3aXRoIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTgyNworCisgICAgICAgIFJl
bmFtZWQgRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUg
dG8gZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JSZXNwb25zZQorICAgICAgICBhbmQgcGFzcyB0aGUg
ZW50aXJlIHJlc3BvbnNlLCBpbnN0ZWFkIG9mIGp1c3QgdGhlIE1JTUVUeXBlLgorCisgICAgICAg
ICogV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2Up
OgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oOgorCiAyMDEx
LTAzLTAzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92aW5nIGFuIGluY2x1ZGUgb2YgV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggdGhhdCBJdmUganVz
dCBhZGRlZC4gSXQncyBhbHJlYWR5IGluY2x1ZGVkCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCShyZXZpc2lv
biA4MDQyNikKKysrIFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudFd4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzc1LDcgKzc3NSw3IEBAIEZyYW1lKiBGcmFt
ZUxvYWRlckNsaWVudFd4OjpkaXNwYXRjaENyZWEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JNSU1FVHlwZShG
cmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBTdHJpbmcmIG1pbWV0eXBlLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRp
c3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlv
biwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKICAgICBpZiAoIW1fd2ViRnJhbWUpCiAgICAgICAgIHJldHVybjsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50V3guaAkocmV2aXNpb24gODA0MjYpCisrKyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTcsNyArMTk3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAg
ICAgICB2aXJ0dWFsIEZyYW1lKiBkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xp
Y3lGb3JNSU1FVHlwZShGcmFtZVBvbGljeUZ1bmN0aW9uIGZ1bmN0aW9uLCBjb25zdCBTdHJpbmcm
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
RGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oRnJhbWVQ
b2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29uc3QgU3RyaW5nJik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oRnJhbWVQb2xpY3lGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDgwNDI3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDUgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIFdlYktpdDIncyBkZWNpZGVQb2xpY3lGb3JNSU1FVHlwZSB3aXRoIGRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NTgyNworCisgICAgICAgICogTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250
cm9sbGVyLm06CisgICAgICAgIChkZWNpZGVQb2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICgt
W0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyIGF3YWtlRnJvbU5pYl0pOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmRlY2lkZVBvbGljeUZvclJlc3BvbnNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorICAgICAgICBVcGRhdGUgdG9vbHMgZm9yIG5ldyBuYW1lLgorCiAyMDExLTAz
LTA1ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogVG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dz
ZXJXaW5kb3dDb250cm9sbGVyLm0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvTWluaUJyb3dzZXIvbWFj
L0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0JKHJldmlzaW9uIDgwNDI2KQorKysgVG9vbHMvTWlu
aUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0JKHdvcmtpbmcgY29weSkKQEAg
LTM3MCw3ICszNzAsNyBAQCBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rp
CiAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKIH0KIAotc3RhdGljIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTUlNRVR5cGUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJh
bWUsIFdLU3RyaW5nUmVmIE1JTUVUeXBlLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZShXS1Bh
Z2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwg
V0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5l
ciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lcik7CiB9CkBAIC02MDcsNyArNjA3LDcgQEAg
LSAodm9pZClhd2FrZUZyb21OaWIKICAgICAgICAgc2VsZiwgICAgICAgLyogY2xpZW50SW5mbyAq
LwogICAgICAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLAogICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24sCi0gICAgICAgIGRlY2lkZVBvbGljeUZvck1JTUVU
eXBlCisgICAgICAgIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlUG9saWN5Q2xpZW50KF93ZWJWaWV3LnBhZ2VSZWYsICZwb2xpY3lDbGllbnQpOwogCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvUGFnZUxvYWRCYXNpYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1BhZ2VMb2Fk
QmFzaWMuY3BwCShyZXZpc2lvbiA4MDQyNikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mi9QYWdlTG9hZEJhc2ljLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3
IEBAIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGkKICAgICBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwogfQogCi1zdGF0aWMgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JNSU1FVHlwZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tTdHJpbmdS
ZWYgTUlNRVR5cGUsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RS
ZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgV0tGcmFtZVBvbGljeUxp
c3RlbmVyVXNlKGxpc3RlbmVyKTsKIH0KQEAgLTEzMiw3ICsxMzIsNyBAQCBURVNUKFdlYktpdDIs
IFBhZ2VMb2FkQmFzaWMpCiAgICAgcG9saWN5Q2xpZW50LmNsaWVudEluZm8gPSAmc3RhdGU7CiAg
ICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOwogICAgIHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lG
b3JOZXdXaW5kb3dBY3Rpb24gPSBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb247Ci0gICAg
cG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck1JTUVUeXBlID0gZGVjaWRlUG9saWN5Rm9yTUlN
RVR5cGU7CisgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvclJlc3BvbnNlID0gZGVjaWRl
UG9saWN5Rm9yUmVzcG9uc2U7CiAgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudCh3ZWJWaWV3
LnBhZ2UoKSwgJnBvbGljeUNsaWVudCk7CiAKICAgICBXS1JldGFpblB0cjxXS1VSTFJlZj4gdXJs
KEFkb3B0V0ssIFV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKCJzaW1wbGUiLCAiaHRtbCIpKTsK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHJldmlzaW9uIDgwNDI2KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzYzLDcgKzE3NjMsNyBAQCBjb21wb3NpdGluZy90aWxpbmcvaHVnZS1sYXllci1yZXNpemUu
aHRtCiAKICMgUkVHUkVTU0lPTihyNzc5NzQpOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxh
bmsvc2VjdXJpdHktY29udGV4dC13aW5kb3ctb3Blbi5odG1sIGlzIGZhaWxpbmcKICMgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE1OT4KLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvYWJvdXRCbGFuay9zZWN1cml0eS1jb250ZXh0LXdpbmRvdy1vcGVuLmh0bWwKKyNodHRw
L3Rlc3RzL3NlY3VyaXR5L2Fib3V0Qmxhbmsvc2VjdXJpdHktY29udGV4dC13aW5kb3ctb3Blbi5o
dG1sCiAKICMjIyBFTkQgT0YgKDEpIENsYXNzaWZpZWQgZmFpbHVyZXMgd2l0aCBidWcgcmVwb3J0
cwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo=
</data>
<flag name="review"
          id="76917"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>