<?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>214772</bug_id>
          
          <creation_ts>2020-07-24 17:15:38 -0700</creation_ts>
          <short_desc>Remove API::Object::Type::RenderLayer and API::Object::Type::RenderObject</short_desc>
          <delta_ts>2020-07-29 16:13:31 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214947</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1674927</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-07-24 17:15:38 -0700</bug_when>
    <thetext>These are no longer used</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674928</commentid>
    <comment_count>1</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-07-24 17:15:55 -0700</bug_when>
    <thetext>&lt;rdar://problem/52734803&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1674929</commentid>
    <comment_count>2</comment_count>
      <attachid>405206</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-07-24 17:21:17 -0700</bug_when>
    <thetext>Created attachment 405206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675260</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-27 09:00:28 -0700</bug_when>
    <thetext>Committed r264925: &lt;https://trac.webkit.org/changeset/264925&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405206.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405206</attachid>
            <date>2020-07-24 17:21:17 -0700</date>
            <delta_ts>2020-07-27 09:00:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214772-20200724172116.patch</filename>
            <type>text/plain</type>
            <size>59226</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0ODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxM2ExNDRjOGU4NmVjOGFm
NTJmZWZkM2Q1Y2ZmMjBlNDQ0NjM3MTMuLjUxZjI0NGYyOWM0ODg2ZDYxNzI3ZTM0YWQzNmNhNGM5
MzYxMWI1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjAtMDctMjQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIEFQSTo6
T2JqZWN0OjpUeXBlOjpSZW5kZXJMYXllciBhbmQgQVBJOjpPYmplY3Q6OlR5cGU6OlJlbmRlck9i
amVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0
NzcyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MjczNDgwMz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBBUElzIGFyZSBubyBsb25nZXIg
dXNlZCwgc28gd2Ugc2hvdWxkIHJlbW92ZSB0aGVtLgorCisgICAgICAgICogU2hhcmVkL0FQSS9B
UElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLUmVuZGVyTGF5ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS1JlbmRlckxheWVyLmg6IFJlbW92ZWQuCisgICAgICAgICogU2hhcmVkL0FQSS9j
L1dLUmVuZGVyT2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tS
ZW5kZXJPYmplY3QuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvVXNlckRhdGEuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyRGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ckRhdGE6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlJlbmRlckxheWVyLmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvV2ViUmVuZGVyTGF5ZXIuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBTaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFy
ZWQvV2ViUmVuZGVyT2JqZWN0Lmg6IFJlbW92ZWQuCisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZUNvcHlS
ZW5kZXJUcmVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdLQnVuZGxlUGFnZUNvcHlSZW5kZXJMYXll
clRyZWUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oOgorCiAyMDIwLTA3LTI0ICBEYXZpZCBLaWx6ZXIgIDxk
ZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgW0lQQyBoYXJkZW5pbmddIEFkZCBudWxscHRy
IGNoZWNrcyBmb3IgV2ViUGFnZTo6bV9hY3RpdmVDb2xvckNob29zZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FQSS9BUElPYmplY3QuaAppbmRleCA5NzE2NDYxZTI0YjU0YTBlYjk2MDg1YmNjOTRhNDQ0NWFj
MTNkYjY2Li45MmNhOGViNGMwZjk3YzhkZDAyY2Y1ZjA0N2Y4MGNjNWI5NWQzODk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0zMjEsOCArMzIxLDYgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxBUEk6Ok9iamVjdDo6VHlwZT4gewogICAgICAgICBBUEk6Ok9i
amVjdDo6VHlwZTo6UGFnZUhhbmRsZSwKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OlBhZ2VH
cm91cEhhbmRsZSwKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OlByb3RlY3Rpb25TcGFjZSwK
LSAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OlJlbmRlckxheWVyLAotICAgICAgICBBUEk6Ok9i
amVjdDo6VHlwZTo6UmVuZGVyT2JqZWN0LAogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6UmVz
b3VyY2VMb2FkSW5mbywKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OlNlY3VyaXR5T3JpZ2lu
LAogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6U2Vzc2lvblN0YXRlLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4YzlkYzkwODdjZGFmYzJhY2ZkYTE2NzYxYjdlYTdmOGVk
NzQzMjlmLi5jODJjNjMwYzI3ODg2ZGU5MTQ5ZDRhZjUxMjE0MmYxYWNmMDYwMTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAtNjQsOCArNjQsNiBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0dyYXBoaWNzQ29udGV4dCogV0tHcmFwaGljc0NvbnRleHRSZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ltYWdlKiBXS0ltYWdlUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tQb2ludFJlZiogV0tQb2ludFJlZjsKIHR5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLUmVjdFJlZiogV0tSZWN0UmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tSZW5kZXJMYXllciogV0tSZW5kZXJMYXllclJlZjsKLXR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLUmVuZGVyT2JqZWN0KiBXS1JlbmRlck9iamVjdFJlZjsKIHR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLU2VjdXJpdHlPcmlnaW4qIFdLU2VjdXJpdHlPcmlnaW5SZWY7CiB0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NpemVS
ZWYqIFdLU2l6ZVJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dL
UmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJMYXll
ci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhYTE1MDIxNjU0MzljNzFjODYw
ZDc5YTkxNGE2YWZkYTRhMjE4NGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJMYXllci5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXS1JlbmRlckxheWVyLmgiCi0KLSNpbmNsdWRlICJBUElBcnJh
eS5oIgotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYlJlbmRlckxheWVyLmgi
Ci0KLVdLVHlwZUlEIFdLUmVuZGVyTGF5ZXJHZXRUeXBlSUQoKQotewotICAgIHJldHVybiBXZWJL
aXQ6OnRvQVBJKFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6OkFQSVR5cGUpOwotfQotCi1XS1JlbmRl
ck9iamVjdFJlZiBXS1JlbmRlckxheWVyR2V0UmVuZGVyZXIoV0tSZW5kZXJMYXllclJlZiByZW5k
ZXJMYXllclJlZikKLXsKLSAgICByZXR1cm4gdG9BUEkoV2ViS2l0Ojp0b0ltcGwocmVuZGVyTGF5
ZXJSZWYpLT5yZW5kZXJlcigpKTsKLX0KLQotV0tTdHJpbmdSZWYgV0tSZW5kZXJMYXllckNvcHlS
ZW5kZXJlck5hbWUoV0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllclJlZikKLXsKLSAgICByZXR1
cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShXZWJLaXQ6OnRvSW1wbChyZW5kZXJMYXllclJlZiktPnJl
bmRlcmVyKCktPm5hbWUoKSk7Ci19Ci0KLVdLU3RyaW5nUmVmIFdLUmVuZGVyTGF5ZXJDb3B5RWxl
bWVudFRhZ05hbWUoV0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllclJlZikKLXsKLSAgICBXZWJL
aXQ6OldlYlJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IFdlYktpdDo6dG9JbXBsKHJlbmRlckxh
eWVyUmVmKTsKLSAgICBpZiAoIXJlbmRlckxheWVyLT5yZW5kZXJlcigpLT5lbGVtZW50VGFnTmFt
ZSgpLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShyZW5kZXJM
YXllci0+cmVuZGVyZXIoKS0+ZWxlbWVudFRhZ05hbWUoKSk7Ci0KLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotV0tTdHJpbmdSZWYgV0tSZW5kZXJMYXllckNvcHlFbGVtZW50SUQoV0tSZW5kZXJM
YXllclJlZiByZW5kZXJMYXllclJlZikKLXsKLSAgICBXZWJLaXQ6OldlYlJlbmRlckxheWVyKiBy
ZW5kZXJMYXllciA9IFdlYktpdDo6dG9JbXBsKHJlbmRlckxheWVyUmVmKTsKLSAgICBpZiAoIXJl
bmRlckxheWVyLT5yZW5kZXJlcigpLT5lbGVtZW50SUQoKS5pc051bGwoKSkKLSAgICAgICAgcmV0
dXJuIFdlYktpdDo6dG9Db3BpZWRBUEkocmVuZGVyTGF5ZXItPnJlbmRlcmVyKCktPmVsZW1lbnRJ
RCgpKTsKLQotICAgIHJldHVybiBudWxscHRyOwotfQotCi1XS0FycmF5UmVmIFdLUmVuZGVyTGF5
ZXJHZXRFbGVtZW50Q2xhc3NOYW1lcyhXS1JlbmRlckxheWVyUmVmIHJlbmRlckxheWVyUmVmKQot
ewotICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6dG9JbXBsKHJlbmRlckxheWVyUmVm
KS0+cmVuZGVyZXIoKS0+ZWxlbWVudENsYXNzTmFtZXMoKSk7Ci19Ci0KLVdLUmVjdCBXS1JlbmRl
ckxheWVyR2V0QWJzb2x1dGVCb3VuZHMoV0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllclJlZikK
LXsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IGJvdW5kcyA9IFdlYktpdDo6dG9JbXBsKHJlbmRlckxh
eWVyUmVmKS0+YWJzb2x1dGVCb3VuZGluZ0JveCgpOwotICAgIHJldHVybiBXS1JlY3RNYWtlKGJv
dW5kcy54KCksIGJvdW5kcy55KCksIGJvdW5kcy53aWR0aCgpLCBib3VuZHMuaGVpZ2h0KCkpOwot
fQotCi1ib29sIFdLUmVuZGVyTGF5ZXJJc0NsaXBwaW5nKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVy
TGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9JbXBsKHJlbmRlckxheWVyUmVmKS0+
aXNDbGlwcGluZygpOwotfQotCi1ib29sIFdLUmVuZGVyTGF5ZXJJc0NsaXBwZWQoV0tSZW5kZXJM
YXllclJlZiByZW5kZXJMYXllclJlZikKLXsKLSAgICByZXR1cm4gV2ViS2l0Ojp0b0ltcGwocmVu
ZGVyTGF5ZXJSZWYpLT5pc0NsaXBwZWQoKTsKLX0KLQotYm9vbCBXS1JlbmRlckxheWVySXNSZWZs
ZWN0aW9uKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdl
YktpdDo6dG9JbXBsKHJlbmRlckxheWVyUmVmKS0+aXNSZWZsZWN0aW9uKCk7Ci19Ci0KLVdLQ29t
cG9zaXRpbmdMYXllclR5cGUgV0tSZW5kZXJMYXllckdldENvbXBvc2l0aW5nTGF5ZXJUeXBlKFdL
UmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgc3dpdGNoIChXZWJLaXQ6OnRv
SW1wbChyZW5kZXJMYXllclJlZiktPmNvbXBvc2l0aW5nTGF5ZXJUeXBlKCkpIHsKLSAgICBjYXNl
IFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6Ok5vbmU6Ci0gICAgICAgIHJldHVybiBrV0tDb21wb3Np
dGluZ0xheWVyVHlwZU5vbmU7Ci0gICAgY2FzZSBXZWJLaXQ6OldlYlJlbmRlckxheWVyOjpOb3Jt
YWw6Ci0gICAgICAgIHJldHVybiBrV0tDb21wb3NpdGluZ0xheWVyVHlwZU5vcm1hbDsKLSAgICBj
YXNlIFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6OlRpbGVkOgotICAgICAgICByZXR1cm4ga1dLQ29t
cG9zaXRpbmdMYXllclR5cGVUaWxlZDsKLSAgICBjYXNlIFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6
Ok1lZGlhOgotICAgICAgICByZXR1cm4ga1dLQ29tcG9zaXRpbmdMYXllclR5cGVNZWRpYTsKLSAg
ICBjYXNlIFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6OkNvbnRhaW5lcjoKLSAgICAgICAgcmV0dXJu
IGtXS0NvbXBvc2l0aW5nTGF5ZXJUeXBlQ29udGFpbmVyOwotICAgIH0KLQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBrV0tDb21wb3NpdGluZ0xheWVyVHlwZU5vbmU7Ci19
Ci0KLVdLX0VYUE9SVCBkb3VibGUgV0tSZW5kZXJMYXllckdldEJhY2tpbmdTdG9yZU1lbW9yeUVz
dGltYXRlKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdl
YktpdDo6dG9JbXBsKHJlbmRlckxheWVyUmVmKS0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUo
KTsKLX0KLQotV0tBcnJheVJlZiBXS1JlbmRlckxheWVyR2V0TmVnYXRpdmVaT3JkZXJMaXN0KFdL
UmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9B
UEkoV2ViS2l0Ojp0b0ltcGwocmVuZGVyTGF5ZXJSZWYpLT5uZWdhdGl2ZVpPcmRlckxpc3QoKSk7
Ci19Ci0KLVdLQXJyYXlSZWYgV0tSZW5kZXJMYXllckdldE5vcm1hbEZsb3dMaXN0KFdLUmVuZGVy
TGF5ZXJSZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoV2Vi
S2l0Ojp0b0ltcGwocmVuZGVyTGF5ZXJSZWYpLT5ub3JtYWxGbG93TGlzdCgpKTsKLX0KLQotV0tB
cnJheVJlZiBXS1JlbmRlckxheWVyR2V0UG9zaXRpdmVaT3JkZXJMaXN0KFdLUmVuZGVyTGF5ZXJS
ZWYgcmVuZGVyTGF5ZXJSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6dG9BUEkoV2ViS2l0Ojp0
b0ltcGwocmVuZGVyTGF5ZXJSZWYpLT5wb3NpdGl2ZVpPcmRlckxpc3QoKSk7Ci19Ci0KLVdLUmVu
ZGVyTGF5ZXJSZWYgV0tSZW5kZXJMYXllckdldEZyYW1lQ29udGVudHNMYXllcihXS1JlbmRlckxh
eWVyUmVmIHJlbmRlckxheWVyUmVmKQotewotICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktp
dDo6dG9JbXBsKHJlbmRlckxheWVyUmVmKS0+ZnJhbWVDb250ZW50c0xheWVyKCkpOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJMYXllci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMmY1MWVhZjNmNWYzZWIzNGRhOTVkMDA4ZTNkNmFmOTczMTYzZjI2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLUmVuZGVyTGF5ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDc3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLUmVuZGVyTGF5ZXJfaAotI2RlZmluZSBXS1Jl
bmRlckxheWVyX2gKLQotCi0jaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotI2luY2x1ZGUgPFdl
YktpdC9XS0dlb21ldHJ5Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0j
ZW5kaWYKLQotV0tfRVhQT1JUIFdLVHlwZUlEIFdLUmVuZGVyTGF5ZXJHZXRUeXBlSUQodm9pZCk7
Ci0KLVdLX0VYUE9SVCBXS1JlbmRlck9iamVjdFJlZiBXS1JlbmRlckxheWVyR2V0UmVuZGVyZXIo
V0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllcik7Ci0KLS8vIEZJWE1FOiBSZW1vdmUgdGhpcyBm
dW5jdGlvbiBvbmNlIFNhZmFyaSBkb2VzIG5vdCByZXF1aXJlIGl0LiBDbGllbnRzIGNhbiBhY2Nl
c3MgdGhpcyBkYXRhIHZpYSB0aGUgcmVuZGVyZXIuCi1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tS
ZW5kZXJMYXllckNvcHlSZW5kZXJlck5hbWUoV0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllcik7
Ci0KLS8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgdGhyZWUgZnVuY3Rpb25zIG9uY2UgU2FmYXJpIGRv
ZXMgbm90IHJlcXVpcmUgdGhlbS4KLVdLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS1JlbmRlckxheWVy
Q29weUVsZW1lbnRUYWdOYW1lKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotV0tfRVhQ
T1JUIFdLU3RyaW5nUmVmIFdLUmVuZGVyTGF5ZXJDb3B5RWxlbWVudElEKFdLUmVuZGVyTGF5ZXJS
ZWYgcmVuZGVyTGF5ZXIpOwotV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tSZW5kZXJMYXllckdldEVs
ZW1lbnRDbGFzc05hbWVzKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotCi1XS19FWFBP
UlQgV0tSZWN0IFdLUmVuZGVyTGF5ZXJHZXRBYnNvbHV0ZUJvdW5kcyhXS1JlbmRlckxheWVyUmVm
IHJlbmRlckxheWVyKTsKLQotV0tfRVhQT1JUIGJvb2wgV0tSZW5kZXJMYXllcklzQ2xpcHBpbmco
V0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllcik7Ci1XS19FWFBPUlQgYm9vbCBXS1JlbmRlckxh
eWVySXNDbGlwcGVkKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotV0tfRVhQT1JUIGJv
b2wgV0tSZW5kZXJMYXllcklzUmVmbGVjdGlvbihXS1JlbmRlckxheWVyUmVmIHJlbmRlckxheWVy
KTsKLQotZW51bSBXS0NvbXBvc2l0aW5nTGF5ZXJUeXBlIHsKLSAgICBrV0tDb21wb3NpdGluZ0xh
eWVyVHlwZU5vbmUsCi0gICAga1dLQ29tcG9zaXRpbmdMYXllclR5cGVOb3JtYWwsCi0gICAga1dL
Q29tcG9zaXRpbmdMYXllclR5cGVUaWxlZCwKLSAgICBrV0tDb21wb3NpdGluZ0xheWVyVHlwZU1l
ZGlhLAotICAgIGtXS0NvbXBvc2l0aW5nTGF5ZXJUeXBlQ29udGFpbmVyCi19OwotdHlwZWRlZiBl
bnVtIFdLQ29tcG9zaXRpbmdMYXllclR5cGUgV0tDb21wb3NpdGluZ0xheWVyVHlwZTsKLQotV0tf
RVhQT1JUIFdLQ29tcG9zaXRpbmdMYXllclR5cGUgV0tSZW5kZXJMYXllckdldENvbXBvc2l0aW5n
TGF5ZXJUeXBlKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotV0tfRVhQT1JUIGRvdWJs
ZSBXS1JlbmRlckxheWVyR2V0QmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoV0tSZW5kZXJMYXll
clJlZiByZW5kZXJMYXllcik7Ci0KLVdLX0VYUE9SVCBXS0FycmF5UmVmIFdLUmVuZGVyTGF5ZXJH
ZXROZWdhdGl2ZVpPcmRlckxpc3QoV0tSZW5kZXJMYXllclJlZiByZW5kZXJMYXllcik7Ci1XS19F
WFBPUlQgV0tBcnJheVJlZiBXS1JlbmRlckxheWVyR2V0Tm9ybWFsRmxvd0xpc3QoV0tSZW5kZXJM
YXllclJlZiByZW5kZXJMYXllcik7Ci1XS19FWFBPUlQgV0tBcnJheVJlZiBXS1JlbmRlckxheWVy
R2V0UG9zaXRpdmVaT3JkZXJMaXN0KFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotCi1X
S19FWFBPUlQgV0tSZW5kZXJMYXllclJlZiBXS1JlbmRlckxheWVyR2V0RnJhbWVDb250ZW50c0xh
eWVyKFdLUmVuZGVyTGF5ZXJSZWYgcmVuZGVyTGF5ZXIpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LX0KLSNlbmRpZgotCi0jZW5kaWYgLy8gV0tSZW5kZXJMYXllcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1JlbmRlck9iamVjdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJhMTIzOTBiNjMyODcxYWE0Y2ExYTUzNmZiODhmYWFkNjEzNWE0MDUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXS1JlbmRlck9i
amVjdC5oIgotCi0jaW5jbHVkZSAiQVBJQXJyYXkuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIK
LSNpbmNsdWRlICJXZWJSZW5kZXJPYmplY3QuaCIKLQotV0tUeXBlSUQgV0tSZW5kZXJPYmplY3RH
ZXRUeXBlSUQoKQotewotICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUmVuZGVy
T2JqZWN0OjpBUElUeXBlKTsKLX0KLQotV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmplY3RDb3B5TmFt
ZShXS1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktp
dDo6dG9Db3BpZWRBUEkoV2ViS2l0Ojp0b0ltcGwocmVuZGVyT2JqZWN0UmVmKS0+bmFtZSgpKTsK
LX0KLQotV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmplY3RDb3B5VGV4dFNuaXBwZXQoV0tSZW5kZXJP
YmplY3RSZWYgcmVuZGVyT2JqZWN0UmVmKQotewotICAgIFdlYktpdDo6V2ViUmVuZGVyT2JqZWN0
KiByZW5kZXJPYmplY3QgPSBXZWJLaXQ6OnRvSW1wbChyZW5kZXJPYmplY3RSZWYpOwotICAgIGlm
ICghcmVuZGVyT2JqZWN0LT50ZXh0U25pcHBldCgpLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4g
V2ViS2l0Ojp0b0NvcGllZEFQSShyZW5kZXJPYmplY3QtPnRleHRTbmlwcGV0KCkpOwotCi0gICAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KLXVuc2lnbmVkIFdLUmVuZGVyT2JqZWN0R2V0VGV4dExlbmd0
aChXS1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktp
dDo6dG9JbXBsKHJlbmRlck9iamVjdFJlZiktPnRleHRMZW5ndGgoKTsKLX0KLQotV0tTdHJpbmdS
ZWYgV0tSZW5kZXJPYmplY3RDb3B5RWxlbWVudFRhZ05hbWUoV0tSZW5kZXJPYmplY3RSZWYgcmVu
ZGVyT2JqZWN0UmVmKQotewotICAgIFdlYktpdDo6V2ViUmVuZGVyT2JqZWN0KiByZW5kZXJPYmpl
Y3QgPSBXZWJLaXQ6OnRvSW1wbChyZW5kZXJPYmplY3RSZWYpOwotICAgIGlmICghcmVuZGVyT2Jq
ZWN0LT5lbGVtZW50VGFnTmFtZSgpLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gV2ViS2l0Ojp0
b0NvcGllZEFQSShyZW5kZXJPYmplY3QtPmVsZW1lbnRUYWdOYW1lKCkpOwotCi0gICAgcmV0dXJu
IG51bGxwdHI7Ci19Ci0KLVdLU3RyaW5nUmVmIFdLUmVuZGVyT2JqZWN0Q29weUVsZW1lbnRJRChX
S1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYpCi17Ci0gICAgV2ViS2l0OjpXZWJSZW5k
ZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IFdlYktpdDo6dG9JbXBsKHJlbmRlck9iamVjdFJlZik7
Ci0gICAgaWYgKCFyZW5kZXJPYmplY3QtPmVsZW1lbnRJRCgpLmlzTnVsbCgpKQotICAgICAgICBy
ZXR1cm4gV2ViS2l0Ojp0b0NvcGllZEFQSShyZW5kZXJPYmplY3QtPmVsZW1lbnRJRCgpKTsKLQot
ICAgIHJldHVybiBudWxscHRyOwotfQotCi1XS0FycmF5UmVmIFdLUmVuZGVyT2JqZWN0R2V0RWxl
bWVudENsYXNzTmFtZXMoV0tSZW5kZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0UmVmKQotewotICAg
IHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6dG9JbXBsKHJlbmRlck9iamVjdFJlZiktPmVs
ZW1lbnRDbGFzc05hbWVzKCkpOwotfQotCi1XS1BvaW50IFdLUmVuZGVyT2JqZWN0R2V0QWJzb2x1
dGVQb3NpdGlvbihXS1JlbmRlck9iamVjdFJlZiByZW5kZXJPYmplY3RSZWYpCi17Ci0gICAgV2Vi
Q29yZTo6SW50UG9pbnQgYWJzb2x1dGVQb3NpdGlvbiA9IFdlYktpdDo6dG9JbXBsKHJlbmRlck9i
amVjdFJlZiktPmFic29sdXRlUG9zaXRpb24oKTsKLSAgICByZXR1cm4gV0tQb2ludE1ha2UoYWJz
b2x1dGVQb3NpdGlvbi54KCksIGFic29sdXRlUG9zaXRpb24ueSgpKTsKLX0KLQotV0tSZWN0IFdL
UmVuZGVyT2JqZWN0R2V0RnJhbWVSZWN0KFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdFJl
ZikKLXsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IGZyYW1lUmVjdCA9IFdlYktpdDo6dG9JbXBsKHJl
bmRlck9iamVjdFJlZiktPmZyYW1lUmVjdCgpOwotICAgIHJldHVybiBXS1JlY3RNYWtlKGZyYW1l
UmVjdC54KCksIGZyYW1lUmVjdC55KCksIGZyYW1lUmVjdC53aWR0aCgpLCBmcmFtZVJlY3QuaGVp
Z2h0KCkpOwotfQotCi1XS0FycmF5UmVmIFdLUmVuZGVyT2JqZWN0R2V0Q2hpbGRyZW4oV0tSZW5k
ZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0UmVmKQotewotICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJ
KFdlYktpdDo6dG9JbXBsKHJlbmRlck9iamVjdFJlZiktPmNoaWxkcmVuKCkpOwotfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLUmVuZGVyT2JqZWN0LmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc1MDM1NTkwZDNlNWM1YTUwZTVjNTcxYTJhMGMxY2E5MmMyZGJkYzYuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDUzICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLUmVuZGVyT2JqZWN0X2gKLSNkZWZpbmUgV0tS
ZW5kZXJPYmplY3RfaAotCi0jaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgotI2luY2x1ZGUgPFdl
YktpdC9XS0dlb21ldHJ5Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0j
ZW5kaWYKLQotV0tfRVhQT1JUIFdLVHlwZUlEIFdLUmVuZGVyT2JqZWN0R2V0VHlwZUlEKHZvaWQp
OwotCi1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmplY3RDb3B5TmFtZShXS1JlbmRl
ck9iamVjdFJlZiByZW5kZXJPYmplY3QpOwotV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLUmVuZGVy
T2JqZWN0Q29weVRleHRTbmlwcGV0KFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdCk7Ci1X
S19FWFBPUlQgdW5zaWduZWQgV0tSZW5kZXJPYmplY3RHZXRUZXh0TGVuZ3RoKFdLUmVuZGVyT2Jq
ZWN0UmVmIHJlbmRlck9iamVjdCk7Ci1XS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tSZW5kZXJPYmpl
Y3RDb3B5RWxlbWVudFRhZ05hbWUoV0tSZW5kZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0KTsKLVdL
X0VYUE9SVCBXS1N0cmluZ1JlZiBXS1JlbmRlck9iamVjdENvcHlFbGVtZW50SUQoV0tSZW5kZXJP
YmplY3RSZWYgcmVuZGVyT2JqZWN0KTsKLVdLX0VYUE9SVCBXS0FycmF5UmVmIFdLUmVuZGVyT2Jq
ZWN0R2V0RWxlbWVudENsYXNzTmFtZXMoV0tSZW5kZXJPYmplY3RSZWYgcmVuZGVyT2JqZWN0KTsK
LQotV0tfRVhQT1JUIFdLUG9pbnQgV0tSZW5kZXJPYmplY3RHZXRBYnNvbHV0ZVBvc2l0aW9uKFdL
UmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdCk7Ci1XS19FWFBPUlQgV0tSZWN0IFdLUmVuZGVy
T2JqZWN0R2V0RnJhbWVSZWN0KFdLUmVuZGVyT2JqZWN0UmVmIHJlbmRlck9iamVjdCk7Ci1XS19F
WFBPUlQgV0tBcnJheVJlZiBXS1JlbmRlck9iamVjdEdldENoaWxkcmVuKFdLUmVuZGVyT2JqZWN0
UmVmIHJlbmRlck9iamVjdCk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNl
bmRpZiAvLyBXS1JlbmRlck9iamVjdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Vc2VyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Vc2VyRGF0YS5jcHAKaW5kZXgg
Y2U5YWM1NGNiNmE2MjhkMjVjOTBkYjhhNTZiZDM2OTY3YzZkYTE2NS4uMWI2ZGJmYWU0MzA4NDdj
M2RlMTBhZmM4MGJlMmM4YjZlZDgyMjQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvVXNlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1VzZXJEYXRhLmNwcApA
QCAtNDcsOCArNDcsNiBAQAogI2luY2x1ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCi0jaW5j
bHVkZSAiV2ViUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJXZWJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlIDx3dGYvQ2hlY2tlZEFyaXRobWV0aWMuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtMjQ4LDM4ICsyNDYsNiBAQCB2b2lkIFVzZXJEYXRhOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBBUEk6Ok9iamVjdCYgb2JqZWN0KQogICAgICAgICBzdGF0aWNfY2FzdDxj
b25zdCBBUEk6OlJlY3QmPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgYnJlYWs7
CiAKLSAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpSZW5kZXJMYXllcjogewotICAgICAgICBh
dXRvJiByZW5kZXJMYXllciA9IHN0YXRpY19jYXN0PGNvbnN0IFdlYlJlbmRlckxheWVyJj4ob2Jq
ZWN0KTsKLQotICAgICAgICBlbmNvZGUoZW5jb2RlciwgcmVuZGVyTGF5ZXIucmVuZGVyZXIoKSk7
Ci0gICAgICAgIGVuY29kZXIgPDwgcmVuZGVyTGF5ZXIuaXNSZWZsZWN0aW9uKCk7Ci0gICAgICAg
IGVuY29kZXIgPDwgcmVuZGVyTGF5ZXIuaXNDbGlwcGluZygpOwotICAgICAgICBlbmNvZGVyIDw8
IHJlbmRlckxheWVyLmlzQ2xpcHBlZCgpOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0
PHVpbnQzMl90PihyZW5kZXJMYXllci5jb21wb3NpdGluZ0xheWVyVHlwZSgpKTsKLSAgICAgICAg
ZW5jb2RlciA8PCByZW5kZXJMYXllci5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7Ci0gICAgICAgIGVu
Y29kZXIgPDwgcmVuZGVyTGF5ZXIuYmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKLSAgICAg
ICAgZW5jb2RlKGVuY29kZXIsIHJlbmRlckxheWVyLm5lZ2F0aXZlWk9yZGVyTGlzdCgpKTsKLSAg
ICAgICAgZW5jb2RlKGVuY29kZXIsIHJlbmRlckxheWVyLm5vcm1hbEZsb3dMaXN0KCkpOwotICAg
ICAgICBlbmNvZGUoZW5jb2RlciwgcmVuZGVyTGF5ZXIucG9zaXRpdmVaT3JkZXJMaXN0KCkpOwot
ICAgICAgICBlbmNvZGUoZW5jb2RlciwgcmVuZGVyTGF5ZXIuZnJhbWVDb250ZW50c0xheWVyKCkp
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpS
ZW5kZXJPYmplY3Q6IHsKLSAgICAgICAgYXV0byYgcmVuZGVyT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
Y29uc3QgV2ViUmVuZGVyT2JqZWN0Jj4ob2JqZWN0KTsKLQotICAgICAgICBlbmNvZGVyIDw8IHJl
bmRlck9iamVjdC5uYW1lKCk7Ci0gICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2JqZWN0LmVsZW1l
bnRUYWdOYW1lKCk7Ci0gICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2JqZWN0LmVsZW1lbnRJRCgp
OwotICAgICAgICBlbmNvZGUoZW5jb2RlciwgcmVuZGVyT2JqZWN0LmVsZW1lbnRDbGFzc05hbWVz
KCkpOwotICAgICAgICBlbmNvZGVyIDw8IHJlbmRlck9iamVjdC5hYnNvbHV0ZVBvc2l0aW9uKCk7
Ci0gICAgICAgIGVuY29kZXIgPDwgcmVuZGVyT2JqZWN0LmZyYW1lUmVjdCgpOwotICAgICAgICBl
bmNvZGVyIDw8IHJlbmRlck9iamVjdC50ZXh0U25pcHBldCgpOwotICAgICAgICBlbmNvZGVyIDw8
IHJlbmRlck9iamVjdC50ZXh0TGVuZ3RoKCk7Ci0gICAgICAgIGVuY29kZShlbmNvZGVyLCByZW5k
ZXJPYmplY3QuY2hpbGRyZW4oKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIGNhc2Ug
QVBJOjpPYmplY3Q6OlR5cGU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTogewogICAgICAgICBhdXRv
JiBzZXJpYWxpemVkU2NyaXB0VmFsdWUgPSBzdGF0aWNfY2FzdDxjb25zdCBBUEk6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSY+KG9iamVjdCk7CiAgICAgICAgIGVuY29kZXIgPDwgc2VyaWFsaXplZFNj
cmlwdFZhbHVlLmRhdGFSZWZlcmVuY2UoKTsKQEAgLTQ2OSw4MyArNDM1LDYgQEAgYm9vbCBVc2Vy
RGF0YTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUmVmUHRyPEFQSTo6T2JqZWN0PiYg
cmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKIAotICAg
IGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OlJlbmRlckxheWVyOiB7Ci0gICAgICAgIFJlZlB0cjxB
UEk6Ok9iamVjdD4gcmVuZGVyZXI7Ci0gICAgICAgIGJvb2wgaXNSZWZsZWN0aW9uOwotICAgICAg
ICBib29sIGlzQ2xpcHBpbmc7Ci0gICAgICAgIGJvb2wgaXNDbGlwcGVkOwotICAgICAgICB1aW50
MzJfdCBjb21wb3NpdGluZ0xheWVyVHlwZUFzVUludDMyOwotICAgICAgICBXZWJDb3JlOjpJbnRS
ZWN0IGFic29sdXRlQm91bmRpbmdCb3g7Ci0gICAgICAgIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1v
cnlFc3RpbWF0ZTsKLSAgICAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiBuZWdhdGl2ZVpPcmRlckxp
c3Q7Ci0gICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbm9ybWFsRmxvd0xpc3Q7Ci0gICAgICAg
IFJlZlB0cjxBUEk6Ok9iamVjdD4gcG9zaXRpdmVaT3JkZXJMaXN0OwotICAgICAgICBSZWZQdHI8
QVBJOjpPYmplY3Q+IGZyYW1lQ29udGVudHNMYXllcjsKLQotICAgICAgICBpZiAoIWRlY29kZShk
ZWNvZGVyLCByZW5kZXJlcikpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlm
IChyZW5kZXJlci0+dHlwZSgpICE9IEFQSTo6T2JqZWN0OjpUeXBlOjpSZW5kZXJPYmplY3QpCi0g
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaXNS
ZWZsZWN0aW9uKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShpc0NsaXBwaW5nKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShpc0NsaXBwZWQpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbXBvc2l0aW5nTGF5ZXJUeXBlQXNV
SW50MzIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGFic29sdXRlQm91bmRpbmdCb3gpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGJhY2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGUoZGVjb2Rlciwg
bmVnYXRpdmVaT3JkZXJMaXN0KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
aWYgKCFkZWNvZGUoZGVjb2Rlciwgbm9ybWFsRmxvd0xpc3QpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBwb3NpdGl2ZVpPcmRlckxpc3Qp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVy
LCBmcmFtZUNvbnRlbnRzTGF5ZXIpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIHJlc3VsdCA9IFdlYlJlbmRlckxheWVyOjpjcmVhdGUoc3RhdGljX3BvaW50ZXJfY2FzdDxX
ZWJSZW5kZXJPYmplY3Q+KHJlbmRlcmVyKSwgaXNSZWZsZWN0aW9uLCBpc0NsaXBwaW5nLCBpc0Ns
aXBwZWQsIHN0YXRpY19jYXN0PFdlYlJlbmRlckxheWVyOjpDb21wb3NpdGluZ0xheWVyVHlwZT4o
Y29tcG9zaXRpbmdMYXllclR5cGVBc1VJbnQzMiksIGFic29sdXRlQm91bmRpbmdCb3gsIGJhY2tp
bmdTdG9yZU1lbW9yeUVzdGltYXRlLCBzdGF0aWNfcG9pbnRlcl9jYXN0PEFQSTo6QXJyYXk+KG5l
Z2F0aXZlWk9yZGVyTGlzdCksIHN0YXRpY19wb2ludGVyX2Nhc3Q8QVBJOjpBcnJheT4obm9ybWFs
Rmxvd0xpc3QpLCBzdGF0aWNfcG9pbnRlcl9jYXN0PEFQSTo6QXJyYXk+KHBvc2l0aXZlWk9yZGVy
TGlzdCksIHN0YXRpY19wb2ludGVyX2Nhc3Q8V2ViUmVuZGVyTGF5ZXI+KGZyYW1lQ29udGVudHNM
YXllcikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBjYXNlIEFQSTo6T2JqZWN0OjpU
eXBlOjpSZW5kZXJPYmplY3Q6IHsKLSAgICAgICAgU3RyaW5nIG5hbWU7Ci0gICAgICAgIFN0cmlu
ZyB0ZXh0U25pcHBldDsKLSAgICAgICAgU3RyaW5nIGVsZW1lbnRUYWdOYW1lOwotICAgICAgICBT
dHJpbmcgZWxlbWVudElEOwotICAgICAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoOwotICAgICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IGVsZW1lbnRDbGFzc05hbWVzOwotICAgICAgICBXZWJDb3JlOjpJ
bnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uOwotICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IGZyYW1l
UmVjdDsKLSAgICAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiBjaGlsZHJlbjsKLQotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKG5hbWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGVsZW1lbnRUYWdOYW1lKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShlbGVtZW50SUQpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBlbGVt
ZW50Q2xhc3NOYW1lcykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoYWJzb2x1dGVQb3NpdGlvbikpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVSZWN0KSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0ZXh0U25pcHBldCkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
dGV4dExlbmd0aCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghZGVj
b2RlKGRlY29kZXIsIGNoaWxkcmVuKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLT50eXBlKCkgIT0gQVBJOjpPYmplY3Q6OlR5cGU6
OkFycmF5KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXN1bHQgPSBXZWJS
ZW5kZXJPYmplY3Q6OmNyZWF0ZShuYW1lLCBlbGVtZW50VGFnTmFtZSwgZWxlbWVudElELCBzdGF0
aWNfcG9pbnRlcl9jYXN0PEFQSTo6QXJyYXk+KGVsZW1lbnRDbGFzc05hbWVzKSwgYWJzb2x1dGVQ
b3NpdGlvbiwgZnJhbWVSZWN0LCB0ZXh0U25pcHBldCwgdGV4dExlbmd0aCwgc3RhdGljX3BvaW50
ZXJfY2FzdDxBUEk6OkFycmF5PihjaGlsZHJlbikpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0K
ICAgICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKICAg
ICAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGFSZWZlcmVuY2U7CiAgICAgICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoZGF0YVJlZmVyZW5jZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJSZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJSZW5kZXJM
YXllci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkYzgyMzJjYTRiNWM2OTA4
MTAxODRkMmE2ZDQxY2UzODEyODkwOTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUmVuZGVyTGF5ZXIuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiV2ViUmVuZGVyTGF5ZXIuaCIKLQotI2luY2x1ZGUgIkFQSUFycmF5
LmgiCi0jaW5jbHVkZSAiQVBJU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViUGFnZS5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyTGF5ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyQmFja2luZy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVy
V2lkZ2V0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdHlsZWRFbGVtZW50Lmg+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1SZWZQdHI8V2ViUmVuZGVyTGF5ZXI+IFdlYlJlbmRlckxheWVyOjpjcmVh
dGUoV2ViUGFnZSogcGFnZSkKLXsKLSAgICBXZWJDb3JlOjpGcmFtZSogbWFpbkZyYW1lID0gcGFn
ZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgaWYgKCFtYWluRnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLmhhc0hUTUxWaWV3
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgV2ViQ29yZTo6UmVuZGVyVmlldyog
Y29udGVudFJlbmRlcmVyID0gbWFpbkZyYW1lLT5jb250ZW50UmVuZGVyZXIoKTsKLSAgICBpZiAo
IWNvbnRlbnRSZW5kZXJlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBXZWJDb3Jl
OjpSZW5kZXJMYXllciogcm9vdExheWVyID0gY29udGVudFJlbmRlcmVyLT5sYXllcigpOwotICAg
IGlmICghcm9vdExheWVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViUmVuZGVyTGF5ZXIocm9vdExheWVyKSk7Ci19Ci0KLVJlZjxXZWJSZW5k
ZXJMYXllcj4gV2ViUmVuZGVyTGF5ZXI6OmNyZWF0ZShSZWZQdHI8V2ViUmVuZGVyT2JqZWN0PiYm
IHJlbmRlcmVyLCBib29sIGlzUmVmbGVjdGlvbiwgYm9vbCBpc0NsaXBwaW5nLCBib29sIGlzQ2xp
cHBlZCwgQ29tcG9zaXRpbmdMYXllclR5cGUgdHlwZSwgV2ViQ29yZTo6SW50UmVjdCBhYnNvbHV0
ZUJvdW5kaW5nQm94LCBkb3VibGUgYmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUsIFJlZlB0cjxB
UEk6OkFycmF5PiYmIG5lZ2F0aXZlWk9yZGVyTGlzdCwgUmVmUHRyPEFQSTo6QXJyYXk+JiYgbm9y
bWFsRmxvd0xpc3QsIFJlZlB0cjxBUEk6OkFycmF5PiYmIHBvc2l0aXZlWk9yZGVyTGlzdCwgUmVm
UHRyPFdlYlJlbmRlckxheWVyPiYmIGZyYW1lQ29udGVudHNMYXllcikKLXsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJSZW5kZXJMYXllcihXVEZNb3ZlKHJlbmRlcmVyKSwgaXNSZWZsZWN0
aW9uLCBpc0NsaXBwaW5nLCBpc0NsaXBwZWQsIHR5cGUsIGFic29sdXRlQm91bmRpbmdCb3gsIGJh
Y2tpbmdTdG9yZU1lbW9yeUVzdGltYXRlLCBXVEZNb3ZlKG5lZ2F0aXZlWk9yZGVyTGlzdCksIFdU
Rk1vdmUobm9ybWFsRmxvd0xpc3QpLCBXVEZNb3ZlKHBvc2l0aXZlWk9yZGVyTGlzdCksIFdURk1v
dmUoZnJhbWVDb250ZW50c0xheWVyKSkpOwotfQotCi1XZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVy
TGF5ZXIoV2ViQ29yZTo6UmVuZGVyTGF5ZXIqIGxheWVyKQotewotICAgIG1fcmVuZGVyZXIgPSBX
ZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZSgmbGF5ZXItPnJlbmRlcmVyKCkpOwotICAgIG1faXNSZWZs
ZWN0aW9uID0gbGF5ZXItPmlzUmVmbGVjdGlvbigpOwotCi0gICAgaWYgKGxheWVyLT5pc0NvbXBv
c2l0ZWQoKSkgewotICAgICAgICBXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcg
PSBsYXllci0+YmFja2luZygpOwotICAgICAgICBtX2lzQ2xpcHBpbmcgPSBiYWNraW5nLT5oYXND
bGlwcGluZ0xheWVyKCk7Ci0gICAgICAgIG1faXNDbGlwcGVkID0gYmFja2luZy0+aGFzQW5jZXN0
b3JDbGlwcGluZ0xheWVycygpOwotICAgICAgICBzd2l0Y2ggKGJhY2tpbmctPmNvbXBvc2l0aW5n
TGF5ZXJUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpOb3JtYWxDb21wb3NpdGluZ0xh
eWVyOgotICAgICAgICAgICAgbV9jb21wb3NpdGluZ0xheWVyVHlwZSA9IE5vcm1hbDsKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6OlRpbGVkQ29tcG9zaXRpbmdMYXll
cjoKLSAgICAgICAgICAgIG1fY29tcG9zaXRpbmdMYXllclR5cGUgPSBUaWxlZDsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1lZGlhQ29tcG9zaXRpbmdMYXllcjoK
LSAgICAgICAgICAgIG1fY29tcG9zaXRpbmdMYXllclR5cGUgPSBNZWRpYTsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRhaW5lckNvbXBvc2l0aW5nTGF5ZXI6
Ci0gICAgICAgICAgICBtX2NvbXBvc2l0aW5nTGF5ZXJUeXBlID0gQ29udGFpbmVyOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBtX2JhY2tpbmdTdG9yZU1lbW9yeUVz
dGltYXRlID0gYmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBtX2lzQ2xpcHBpbmcgPSBmYWxzZTsKLSAgICAgICAgbV9pc0NsaXBwZWQg
PSBmYWxzZTsKLSAgICAgICAgbV9jb21wb3NpdGluZ0xheWVyVHlwZSA9IE5vbmU7Ci0gICAgICAg
IG1fYmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUgPSAwOwotICAgIH0KLQotICAgIG1fYWJzb2x1
dGVCb3VuZGluZ0JveCA9IGxheWVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94KCk7Ci0KLSAgICBhdXRv
IGNyZWF0ZUFycmF5RnJvbUxheWVyTGlzdCA9IFtdIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6TGF5
ZXJMaXN0IGxpc3QpIC0+IFJlZlB0cjxBUEk6OkFycmF5PiB7Ci0gICAgICAgIGlmICghbGlzdC5z
aXplKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgICAgICBWZWN0b3I8UmVm
UHRyPEFQSTo6T2JqZWN0Pj4gbGF5ZXJzOwotICAgICAgICBsYXllcnMucmVzZXJ2ZUluaXRpYWxD
YXBhY2l0eShsaXN0LnNpemUoKSk7Ci0KLSAgICAgICAgZm9yIChhdXRvKiBsYXllciA6IGxpc3Qp
Ci0gICAgICAgICAgICBsYXllcnMudW5jaGVja2VkQXBwZW5kKGFkb3B0UmVmKG5ldyBXZWJSZW5k
ZXJMYXllcihsYXllcikpKTsKLQotICAgICAgICByZXR1cm4gQVBJOjpBcnJheTo6Y3JlYXRlKFdU
Rk1vdmUobGF5ZXJzKSk7Ci0gICAgfTsKLQotICAgIG1fbmVnYXRpdmVaT3JkZXJMaXN0ID0gY3Jl
YXRlQXJyYXlGcm9tTGF5ZXJMaXN0KGxheWVyLT5uZWdhdGl2ZVpPcmRlckxheWVycygpKTsKLSAg
ICBtX25vcm1hbEZsb3dMaXN0ID0gY3JlYXRlQXJyYXlGcm9tTGF5ZXJMaXN0KGxheWVyLT5ub3Jt
YWxGbG93TGF5ZXJzKCkpOwotICAgIG1fcG9zaXRpdmVaT3JkZXJMaXN0ID0gY3JlYXRlQXJyYXlG
cm9tTGF5ZXJMaXN0KGxheWVyLT5wb3NpdGl2ZVpPcmRlckxheWVycygpKTsKLQotICAgIGlmIChp
czxXZWJDb3JlOjpSZW5kZXJXaWRnZXQ+KGxheWVyLT5yZW5kZXJlcigpKSkgewotICAgICAgICBp
ZiAoV2ViQ29yZTo6RG9jdW1lbnQqIGNvbnRlbnREb2N1bWVudCA9IGRvd25jYXN0PFdlYkNvcmU6
OlJlbmRlcldpZGdldD4obGF5ZXItPnJlbmRlcmVyKCkpLmZyYW1lT3duZXJFbGVtZW50KCkuY29u
dGVudERvY3VtZW50KCkpIHsKLSAgICAgICAgICAgIGlmIChXZWJDb3JlOjpSZW5kZXJWaWV3KiB2
aWV3ID0gY29udGVudERvY3VtZW50LT5yZW5kZXJWaWV3KCkpCi0gICAgICAgICAgICAgICAgbV9m
cmFtZUNvbnRlbnRzTGF5ZXIgPSBhZG9wdFJlZihuZXcgV2ViUmVuZGVyTGF5ZXIodmlldy0+bGF5
ZXIoKSkpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1XZWJSZW5kZXJMYXllcjo6V2ViUmVuZGVy
TGF5ZXIoUmVmUHRyPFdlYlJlbmRlck9iamVjdD4mJiByZW5kZXJlciwgYm9vbCBpc1JlZmxlY3Rp
b24sIGJvb2wgaXNDbGlwcGluZywgYm9vbCBpc0NsaXBwZWQsIENvbXBvc2l0aW5nTGF5ZXJUeXBl
IHR5cGUsIFdlYkNvcmU6OkludFJlY3QgYWJzb2x1dGVCb3VuZGluZ0JveCwgZG91YmxlIGJhY2tp
bmdTdG9yZU1lbW9yeUVzdGltYXRlLCBSZWZQdHI8QVBJOjpBcnJheT4mJiBuZWdhdGl2ZVpPcmRl
ckxpc3QsIFJlZlB0cjxBUEk6OkFycmF5PiYmIG5vcm1hbEZsb3dMaXN0LCBSZWZQdHI8QVBJOjpB
cnJheT4mJiBwb3NpdGl2ZVpPcmRlckxpc3QsIFJlZlB0cjxXZWJSZW5kZXJMYXllcj4mJiBmcmFt
ZUNvbnRlbnRzTGF5ZXIpCi0gICAgOiBtX3JlbmRlcmVyKFdURk1vdmUocmVuZGVyZXIpKQotICAg
ICwgbV9pc1JlZmxlY3Rpb24oaXNSZWZsZWN0aW9uKQotICAgICwgbV9pc0NsaXBwaW5nKGlzQ2xp
cHBpbmcpCi0gICAgLCBtX2lzQ2xpcHBlZChpc0NsaXBwZWQpCi0gICAgLCBtX2NvbXBvc2l0aW5n
TGF5ZXJUeXBlKHR5cGUpCi0gICAgLCBtX2Fic29sdXRlQm91bmRpbmdCb3goYWJzb2x1dGVCb3Vu
ZGluZ0JveCkKLSAgICAsIG1fYmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoYmFja2luZ1N0b3Jl
TWVtb3J5RXN0aW1hdGUpCi0gICAgLCBtX25lZ2F0aXZlWk9yZGVyTGlzdChXVEZNb3ZlKG5lZ2F0
aXZlWk9yZGVyTGlzdCkpCi0gICAgLCBtX25vcm1hbEZsb3dMaXN0KFdURk1vdmUobm9ybWFsRmxv
d0xpc3QpKQotICAgICwgbV9wb3NpdGl2ZVpPcmRlckxpc3QoV1RGTW92ZShwb3NpdGl2ZVpPcmRl
ckxpc3QpKQotICAgICwgbV9mcmFtZUNvbnRlbnRzTGF5ZXIoV1RGTW92ZShmcmFtZUNvbnRlbnRz
TGF5ZXIpKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlJlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJSZW5kZXJMYXllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTUwYmE1YWU5
NTM1MGYzOWM4NDVkOTNkODIxMDJiY2UwZWU2ZWIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlJlbmRlckxheWVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw4MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJSZW5kZXJMYXllcl9oCi0jZGVmaW5lIFdlYlJlbmRlckxheWVyX2gKLQotI2luY2x1ZGUgIldl
YlJlbmRlck9iamVjdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBSZW5kZXJMYXll
cjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlBhZ2U7Ci0KLWNsYXNzIFdl
YlJlbmRlckxheWVyIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
UmVuZGVyTGF5ZXI+IHsKLXB1YmxpYzoKLSAgICBlbnVtIENvbXBvc2l0aW5nTGF5ZXJUeXBlIHsg
Tm9uZSwgTm9ybWFsLCBUaWxlZCwgTWVkaWEsIENvbnRhaW5lciB9OwotCi0gICAgc3RhdGljIFJl
ZlB0cjxXZWJSZW5kZXJMYXllcj4gY3JlYXRlKFdlYlBhZ2UqKTsKLSAgICBzdGF0aWMgUmVmPFdl
YlJlbmRlckxheWVyPiBjcmVhdGUoUmVmUHRyPFdlYlJlbmRlck9iamVjdD4mJiByZW5kZXJlciwg
Ym9vbCBpc1JlZmxlY3Rpb24sIGJvb2wgaXNDbGlwcGluZywgYm9vbCBpc0NsaXBwZWQsIENvbXBv
c2l0aW5nTGF5ZXJUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IGFic29sdXRlQm91bmRpbmdCb3gsIGRv
dWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSwgUmVmUHRyPEFQSTo6QXJyYXk+JiYgbmVn
YXRpdmVaT3JkZXJMaXN0LCBSZWZQdHI8QVBJOjpBcnJheT4mJiBub3JtYWxGbG93TGlzdCwgUmVm
UHRyPEFQSTo6QXJyYXk+JiYgcG9zaXRpdmVaT3JkZXJMaXN0LCBSZWZQdHI8V2ViUmVuZGVyTGF5
ZXI+JiYgZnJhbWVDb250ZW50c0xheWVyKTsKLQotICAgIEFQSTo6QXJyYXkqIG5lZ2F0aXZlWk9y
ZGVyTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fbmVnYXRpdmVaT3JkZXJMaXN0LmdldCgpOyB9Ci0g
ICAgQVBJOjpBcnJheSogbm9ybWFsRmxvd0xpc3QoKSBjb25zdCB7IHJldHVybiBtX25vcm1hbEZs
b3dMaXN0LmdldCgpOyB9Ci0gICAgQVBJOjpBcnJheSogcG9zaXRpdmVaT3JkZXJMaXN0KCkgY29u
c3QgeyByZXR1cm4gbV9wb3NpdGl2ZVpPcmRlckxpc3QuZ2V0KCk7IH0KLSAgICBXZWJSZW5kZXJM
YXllciogZnJhbWVDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUNvbnRlbnRz
TGF5ZXIuZ2V0KCk7IH0KLQotICAgIFdlYlJlbmRlck9iamVjdCogcmVuZGVyZXIoKSBjb25zdCB7
IHJldHVybiBtX3JlbmRlcmVyLmdldCgpOyB9Ci0gICAgYm9vbCBpc1JlZmxlY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX2lzUmVmbGVjdGlvbjsgfQotICAgIGJvb2wgaXNDbGlwcGluZygpIGNvbnN0
IHsgcmV0dXJuIG1faXNDbGlwcGluZzsgfQotICAgIGJvb2wgaXNDbGlwcGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0NsaXBwZWQ7IH0KLSAgICBDb21wb3NpdGluZ0xheWVyVHlwZSBjb21wb3NpdGlu
Z0xheWVyVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcG9zaXRpbmdMYXllclR5cGU7IH0gCi0g
ICAgV2ViQ29yZTo6SW50UmVjdCBhYnNvbHV0ZUJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4g
bV9hYnNvbHV0ZUJvdW5kaW5nQm94OyB9Ci0gICAgZG91YmxlIGJhY2tpbmdTdG9yZU1lbW9yeUVz
dGltYXRlKCkgY29uc3QgeyByZXR1cm4gbV9iYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZTsgfQot
Ci1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYlJlbmRlckxheWVyKFdlYkNvcmU6OlJlbmRlckxh
eWVyKik7Ci0gICAgV2ViUmVuZGVyTGF5ZXIoUmVmUHRyPFdlYlJlbmRlck9iamVjdD4mJiByZW5k
ZXJlciwgYm9vbCBpc1JlZmxlY3Rpb24sIGJvb2wgaXNDbGlwcGluZywgYm9vbCBpc0NsaXBwZWQs
IENvbXBvc2l0aW5nTGF5ZXJUeXBlLCBXZWJDb3JlOjpJbnRSZWN0IGFic29sdXRlQm91bmRpbmdC
b3gsIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSwgUmVmUHRyPEFQSTo6QXJyYXk+
JiYgbmVnYXRpdmVaT3JkZXJMaXN0LCBSZWZQdHI8QVBJOjpBcnJheT4mJiBub3JtYWxGbG93TGlz
dCwgUmVmUHRyPEFQSTo6QXJyYXk+JiYgcG9zaXRpdmVaT3JkZXJMaXN0LCBSZWZQdHI8V2ViUmVu
ZGVyTGF5ZXI+JiYgZnJhbWVDb250ZW50c0xheWVyKTsKLQotICAgIFJlZlB0cjxXZWJSZW5kZXJP
YmplY3Q+IG1fcmVuZGVyZXI7Ci0gICAgYm9vbCBtX2lzUmVmbGVjdGlvbjsKLSAgICBib29sIG1f
aXNDbGlwcGluZzsKLSAgICBib29sIG1faXNDbGlwcGVkOwotICAgIENvbXBvc2l0aW5nTGF5ZXJU
eXBlIG1fY29tcG9zaXRpbmdMYXllclR5cGU7Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBtX2Fic29s
dXRlQm91bmRpbmdCb3g7Ci0gICAgZG91YmxlIG1fYmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGU7
Ci0KLSAgICBSZWZQdHI8QVBJOjpBcnJheT4gbV9uZWdhdGl2ZVpPcmRlckxpc3Q7Ci0gICAgUmVm
UHRyPEFQSTo6QXJyYXk+IG1fbm9ybWFsRmxvd0xpc3Q7Ci0gICAgUmVmUHRyPEFQSTo6QXJyYXk+
IG1fcG9zaXRpdmVaT3JkZXJMaXN0OwotCi0gICAgUmVmUHRyPFdlYlJlbmRlckxheWVyPiBtX2Zy
YW1lQ29udGVudHNMYXllcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gV2ViUmVuZGVyTGF5ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlJlbmRlck9iamVjdC5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkYTRjNjk3ZWJmZjc4YzlhNWExMmNi
ZDNjZTVkNzNjNzhhYjRjODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDE0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIldlYlJlbmRlck9iamVjdC5oIgotCi0jaW5jbHVkZSAiQVBJQXJyYXkuaCIK
LSNpbmNsdWRlICJBUElTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0jaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KLSNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJJbmxpbmUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRleHQuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlclZpZXcuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1SZWZQdHI8
V2ViUmVuZGVyT2JqZWN0PiBXZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZShXZWJQYWdlKiBwYWdlKQot
ewotICAgIEZyYW1lKiBtYWluRnJhbWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIW1h
aW5GcmFtZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoIW1haW5GcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkuaGFzSFRNTFZpZXcoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KLSAgICBSZW5kZXJWaWV3KiBjb250ZW50UmVuZGVyZXIgPSBtYWluRnJhbWUtPmNvbnRlbnRS
ZW5kZXJlcigpOwotICAgIGlmICghY29udGVudFJlbmRlcmVyKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViUmVuZGVyT2JqZWN0KGNvbnRlbnRS
ZW5kZXJlciwgdHJ1ZSkpOwotfQotCi1SZWY8V2ViUmVuZGVyT2JqZWN0PiBXZWJSZW5kZXJPYmpl
Y3Q6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudFRhZ05h
bWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBSZWZQdHI8QVBJOjpBcnJheT4mJiBlbGVtZW50
Q2xhc3NOYW1lcywgV2ViQ29yZTo6SW50UG9pbnQgYWJzb2x1dGVQb3NpdGlvbiwgV2ViQ29yZTo6
SW50UmVjdCBmcmFtZVJlY3QsIGNvbnN0IFN0cmluZyYgdGV4dFNuaXBwZXQsIHVuc2lnbmVkIHRl
eHRMZW5ndGgsIFJlZlB0cjxBUEk6OkFycmF5PiYmIGNoaWxkcmVuKQotewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlJlbmRlck9iamVjdChuYW1lLCBlbGVtZW50VGFnTmFtZSwgZWxlbWVu
dElELCBXVEZNb3ZlKGVsZW1lbnRDbGFzc05hbWVzKSwgYWJzb2x1dGVQb3NpdGlvbiwgZnJhbWVS
ZWN0LCB0ZXh0U25pcHBldCwgdGV4dExlbmd0aCwgV1RGTW92ZShjaGlsZHJlbikpKTsKLX0KLQot
V2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QoUmVuZGVyT2JqZWN0KiByZW5kZXJlciwg
Ym9vbCBzaG91bGRJbmNsdWRlRGVzY2VuZGFudHMpCi17Ci0gICAgbV9uYW1lID0gcmVuZGVyZXIt
PnJlbmRlck5hbWUoKTsKLSAgICBtX3RleHRMZW5ndGggPSAwOwotCi0gICAgaWYgKE5vZGUqIG5v
ZGUgPSByZW5kZXJlci0+bm9kZSgpKSB7Ci0gICAgICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkp
IHsKLSAgICAgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9k
ZSk7Ci0gICAgICAgICAgICBtX2VsZW1lbnRUYWdOYW1lID0gZWxlbWVudC50YWdOYW1lKCk7Ci0g
ICAgICAgICAgICBtX2VsZW1lbnRJRCA9IGVsZW1lbnQuZ2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKGVsZW1lbnQuaXNTdHlsZWRFbGVtZW50KCkgJiYgZWxl
bWVudC5oYXNDbGFzcygpKSB7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFJlZlB0cjxBUEk6Ok9i
amVjdD4+IGNsYXNzTmFtZXM7Ci0gICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGVsZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKSk7Ci0KLSAgICAgICAgICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGVsZW1lbnQuY2xhc3NOYW1lcygpLnNpemUo
KTsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lcy5hcHBlbmQo
QVBJOjpTdHJpbmc6OmNyZWF0ZShlbGVtZW50LmNsYXNzTmFtZXMoKVtpXSkpOwotCi0gICAgICAg
ICAgICAgICAgbV9lbGVtZW50Q2xhc3NOYW1lcyA9IEFQSTo6QXJyYXk6OmNyZWF0ZShXVEZNb3Zl
KGNsYXNzTmFtZXMpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGlmIChu
b2RlLT5pc1RleHROb2RlKCkpIHsKLSAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IG5vZGUtPm5v
ZGVWYWx1ZSgpOwotICAgICAgICAgICAgbV90ZXh0TGVuZ3RoID0gdmFsdWUubGVuZ3RoKCk7Ci0K
LSAgICAgICAgICAgIGNvbnN0IGludCBtYXhTbmlwcGV0TGVuZ3RoID0gNDA7Ci0gICAgICAgICAg
ICBpZiAodmFsdWUubGVuZ3RoKCkgPiBtYXhTbmlwcGV0TGVuZ3RoKQotICAgICAgICAgICAgICAg
IG1fdGV4dFNuaXBwZXQgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgbWF4U25pcHBldExlbmd0aCk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV90ZXh0U25pcHBldCA9IHZhbHVlOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgLy8gRklYTUU6IGJyb2tlbiB3aXRoIHRyYW5zZm9ybXMK
LSAgICBtX2Fic29sdXRlUG9zaXRpb24gPSBmbG9vcmVkSW50UG9pbnQocmVuZGVyZXItPmxvY2Fs
VG9BYnNvbHV0ZSgpKTsKLQotICAgIGlmIChpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikpCi0gICAg
ICAgIG1fZnJhbWVSZWN0ID0gc25hcHBlZEludFJlY3QoZG93bmNhc3Q8UmVuZGVyQm94PigqcmVu
ZGVyZXIpLmZyYW1lUmVjdCgpKTsKLSAgICBlbHNlIGlmIChpczxSZW5kZXJUZXh0PigqcmVuZGVy
ZXIpKSB7Ci0gICAgICAgIG1fZnJhbWVSZWN0ID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRl
cmVyKS5saW5lc0JvdW5kaW5nQm94KCk7Ci0gICAgICAgIG1fZnJhbWVSZWN0LnNldExvY2F0aW9u
KGRvd25jYXN0PFJlbmRlclRleHQ+KCpyZW5kZXJlcikuZmlyc3RSdW5Mb2NhdGlvbigpKTsKLSAg
ICB9IGVsc2UgaWYgKGlzPFJlbmRlcklubGluZT4oKnJlbmRlcmVyKSkKLSAgICAgICAgbV9mcmFt
ZVJlY3QgPSBJbnRSZWN0KGRvd25jYXN0PFJlbmRlcklubGluZT4oKnJlbmRlcmVyKS5ib3JkZXJC
b3VuZGluZ0JveCgpKTsKLQotICAgIGlmICghc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBWZWN0b3I8UmVmUHRyPEFQSTo6T2JqZWN0Pj4gY2hpbGRyZW47
Ci0KLSAgICBmb3IgKGF1dG8qIGNvcmVDaGlsZCA9IHJlbmRlcmVyLT5maXJzdENoaWxkU2xvdygp
OyBjb3JlQ2hpbGQ7IGNvcmVDaGlsZCA9IGNvcmVDaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAg
ICAgY2hpbGRyZW4uYXBwZW5kKGFkb3B0UmVmKCpuZXcgV2ViUmVuZGVyT2JqZWN0KGNvcmVDaGls
ZCwgc2hvdWxkSW5jbHVkZURlc2NlbmRhbnRzKSkpOwotCi0gICAgaWYgKGlzPFJlbmRlcldpZGdl
dD4oKnJlbmRlcmVyKSkgewotICAgICAgICBhdXRvKiB3aWRnZXQgPSBkb3duY2FzdDxSZW5kZXJX
aWRnZXQ+KCpyZW5kZXJlcikud2lkZ2V0KCk7Ci0gICAgICAgIGlmIChpczxGcmFtZVZpZXc+KHdp
ZGdldCkpIHsKLSAgICAgICAgICAgIGlmIChhdXRvKiBjb3JlQ29udGVudFJlbmRlcmVyID0gZG93
bmNhc3Q8RnJhbWVWaWV3Pigqd2lkZ2V0KS5mcmFtZSgpLmNvbnRlbnRSZW5kZXJlcigpKQotICAg
ICAgICAgICAgICAgIGNoaWxkcmVuLmFwcGVuZChhZG9wdFJlZigqbmV3IFdlYlJlbmRlck9iamVj
dChjb3JlQ29udGVudFJlbmRlcmVyLCBzaG91bGRJbmNsdWRlRGVzY2VuZGFudHMpKSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBtX2NoaWxkcmVuID0gQVBJOjpBcnJheTo6Y3JlYXRlKFdURk1v
dmUoY2hpbGRyZW4pKTsKLX0KLQotV2ViUmVuZGVyT2JqZWN0OjpXZWJSZW5kZXJPYmplY3QoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRUYWdOYW1lLCBjb25zdCBTdHJp
bmcmIGVsZW1lbnRJRCwgUmVmUHRyPEFQSTo6QXJyYXk+JiYgZWxlbWVudENsYXNzTmFtZXMsIFdl
YkNvcmU6OkludFBvaW50IGFic29sdXRlUG9zaXRpb24sIFdlYkNvcmU6OkludFJlY3QgZnJhbWVS
ZWN0LCBjb25zdCBTdHJpbmcmIHRleHRTbmlwcGV0LCB1bnNpZ25lZCB0ZXh0TGVuZ3RoLCBSZWZQ
dHI8QVBJOjpBcnJheT4mJiBjaGlsZHJlbikKLSAgICA6IG1fY2hpbGRyZW4oV1RGTW92ZShjaGls
ZHJlbikpCi0gICAgLCBtX25hbWUobmFtZSkKLSAgICAsIG1fZWxlbWVudFRhZ05hbWUoZWxlbWVu
dFRhZ05hbWUpCi0gICAgLCBtX2VsZW1lbnRJRChlbGVtZW50SUQpCi0gICAgLCBtX3RleHRTbmlw
cGV0KHRleHRTbmlwcGV0KQotICAgICwgbV9lbGVtZW50Q2xhc3NOYW1lcyhXVEZNb3ZlKGVsZW1l
bnRDbGFzc05hbWVzKSkKLSAgICAsIG1fYWJzb2x1dGVQb3NpdGlvbihhYnNvbHV0ZVBvc2l0aW9u
KQotICAgICwgbV9mcmFtZVJlY3QoZnJhbWVSZWN0KQotICAgICwgbV90ZXh0TGVuZ3RoKHRleHRM
ZW5ndGgpCi17Ci19Ci0KLVdlYlJlbmRlck9iamVjdDo6fldlYlJlbmRlck9iamVjdCgpCi17Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJSZW5kZXJPYmpl
Y3QuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODUyMmRhYzg4NDQyN2I1ODc1YTlk
N2FjZDRkYzNiNTA2NGY4ODczNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJSZW5kZXJPYmplY3QuaAorKysgL2Rl
di9udWxsCkBAIC0xLDkwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlJlbmRlck9i
amVjdF9oCi0jZGVmaW5lIFdlYlJlbmRlck9iamVjdF9oCi0KLSNpbmNsdWRlICJBUElPYmplY3Qu
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBBUEkgewotY2xhc3Mg
QXJyYXk7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBSZW5kZXJPYmplY3Q7
Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdlOwotCi1jbGFzcyBXZWJS
ZW5kZXJPYmplY3QgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpS
ZW5kZXJPYmplY3Q+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPFdlYlJlbmRlck9iamVj
dD4gY3JlYXRlKFdlYlBhZ2UqKTsKLSAgICBzdGF0aWMgUmVmPFdlYlJlbmRlck9iamVjdD4gY3Jl
YXRlKFdlYkNvcmU6OlJlbmRlck9iamVjdCogcmVuZGVyZXIpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJSZW5kZXJPYmplY3QocmVuZGVyZXIsIGZhbHNlKSk7Ci0gICAg
fQotCi0gICAgc3RhdGljIFJlZjxXZWJSZW5kZXJPYmplY3Q+IGNyZWF0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudFRhZ05hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVu
dElELCBSZWZQdHI8QVBJOjpBcnJheT4mJiBlbGVtZW50Q2xhc3NOYW1lcywgV2ViQ29yZTo6SW50
UG9pbnQgYWJzb2x1dGVQb3NpdGlvbiwgV2ViQ29yZTo6SW50UmVjdCBmcmFtZVJlY3QsIGNvbnN0
IFN0cmluZyYgdGV4dFNuaXBwZXQsIHVuc2lnbmVkIHRleHRMZW5ndGgsIFJlZlB0cjxBUEk6OkFy
cmF5PiYmIGNoaWxkcmVuKTsKLQotICAgIHZpcnR1YWwgfldlYlJlbmRlck9iamVjdCgpOwotCi0g
ICAgQVBJOjpBcnJheSogY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgp
OyB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
LQotICAgIC8vIE9ubHkgbm9uLWVtcHR5IGZvciBSZW5kZXJUZXh0IG9iamVjdHMuCi0gICAgY29u
c3QgU3RyaW5nJiB0ZXh0U25pcHBldCgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFNuaXBwZXQ7IH0K
LSAgICB1bnNpZ25lZCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0TGVuZ3RoOyB9
Ci0KLSAgICBjb25zdCBTdHJpbmcmIGVsZW1lbnRUYWdOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9l
bGVtZW50VGFnTmFtZTsgfQotICAgIGNvbnN0IFN0cmluZyYgZWxlbWVudElEKCkgY29uc3QgeyBy
ZXR1cm4gbV9lbGVtZW50SUQ7IH0KLSAgICBBUEk6OkFycmF5KiBlbGVtZW50Q2xhc3NOYW1lcygp
IGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudENsYXNzTmFtZXMuZ2V0KCk7IH0KLSAgICBXZWJDb3Jl
OjpJbnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZVBv
c2l0aW9uOyB9Ci0gICAgV2ViQ29yZTo6SW50UmVjdCBmcmFtZVJlY3QoKSBjb25zdCB7IHJldHVy
biBtX2ZyYW1lUmVjdDsgfQotCi1wcml2YXRlOgotICAgIFdlYlJlbmRlck9iamVjdChXZWJDb3Jl
OjpSZW5kZXJPYmplY3QqLCBib29sIHNob3VsZEluY2x1ZGVEZXNjZW5kYW50cyk7Ci0gICAgV2Vi
UmVuZGVyT2JqZWN0KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50VGFn
TmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIFJlZlB0cjxBUEk6OkFycmF5PiYmIGVsZW1l
bnRDbGFzc05hbWVzLCBXZWJDb3JlOjpJbnRQb2ludCBhYnNvbHV0ZVBvc2l0aW9uLCBXZWJDb3Jl
OjpJbnRSZWN0IGZyYW1lUmVjdCwgY29uc3QgU3RyaW5nJiB0ZXh0U25pcHBldCwgdW5zaWduZWQg
dGV4dExlbmd0aCwgUmVmUHRyPEFQSTo6QXJyYXk+JiYgY2hpbGRyZW4pOwotCi0gICAgUmVmUHRy
PEFQSTo6QXJyYXk+IG1fY2hpbGRyZW47Ci0KLSAgICBTdHJpbmcgbV9uYW1lOwotICAgIFN0cmlu
ZyBtX2VsZW1lbnRUYWdOYW1lOwotICAgIFN0cmluZyBtX2VsZW1lbnRJRDsKLSAgICBTdHJpbmcg
bV90ZXh0U25pcHBldDsKLSAgICBSZWZQdHI8QVBJOjpBcnJheT4gbV9lbGVtZW50Q2xhc3NOYW1l
czsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBtX2Fic29sdXRlUG9zaXRpb247Ci0gICAgV2ViQ29y
ZTo6SW50UmVjdCBtX2ZyYW1lUmVjdDsKLSAgICB1bnNpZ25lZCBtX3RleHRMZW5ndGg7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlJlbmRlck9iamVjdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAppbmRleCA1ZDYyMGIxYWQwMzkyNGIzZmZkODFkOTUxMDVkNGJmMTQzNDFkOWQ0Li42
MmM1NzRiNDc2MTM4MTE4MjNlMTFlYmQzMDY2YTE4NjZkNDU5N2UyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAg
LTIwNiw4ICsyMDYsNiBAQCBTaGFyZWQvV2ViUG9wdXBJdGVtLmNwcAogU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmYXVsdFZhbHVlcy5jcHAKIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCi1TaGFyZWQvV2ViUmVuZGVy
TGF5ZXIuY3BwCi1TaGFyZWQvV2ViUmVuZGVyT2JqZWN0LmNwcAogU2hhcmVkL1dlYlRvdWNoRXZl
bnQuY3BwIEBuby11bmlmeQogU2hhcmVkL1dlYlVzZXJDb250ZW50Q29udHJvbGxlckRhdGFUeXBl
cy5jcHAKIFNoYXJlZC9XZWJXaGVlbEV2ZW50LmNwcCBAbm8tdW5pZnkKQEAgLTI0MCw4ICsyMzgs
NiBAQCBTaGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuY3BwCiBTaGFyZWQvQVBJL2MvV0tNdXRh
YmxlRGljdGlvbmFyeS5jcHAKIFNoYXJlZC9BUEkvYy9XS051bWJlci5jcHAKIFNoYXJlZC9BUEkv
Yy9XS1BsdWdpbkluZm9ybWF0aW9uLmNwcAotU2hhcmVkL0FQSS9jL1dLUmVuZGVyTGF5ZXIuY3Bw
Ci1TaGFyZWQvQVBJL2MvV0tSZW5kZXJPYmplY3QuY3BwCiBTaGFyZWQvQVBJL2MvV0tTZWN1cml0
eU9yaWdpblJlZi5jcHAKIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAK
IFNoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKaW5kZXggMTg0YWUxNGE5ODQwZThmNTE5MGY5MzYyZWFlNzc2ZjBkNTk3MmVh
OS4uZGI0M2RiNDVjMmQwNTMxMGUxMzFkYzRjYmI3ZDE0NzBmYjUxZTcyMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTEwNSw4ICsxMDUsNiBAQCBjbGFz
cyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcmVmZXJlbmNlczsKIGNsYXNzIFdlYlByb2Nlc3NQ
b29sOwogY2xhc3MgV2ViUHJvdGVjdGlvblNwYWNlOwotY2xhc3MgV2ViUmVuZGVyTGF5ZXI7Ci1j
bGFzcyBXZWJSZW5kZXJPYmplY3Q7CiBjbGFzcyBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
YWdlcjsKIGNsYXNzIFdlYlRleHRDaGVja2VyOwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyUHJveHk7CkBAIC0xNTYsOCArMTU0LDYgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYsIEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24pCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tQYWdlUmVmLCBXZWJQYWdlUHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQcmVmZXJl
bmNlc1JlZiwgV2ViUHJlZmVyZW5jZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tQcm90ZWN0aW9u
U3BhY2VSZWYsIFdlYlByb3RlY3Rpb25TcGFjZSkKLVdLX0FERF9BUElfTUFQUElORyhXS1JlbmRl
ckxheWVyUmVmLCBXZWJSZW5kZXJMYXllcikKLVdLX0FERF9BUElfTUFQUElORyhXS1JlbmRlck9i
amVjdFJlZiwgV2ViUmVuZGVyT2JqZWN0KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbmFnZXJSZWYsIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2Vy
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLU2Vzc2lvblN0YXRlUmVmLCBBUEk6OlNlc3Npb25TdGF0
ZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1RleHRDaGVja2VyUmVmLCBXZWJUZXh0Q2hlY2tlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IGNmNGY5ZDcyMWMxOWQ2OGQxZDBlYWI1ODQxZTMyYTU5YmZjZWIwYTYuLjQyY2ZmMGE4MmJlODM5
MmI5Mjg0MzAzOTViMDFlMWY1ZWRlYWY2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODM4LDggKzgzOCw2IEBACiAJCTM3NDk0MjFE
MURGMUZBQjkwMDMzQzE5RiAvKiBXS1dlYlByb2Nlc3NQbHVnSW5SYW5nZUhhbmRsZUludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzQ5NDIx
QzFERjFGQUI5MDAzM0MxOUYgLyogV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGVJbnRlcm5h
bC5oICovOyB9OwogCQkzNzU0RDU0NTFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzU0RDU0
NDFCM0EyOUZEMDAzQTRDN0YgLyogTlNJbnZvY2F0aW9uU1BJLmggKi87IH07CiAJCTM3NUUwRTE0
MUQ2NjQzMjcwMEVGRUMyQyAvKiBXS05TTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzVFMEUxMjFENjY0MzI3MDBFRkVDMkMgLyogV0tOU051
bWJlci5oICovOyB9OwotCQkzNzYwODgxRjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzYw
ODgxRDE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggKi87IH07Ci0JCTM3NjA4
ODIzMTUwNDE0RjcwMEZDODJDNyAvKiBXS1JlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc2MDg4MjExNTA0MTRGNzAwRkM4MkM3IC8q
IFdLUmVuZGVyT2JqZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMzc2MzExRkQxQTNGQjVGNzAwNUEyRTUxIC8qIF9XS1NhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzYzMTFGODFBM0ZCMzBCMDA1QTJFNTEgLyogX1dLU2FtZURvY3VtZW50TmF2aWdhdGlv
blR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkzNzYzMTFGRTFBM0ZCNjAwMDA1QTJFNTEgLyogX1dLU2FtZURvY3VtZW50TmF2aWdhdGlvblR5
cGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzc2MzExRkExQTNGQjM4QjAwNUEyRTUxIC8qIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25U
eXBlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMzc2NkY5RUUxODlBMTI0MTAwM0NGMTlCIC8qIEphdmFT
Y3JpcHRDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQTFDN0RFMTAwRTg0NkUwMDc4REVCQyAvKiBKYXZhU2NyaXB0Q29yZS5m
cmFtZXdvcmsgKi87IH07CkBAIC04NTgsOCArODU2LDYgQEAKIAkJMzc4RTFBNDAxODFFREEwMTAw
MzEwMDdBIC8qIFdLT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzNzhFMUEzRjE4MUVEQTAxMDAzMTAwN0EgLyogV0tPYmplY3QuaCAqLzsgfTsK
IAkJMzc4RTFBNEExODIwOENENjAwMzEwMDdBIC8qIFdLTlNTdHJpbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3OEUxQTQ4MTgyMDhDRDYwMDMxMDA3
QSAvKiBXS05TU3RyaW5nLmggKi87IH07CiAJCTM3OEUxQTRFMTgyMDhENzAwMDMxMDA3QSAvKiBX
S05TVVJMLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
NzhFMUE0QzE4MjA4RDcwMDAzMTAwN0EgLyogV0tOU1VSTC5oICovOyB9OwotCQkzNzk0ODQwNDE1
MEMzNTA2MDBFNTJDRTkgLyogV2ViUmVuZGVyTGF5ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3OTQ4NDAyMTUwQzM1MDYwMEU1MkNFOSAvKiBXZWJS
ZW5kZXJMYXllci5oICovOyB9OwotCQkzNzk0ODQwOTE1MEM0Qjk3MDBFNTJDRTkgLyogV0tSZW5k
ZXJMYXllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Mzc5NDg0MDcxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzk1Nzg5QzE4QUQ0RjE5MDBC
OUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc5NTc4OUIxOEFENEYxMTAw
QjlFRDJFIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzlBODczNjE4QkJG
QTQzMDA1ODhBRjIgLyogX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzc5QTg3MzUxOEJCRkE0MzAw
NTg4QUYyIC8qIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJMzc5
QTg3M0ExOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDM3OUE4NzM4MThCQkZFMEYwMDU4OEFG
MiAvKiBfV0tFbGVtZW50QWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTMzMTksMTAgKzMzMTUsNiBAQAogCQkzNzVFMEUxMTFENjY0MzI3
MDBFRkVDMkMgLyogV0tOU051bWJlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLTlNOdW1iZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3
NUUwRTEyMUQ2NjQzMjcwMEVGRUMyQyAvKiBXS05TTnVtYmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLTlNOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzc1RkI0NzMxODgzNDE1NjAwQkUzNEQ0IC8qIEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBh
dGggPSAiSW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzNzYw
ODgxQzE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlbmRlck9iamVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTM3NjA4ODFEMTUwNDEzRTkwMEZDODJDNyAvKiBXZWJSZW5kZXJP
YmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUmVuZGVyT2JqZWN0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM3NjA4ODIwMTUwNDE0RjcwMEZDODJD
NyAvKiBXS1JlbmRlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXS1JlbmRlck9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM3
NjA4ODIxMTUwNDE0RjcwMEZDODJDNyAvKiBXS1JlbmRlck9iamVjdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1JlbmRlck9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzYzMTFGODFBM0ZCMzBCMDA1QTJFNTEgLyogX1dLU2FtZURvY3VtZW50TmF2
aWdhdGlvblR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLU2FtZURv
Y3VtZW50TmF2aWdhdGlvblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzc2
MzExRkExQTNGQjM4QjAwNUEyRTUxIC8qIF9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLU2FtZURvY3VtZW50
TmF2aWdhdGlvblR5cGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
NzY5MDc5ODE4RjMxQ0IyMDAxREZGMDQgLyogQVBJSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQVBJSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuaDsgcGF0aCA9IEFQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzM0MSwxMCArMzMzMyw2IEBACiAJCTM3OEUx
QTQ4MTgyMDhDRDYwMDMxMDA3QSAvKiBXS05TU3RyaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLTlNTdHJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Mzc4RTFBNEIxODIwOEQ3MDAwMzEwMDdBIC8qIFdLTlNVUkwubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS05TVVJMLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzNzhFMUE0QzE4MjA4RDcwMDAzMTAwN0EgLyogV0tOU1VSTC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS05TVVJMLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTM3OTQ4NDAxMTUwQzM1MDYwMEU1MkNFOSAvKiBXZWJSZW5kZXJMYXllci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJSZW5kZXJMYXllci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTM3OTQ4NDAyMTUwQzM1MDYwMEU1MkNFOSAvKiBX
ZWJSZW5kZXJMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJSZW5k
ZXJMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzNzk0ODQwNjE1MEM0Qjk2
MDBFNTJDRTkgLyogV0tSZW5kZXJMYXllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS1JlbmRlckxheWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMzc5NDg0MDcxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVuZGVyTGF5ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tSZW5kZXJMYXllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzNzk1Nzg5QjE4QUQ0RjExMDBCOUVEMkUgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRm9ybURlbGVnYXRlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5Gb3JtRGVsZWdhdGVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTM3OUE4NzM1MThCQkZBNDMwMDU4OEFGMiAvKiBfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzc5QTg3MzcxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tFbGVtZW50QWN0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjE3MywxMCArNjE2MSw2IEBACiAJCQkJ
QkMzMDY4MjMxMjVBNkI5NDAwRTcxMjc4IC8qIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwICovLAogCQkJCUJDMzA2ODIyMTI1QTZCOTQwMEU3MTI3OCAvKiBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJNDY3RTQzRTcyMjQzRkY2RDAwQjEzOTI0IC8qIFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzLmggKi8sCi0JCQkJMzc5NDg0MDExNTBDMzUwNjAwRTUy
Q0U5IC8qIFdlYlJlbmRlckxheWVyLmNwcCAqLywKLQkJCQkzNzk0ODQwMjE1MEMzNTA2MDBFNTJD
RTkgLyogV2ViUmVuZGVyTGF5ZXIuaCAqLywKLQkJCQkzNzYwODgxQzE1MDQxM0U5MDBGQzgyQzcg
LyogV2ViUmVuZGVyT2JqZWN0LmNwcCAqLywKLQkJCQkzNzYwODgxRDE1MDQxM0U5MDBGQzgyQzcg
LyogV2ViUmVuZGVyT2JqZWN0LmggKi8sCiAJCQkJNUM4REQzN0YxRkU0NTE5MjAwRjJBNTU2IC8q
IFdlYnNpdGVBdXRvcGxheVBvbGljeS5oICovLAogCQkJCTVDOEREMzgxMUZFNDU1Q0EwMEYyQTU1
NiAvKiBXZWJzaXRlQXV0b3BsYXlRdWlyay5oICovLAogCQkJCTUxMUY3RDNGMUVCMUJDRUUwMEU0
N0I4MyAvKiBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5jcHAgKi8sCkBAIC05OTY5LDEwICs5
OTUzLDYgQEAKIAkJCQlBNUVGRDM4QjE2QjBFODhDMDBCMkYwRTggLyogV0tQYWdlVmlzaWJpbGl0
eVR5cGVzLmggKi8sCiAJCQkJN0MxMzVBQTYxNzNCMEJDQTAwNTg2QUUyIC8qIFdLUGx1Z2luSW5m
b3JtYXRpb24uY3BwICovLAogCQkJCTdDMTM1QUE3MTczQjBCQ0EwMDU4NkFFMiAvKiBXS1BsdWdp
bkluZm9ybWF0aW9uLmggKi8sCi0JCQkJMzc5NDg0MDYxNTBDNEI5NjAwRTUyQ0U5IC8qIFdLUmVu
ZGVyTGF5ZXIuY3BwICovLAotCQkJCTM3OTQ4NDA3MTUwQzRCOTYwMEU1MkNFOSAvKiBXS1JlbmRl
ckxheWVyLmggKi8sCi0JCQkJMzc2MDg4MjAxNTA0MTRGNzAwRkM4MkM3IC8qIFdLUmVuZGVyT2Jq
ZWN0LmNwcCAqLywKLQkJCQkzNzYwODgyMTE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5kZXJPYmpl
Y3QuaCAqLywKIAkJCQk1MUNEMUM1OTFCMzQ5M0E5MDAxNDJDQTUgLyogV0tTZWN1cml0eU9yaWdp
blJlZi5jcHAgKi8sCiAJCQkJNTFDRDFDNUExQjM0OTNBOTAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlP
cmlnaW5SZWYuaCAqLywKIAkJCQlCQzQwNzVFNzEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwICovLApAQCAtMTE0MTEsOCArMTEzOTEsNiBAQAogCQkJCTFBMUUw
OTM0MTg4NjFEMzgwMEQyREM0OSAvKiBXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxMkY1ODlEMTJBODgzODgwMDYyOTUzMCAvKiBXZWJQcm90ZWN0aW9uU3Bh
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MUNDQ0E2MjMxNDg1QUEwMEI2NTlCOSAvKiBXZWJS
ZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzc5NDg0MDQxNTBDMzUw
NjAwRTUyQ0U5IC8qIFdlYlJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkzNzYwODgx
RjE1MDQxM0U5MDBGQzgyQzcgLyogV2ViUmVuZGVyT2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRlcmNlcHRDb250cm9s
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAxQkEwNUUgLyogV2Vi
UmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjA2MEUwMTY1NDMxN0YwMEYz
MjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTEx
NzU1LDggKzExNzMzLDYgQEAKIAkJCQkxQUQwMUJDRDE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxv
YWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOUUz
MjlCMTgyMkUxQ0MwMEY1RDA0QyAvKiBXS1JlbW90ZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE5RTMyOUYxODIyRkVERDAwRjVEMDRDIC8qIFdLUmVtb3RlT2JqZWN0Q29kZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTM3OTQ4NDA5MTUwQzRCOTcwMEU1MkNFOSAvKiBXS1JlbmRlckxheWVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQkzNzYwODgyMzE1MDQxNEY3MDBGQzgyQzcgLyogV0tSZW5k
ZXJPYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTMzMzY3NjNCMTMwQzk5REMwMDZDOURFMiAv
KiBXS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzhBNTAxNTEx
NzY1RjU2MDA3NTc1NzMgLyogV0tSZXRhaW5QdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQTI2
RDgxMjE3QUJENUIwMEY5N0EzNSAvKiBXS1NhZmVCcm93c2luZ1dhcm5pbmcuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCAxMzhmYzJmZWE1Nzg4MmM3MzVl
NTgzMTJlM2JjMGY1OWNjYWEwODJhLi5kODU5N2NiNTE2OGUzNTk0OGI2OTA4ODNlZjJhZGE5OWY4
ZjA0MWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNTYsOCArNTYsNiBAQAog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VPdmVybGF5LmgiCi0jaW5jbHVkZSAiV2ViUmVuZGVyTGF5ZXIuaCIKLSNp
bmNsdWRlICJXZWJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2Fj
aGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CkBAIC01NzgsMTYg
KzU3Niw2IEBAIHVpbnQ2NF90IFdLQnVuZGxlUGFnZUdldFJlbmRlclRyZWVTaXplKFdLQnVuZGxl
UGFnZVJlZiBwYWdlUmVmKQogICAgIHJldHVybiBXZWJLaXQ6OnRvSW1wbChwYWdlUmVmKS0+cmVu
ZGVyVHJlZVNpemUoKTsKIH0KIAotV0tSZW5kZXJPYmplY3RSZWYgV0tCdW5kbGVQYWdlQ29weVJl
bmRlclRyZWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6
dG9BUEkoV2ViS2l0OjpXZWJSZW5kZXJPYmplY3Q6OmNyZWF0ZShXZWJLaXQ6OnRvSW1wbChwYWdl
UmVmKSkubGVha1JlZigpKTsKLX0KLQotV0tSZW5kZXJMYXllclJlZiBXS0J1bmRsZVBhZ2VDb3B5
UmVuZGVyTGF5ZXJUcmVlKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQotewotICAgIHJldHVybiBX
ZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUmVuZGVyTGF5ZXI6OmNyZWF0ZShXZWJLaXQ6OnRvSW1w
bChwYWdlUmVmKSkubGVha1JlZigpKTsKLX0KLQogdm9pZCBXS0J1bmRsZVBhZ2VTZXRQYWludGVk
T2JqZWN0c0NvdW50ZXJUaHJlc2hvbGQoV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCkKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyBvbmx5IHN0aWxsIGhlcmUgdG8ga2VlcCBvcGVu
IHNvdXJjZSBNYWMgYnVpbGRzIGJ1aWxkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQ
cml2YXRlLmgKaW5kZXggMWM1NzEwZWIyZWY2YjY3ZDc1NGFlNGE1MWJlOGYwYjViYTczMzM4Yi4u
NWJlZWI0Y2ViZTg5YzUyZjg3MzA4NjMzY2IxYWNmMjE3NThjZGE3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBy
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCkBAIC03Miw5ICs3Miw2IEBAIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZVNpbXVsYXRlTW91c2VNb3Rpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
UG9pbnQgcG9zCiAKIFdLX0VYUE9SVCB1aW50NjRfdCBXS0J1bmRsZVBhZ2VHZXRSZW5kZXJUcmVl
U2l6ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiAKLVdLX0VYUE9SVCBXS1JlbmRlck9iamVjdFJl
ZiBXS0J1bmRsZVBhZ2VDb3B5UmVuZGVyVHJlZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7Ci1XS19F
WFBPUlQgV0tSZW5kZXJMYXllclJlZiBXS0J1bmRsZVBhZ2VDb3B5UmVuZGVyTGF5ZXJUcmVlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlKTsKLQogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBz
dGlsbCBoZXJlIHRvIGtlZXAgb3BlbiBzb3VyY2UgTWFjIGJ1aWxkcyBidWlsZGluZy4gSXQgZG9l
c24ndCBkbyBhbnl0aGluZyBhbnltb3JlIQogLy8gV2Ugc2hvdWxkIHJlbW92ZSBpdCBhcyBzb29u
IGFzIHdlIGNhbi4KIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFBhaW50ZWRPYmplY3Rz
Q291bnRlclRocmVzaG9sZChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgdGhyZXNob2xk
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>