<?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>53052</bug_id>
          
          <creation_ts>2011-01-24 17:11:43 -0800</creation_ts>
          <short_desc>Use designated temp directory for the database for WebKit2</short_desc>
          <delta_ts>2011-01-24 18:09:18 -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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>339387</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-24 17:11:43 -0800</bug_when>
    <thetext>Use designated temp directory for the database for WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339388</commentid>
    <comment_count>1</comment_count>
      <attachid>79993</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-24 17:13:32 -0800</bug_when>
    <thetext>Created attachment 79993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339408</commentid>
    <comment_count>2</comment_count>
      <attachid>79998</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-24 17:42:17 -0800</bug_when>
    <thetext>Created attachment 79998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339423</commentid>
    <comment_count>3</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2011-01-24 18:09:18 -0800</bug_when>
    <thetext>Committed r76559: &lt;http://trac.webkit.org/changeset/76559&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79993</attachid>
            <date>2011-01-24 17:13:32 -0800</date>
            <delta_ts>2011-01-24 17:42:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53052-20110124171331.patch</filename>
            <type>text/plain</type>
            <size>30888</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NTU2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDEtMjQgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVc2UgZGVzaWduYXRlZCB0ZW1wIGRpcmVjdG9yeSBmb3IgdGhl
IGRhdGFiYXNlIGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01MzA1MgorICAgICAgICAKKyAgICAgICAgQWRkIHRoZSBBUEkgbmVjZXNz
YXJ5IHRvIHN1cHBvcnQgdGhpcy4gRGF0YWJhc2UgcGF0aCBpcyBub3cKKyAgICAgICAgZGV0ZXJt
aW5lZCBvbiB0aGUgVUkgcHJvY2VzcyBzaWRlIGFuZCBwYXNzZWQgdG8gdGhlIFdlYiBwcm9jZXNz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHA6CisgICAgICAgIChXS0NvbnRleHRTZXREYXRhYmFzZURpcmVjdG9yeSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmVuc3VyZVdlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkYXRhYmFzZURpcmVjdG9yeSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29udGV4dDo6c2V0RGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMv
V2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1E
ZWZhdWx0RGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJDb250
ZXh0UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHRE
YXRhYmFzZURpcmVjdG9yeSk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0V2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0RGF0YWJh
c2VEaXJlY3RvcnkpOgorICAgICAgICAqIFdlYktpdDIucHJvOgorICAgICAgICAqIFdlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFi
YXNlTWFuYWdlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkRhdGFiYXNlTWFu
YWdlcjo6V2ViRGF0YWJhc2VNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvZ3RrL1dlYkRhdGFiYXNlTWFuYWdlckd0ay5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1t
OiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRGF0
YWJhc2VNYW5hZ2VyUXQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd2luL1dlYkRhdGFiYXNlTWFuYWdlcldpbi5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTEtMDEtMjQg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgYnVpbGQgZml4LgpJbmRleDogU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDc2NDE5KQor
KysgU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTMyMyw2
ICszMjMsNyBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0ZpbmRJbmRpY2F0b3IuaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0dlbmVy
aWNDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1RleHRDaGVja2Vy
R3RrLmNwcCBcCisJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJDb250ZXh0R3RrLmNw
cCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJlZmVyZW5jZXNHdGsuY3BwIFwKQEAgLTUw
NCw3ICs1MDUsNiBAQCBsaWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJDb250ZXh0TWVudUNsaWVudEd0ay5jcHAgXAotCVNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRhdGFiYXNlTWFuYWdl
ckd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3Rr
L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViUG9wdXBNZW51R3RrLmNwcCBcCiAJU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIFwKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIucHJvCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIu
cHJvCSh3b3JraW5nIGNvcHkpCkBAIC02NjYsNyArNjY2LDYgQEAgU09VUkNFUyArPSBcCiAgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViQ29udGV4dE1lbnVDbGllbnRRdC5jcHAgXAotICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRGF0YWJhc2VNYW5hZ2VyUXQuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkVycm9yc1F0LmNwcCBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBc
CiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJQb3B1cE1lbnVRdC5jcHAgXApJ
bmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAg
IGVuY29kZXItPmVuY29kZShpbmplY3RlZEJ1bmRsZVBhdGgpOwogICAgIGVuY29kZXItPmVuY29k
ZShpbmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogICAgIGVuY29kZXItPmVuY29k
ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUoZGF0YWJh
c2VEaXJlY3RvcnkpOwogICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJlcmRB
c0VtcHR5RG9jdW1lbnQpOwogICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzUmVnaXN0ZXJl
ZEFzU2VjdXJlKTsKICAgICBlbmNvZGVyLT5lbmNvZGUodXJsU2NoZW1lc0ZvcldoaWNoRG9tYWlu
UmVsYXhhdGlvbklzRm9yYmlkZGVuKTsKQEAgLTc2LDYgKzc3LDggQEAgYm9vbCBXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHBhcmFtZXRl
cnMuZGF0YWJhc2VEaXJlY3RvcnkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlcmRBc0VtcHR5RG9j
dW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUo
cGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlKSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAko
cmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHN0cnVjdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUgaW5qZWN0ZWRCdW5kbGVQYXRoRXh0ZW5zaW9uSGFuZGxlOwogCiAgICAgU3RyaW5nIGFwcGxp
Y2F0aW9uQ2FjaGVEaXJlY3Rvcnk7CisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5OwogICAg
IFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVyZEFzRW1wdHlEb2N1bWVudDsKICAg
ICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzU2VjdXJlOwogICAgIFZlY3Rv
cjxTdHJpbmc+IHVybFNjaGVtZXNGb3JXaGljaERvbWFpblJlbGF4YXRpb25Jc0ZvcmJpZGRlbjsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHJldmlzaW9uIDc2
NDE5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzYsNiArMTc2LDcgQEAgdm9pZCBXZWJDb250ZXh0OjplbnN1cmVXZWJQcm9j
ZXNzKCkKICAgICBwYXJhbWV0ZXJzLmNhY2hlTW9kZWwgPSBtX2NhY2hlTW9kZWw7CiAgICAgcGFy
YW1ldGVycy5sYW5ndWFnZUNvZGUgPSBkZWZhdWx0TGFuZ3VhZ2UoKTsKICAgICBwYXJhbWV0ZXJz
LmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7
CisgICAgcGFyYW1ldGVycy5kYXRhYmFzZURpcmVjdG9yeSA9IGRhdGFiYXNlRGlyZWN0b3J5KCk7
CiAgICAgcGFyYW1ldGVycy5jbGVhclJlc291cmNlQ2FjaGVzID0gbV9jbGVhclJlc291cmNlQ2Fj
aGVzRm9yTmV3V2ViUHJvY2VzczsKICAgICBwYXJhbWV0ZXJzLmNsZWFyQXBwbGljYXRpb25DYWNo
ZSA9IG1fY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yTmV3V2ViUHJvY2VzczsKICNpZiBQTEFURk9S
TShNQUMpCkBAIC02MDIsNCArNjAzLDEyIEBAIHZvaWQgV2ViQ29udGV4dDo6c3RvcE1lbW9yeVNh
bXBsZXIoKQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U3RvcE1l
bW9yeVNhbXBsZXIoKSwgMCk7CiB9CiAKK1N0cmluZyBXZWJDb250ZXh0OjpkYXRhYmFzZURpcmVj
dG9yeSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX292ZXJyaWRlRGF0YWJhc2VEaXJlY3RvcnkuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gbV9vdmVycmlkZURhdGFiYXNlRGlyZWN0b3J5OworCisg
ICAgcmV0dXJuIHBsYXRmb3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
CShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNyw2ICsxMzcsOCBAQCBwdWJsaWM6CiAgICAgfTsKICAg
ICBzdGF0aWMgU3RhdGlzdGljcyYgc3RhdGlzdGljcygpOwogCisgICAgdm9pZCBzZXREYXRhYmFz
ZURpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcikgeyBtX292ZXJyaWRlRGF0YWJhc2VEaXJlY3Rv
cnkgPSBkaXI7IH0KKwogcHJpdmF0ZToKICAgICBXZWJDb250ZXh0KFByb2Nlc3NNb2RlbCwgY29u
c3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpOwogCkBAIC0xNjIsNiArMTY0LDkgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgdm9pZCBsYW5ndWFnZUNoYW5nZWQodm9pZCogY29udGV4dCk7CiAg
ICAgdm9pZCBsYW5ndWFnZUNoYW5nZWQoKTsKIAorICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eSgpIGNvbnN0OworICAgIFN0cmluZyBwbGF0Zm9ybURlZmF1bHREYXRhYmFzZURpcmVjdG9yeSgp
IGNvbnN0OworCiAgICAgUHJvY2Vzc01vZGVsIG1fcHJvY2Vzc01vZGVsOwogICAgIAogICAgIC8v
IEZJWE1FOiBJbiB0aGUgZnV0dXJlLCB0aGlzIHNob3VsZCBiZSBvbmUgb3IgbW9yZSBXZWJQcm9j
ZXNzUHJveGllcy4KQEAgLTIwMyw2ICsyMDgsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKFdJ
TikKICAgICBib29sIG1fc2hvdWxkUGFpbnROYXRpdmVDb250cm9sczsKICNlbmRpZgorCisgICAg
U3RyaW5nIG1fb3ZlcnJpZGVEYXRhYmFzZURpcmVjdG9yeTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAJKHJldmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NiwzICsxNzYsOCBAQCB2b2lkIFdL
Q29udGV4dFN0b3BNZW1vcnlTYW1wbGVyKFdLQ29udGV4CiB7CiAgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5zdG9wTWVtb3J5U2FtcGxlcigpOwogfQorCit2b2lkIFdLQ29udGV4dFNldERhdGFiYXNl
RGlyZWN0b3J5KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiBkYXRhYmFzZURp
cmVjdG9yeSkKK3sKKyAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldERhdGFiYXNlRGlyZWN0b3J5
KHRvSW1wbChkYXRhYmFzZURpcmVjdG9yeSktPnN0cmluZygpKTsKK30KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAkocmV2aXNp
b24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMCBAQCBXS19FWFBPUlQgdm9pZCBX
S0NvbnRleHRSZWdpc3RlclVSTFNjaGVtCiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoV0tDb250ZXh0UmVmIGNvbnRleHQs
IFdLU3RyaW5nUmVmIHVybFNjaGVtZSk7CiAKKy8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIG9u
bHkgZWZmZWN0aXZlIGlmIGNhbGxlZCBiZWZvcmUgdGhlIFdlYiBwcm9jZXNzIGlzIGxhdW5jaGVk
LiBCdXQKKy8vIHdlIHNob3VsZCByZWFsbHkgY2hhbmdlIHRoaXMgc2V0dGluZyB0byBiZSBvbiBX
ZWJQcmVmZXJlbmNlcyBhbmQgY2hhbmdlYWJsZSBhdCBydW50aW1lLgorV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0U2V0RGF0YWJhc2VEaXJlY3RvcnkoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3Ry
aW5nUmVmIGRhdGFiYXNlRGlyZWN0b3J5KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMu
bW0JKHJldmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05MCw1ICs5MCwxMCBAQCB2b2lkIFdlYkNv
bnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NC
dW5kbGVSZXNvdXJjZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSByZXNvdXJjZVBhdGhdKTsKIH0KIAorU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRm
b3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gW0Aifi9M
aWJyYXJ5L1dlYktpdC9EYXRhYmFzZXMiIHN0cmluZ0J5U3RhbmRhcmRpemluZ1BhdGhdOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkNvbnRleHRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHJldmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDQg
KzQ0LDEwIEBAIHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKIHsKIH0K
IAorU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KCkg
Y29uc3QKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiAiIjsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2lu
L1dlYkNvbnRleHRXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93aW4vV2ViQ29udGV4dFdpbi5jcHAJKHJldmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3dpbi9XZWJDb250ZXh0V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NSArNTIsMTAgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAg
IHBhcmFtZXRlcnMuc2hvdWxkUGFpbnROYXRpdmVDb250cm9scyA9IG1fc2hvdWxkUGFpbnROYXRp
dmVDb250cm9sczsKIH0KIAorU3RyaW5nIFdlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdERhdGFi
YXNlRGlyZWN0b3J5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KFdlYkNvcmU6OmxvY2FsVXNlclNwZWNpZmljU3RvcmFnZURpcmVjdG9yeSgp
LCAiRGF0YWJhc2VzIik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjkyLDcgKzY5Miw2IEBACiAJCUY2MzQ0NDVDMTJB
ODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MzQ0NDVBMTJBODg1RTkwMDA2MTJEOCAvKiBX
S1NlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKIAkJRjYzNDQ0NUQxMkE4ODVFOTAwMDYxMkQ4IC8q
IFdLU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY2MzQ0NDVCMTJBODg1RTkwMDA2MTJEOCAvKiBXS1NlY3VyaXR5T3JpZ2luLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlGNjdERDdC
QTEyNUU0MEQ5MDA3QkRDQjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjdERDdCOTEyNUU0
MEQ5MDA3QkRDQjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRjZBMjVGRDkxMkFEQzZC
RDAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2QTI1RkQ4MTJBREM2QkQwMERDNDBDQyAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJNYWMubW0gKi87IH07CiAJCUY2QTI1RkRDMTJBREM2Q0MwMERDNDBD
QyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjZBMjVGREExMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNl
TWFuYWdlci5jcHAgKi87IH07CiAJCUY2QTI1RkREMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRh
YmFzZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY2QTI1RkRCMTJBREM2Q0MwMERDNDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuaCAqLzsg
fTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwpAQCAtMTQ1Myw3ICsxNDUyLDYgQEAK
IAkJRjYzNDQ0NUExMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2VjdXJpdHlPcmlnaW4uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tTZWN1cml0eU9yaWdpbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MzQ0NDVCMTJBODg1RTkwMDA2MTJEOCAvKiBX
S1NlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2Vj
dXJpdHlPcmlnaW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjY3REQ3QjkxMjVF
NDBEOTAwN0JEQ0I4IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjZBMjVGRDgxMkFEQzZCRDAwREM0MEND
IC8qIFdlYkRhdGFiYXNlTWFuYWdlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkRhdGFiYXNlTWFuYWdlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjZBMjVGREExMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEYXRhYmFzZU1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNkEyNUZEQjEyQURDNkND
MDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRhdGFiYXNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwpAQCAtMjI3NSw3ICsyMjczLDYg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUM1NTRGRkEyMTJFNEU4RUEwMDJGMjJDMCAvKiBXZWJE
cmFnQ2xpZW50TWFjLm1tICovLAogCQkJCTUxMDIxRTlCMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJD
b250ZXh0TWVudUNsaWVudE1hYy5tbSAqLywKLQkJCQlGNkEyNUZEODEyQURDNkJEMDBEQzQwQ0Mg
LyogV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tICovLAogCQkJCUM1MjM3RjVGMTI0NDFDQTMwMDc4
MDQ3MiAvKiBXZWJFZGl0b3JDbGllbnRNYWMubW0gKi8sCiAJCQkJQkMxMTFBREYxMTJGNUJDMjAw
MzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSAqLywKIAkJCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3
RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovLApAQCAtMzQ3NCw3ICszNDcxLDYg
QEAKIAkJCQk1MTJGNThGOTEyQTg4QTU0MDA2Mjk1MzAgLyogV0tDcmVkZW50aWFsLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxMkY1OEZCMTJBODhBNTQwMDYyOTUzMCAvKiBXS1Byb3RlY3Rpb25T
cGFjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNjM0NDQ1QzEyQTg4NUU5MDAwNjEyRDggLyog
V0tTZWN1cml0eU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGNkEyNUZEOTEyQURDNkJE
MDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RjZBMjVGREMxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUFGMDYxNTEyQjAxMTMxMDA4RTQ5RTIg
LyogUERGVmlld0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTks
MTEgKzExOSw2IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIC8vIEluaXRpYWxpemUg
b3VyIHBsYXRmb3JtIHN0cmF0ZWdpZXMuCiAgICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0
aWFsaXplKCk7CiAjZW5kaWYgLy8gVVNFKFBMQVRGT1JNX1NUUkFURUdJRVMpCi0KLSNpZiBFTkFC
TEUoREFUQUJBU0UpCi0gICAgLy8gTWFrZSBzdXJlIHRoZSBXZWJEYXRhYmFzZU1hbmFnZXIgaXMg
aW5pdGlhbGl6ZWQgc28gdGhhdCB0aGUgRGF0YWJhc2UgZGlyZWN0b3J5IGlzIHNldC4KLSAgICBX
ZWJEYXRhYmFzZU1hbmFnZXI6OnNoYXJlZCgpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vz
czo6aW5pdGlhbGl6ZShDb3JlSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlcklkZW50
aWZpZXIsIFJ1bkxvb3AqIHJ1bkxvb3ApCkBAIC0xNTksNiArMTU0LDExIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoY28KICAgICAgICAgfQogICAgIH0KIAorI2lmIEVO
QUJMRShEQVRBQkFTRSkKKyAgICAvLyBNYWtlIHN1cmUgdGhlIFdlYkRhdGFiYXNlTWFuYWdlciBp
cyBpbml0aWFsaXplZCBzbyB0aGF0IHRoZSBEYXRhYmFzZSBkaXJlY3RvcnkgaXMgc2V0LgorICAg
IFdlYkRhdGFiYXNlTWFuYWdlcjo6aW5pdGlhbGl6ZShwYXJhbWV0ZXJzLmRhdGFiYXNlRGlyZWN0
b3J5KTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE9GRkxJTkVfV0VCX0FQUExJQ0FUSU9OUykKICAg
ICBpZiAoIXBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAg
ICAgICAgIGNhY2hlU3RvcmFnZSgpLnNldENhY2hlRGlyZWN0b3J5KHBhcmFtZXRlcnMuYXBwbGlj
YXRpb25DYWNoZURpcmVjdG9yeSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3Bw
CShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsOSArNDUs
MTMgQEAgV2ViRGF0YWJhc2VNYW5hZ2VyJiBXZWJEYXRhYmFzZU1hbmFnZXI6OgogICAgIHJldHVy
biBzaGFyZWQ7CiB9CiAKK3ZvaWQgV2ViRGF0YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCit7CisgICAgRGF0YWJhc2VUcmFja2VyOjppbml0
aWFsaXplVHJhY2tlcihkYXRhYmFzZURpcmVjdG9yeSk7Cit9CisKIFdlYkRhdGFiYXNlTWFuYWdl
cjo6V2ViRGF0YWJhc2VNYW5hZ2VyKCkKIHsKLSAgICBEYXRhYmFzZVRyYWNrZXI6OmluaXRpYWxp
emVUcmFja2VyKGRhdGFiYXNlRGlyZWN0b3J5KCkpOwogICAgIERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLnNldENsaWVudCh0aGlzKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdl
ci5oCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQz
LDcgQEAgY2xhc3MgV2ViRGF0YWJhc2VNYW5hZ2VyIDogcHVibGljIFdlYkNvcgogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYkRhdGFiYXNlTWFuYWdlcik7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFdlYkRhdGFiYXNlTWFuYWdlciYgc2hhcmVkKCk7CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6
ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKik7CiAKQEAgLTYzLDggKzY0LDYgQEAgcHJpdmF0ZToKICAgICAv
LyBXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXJDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRNb2RpZnlPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRNb2RpZnlEYXRhYmFzZShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbios
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyKTsKLQotICAgIFN0cmluZyBkYXRhYmFz
ZURpcmVjdG9yeSgpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEYXRhYmFzZU1h
bmFnZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvZ3RrL1dlYkRhdGFiYXNlTWFuYWdlckd0ay5jcHAJKHJldmlzaW9uIDc2NDE5
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRGF0
YWJhc2VNYW5hZ2VyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdl
ci5oIgotCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLVN0cmluZyBXZWJEYXRhYmFzZU1hbmFnZXI6OmRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJEYXRhYmFzZU1hbmFnZXJNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRGF0YWJhc2VNYW5h
Z2VyTWFjLm1tCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRhdGFiYXNlTWFuYWdlck1hYy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiV2ViRGF0YWJhc2VNYW5h
Z2VyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1OU1N0cmluZyAqV2ViRGF0YWJhc2VEaXJl
Y3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViRGF0YWJhc2VEaXJlY3RvcnkiOwotCi1TdHJpbmcgV2Vi
RGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0Ci17Ci0gICAgTlNVc2Vy
RGVmYXVsdHMgKmRlZmF1bHRzID0gW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XTsKLSAgICBOU1N0cmluZyAqZGF0YWJhc2VzRGlyZWN0b3J5ID0gW2RlZmF1bHRzIG9iamVjdEZv
cktleTpXZWJEYXRhYmFzZURpcmVjdG9yeURlZmF1bHRzS2V5XTsKLSAgICBpZiAoIWRhdGFiYXNl
c0RpcmVjdG9yeSB8fCAhW2RhdGFiYXNlc0RpcmVjdG9yeSBpc0tpbmRPZkNsYXNzOltOU1N0cmlu
ZyBjbGFzc11dKQotICAgICAgICBkYXRhYmFzZXNEaXJlY3RvcnkgPSBAIn4vTGlicmFyeS9XZWJL
aXQvRGF0YWJhc2VzIjsKLQotICAgIHJldHVybiBbZGF0YWJhc2VzRGlyZWN0b3J5IHN0cmluZ0J5
U3RhbmRhcmRpemluZ1BhdGhdOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRGF0YWJhc2VNYW5h
Z2VyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvcXQvV2ViRGF0YWJhc2VNYW5hZ2VyUXQuY3BwCShyZXZpc2lvbiA3NjQxOSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRGF0YWJhc2VN
YW5hZ2VyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiV2ViRGF0YWJhc2VNYW5hZ2VyLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1TdHJpbmcgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0Ci17
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICByZXR1cm4gIiI7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXJX
aW4uY3BwCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvd2luL1dlYkRhdGFiYXNlTWFuYWdlcldpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFn
ZXIuaCIKLQotI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVN0cmluZyBXZWJEYXRhYmFzZU1h
bmFnZXI6OmRhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAgICByZXR1cm4gV2ViQ29yZTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KFdlYkNvcmU6OmxvY2FsVXNlclNwZWNpZmljU3RvcmFn
ZURpcmVjdG9yeSgpLCAiRGF0YWJhc2VzIik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJ
bmRleDogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkocmV2aXNpb24gNzY0MTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MDEsMTAg
KzE0MDEsNiBAQAogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CiAJCQkJCTxGaWxlCi0JCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcd2luXFdlYkRhdGFiYXNlTWFu
YWdlcldpbi5jcHAiCi0JCQkJCQk+Ci0JCQkJCTwvRmlsZT4KLQkJCQkJPEZpbGUKIAkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJDb3JlU3VwcG9ydFx3aW5cV2ViRXJyb3JzV2lu
LmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxlPgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNzY1NTYpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wMS0yNCAgTWFjaWVq
IFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBkZXNpZ25hdGVkIHRlbXAgZGlyZWN0b3J5IGZvciB0
aGUgZGF0YWJhc2UgZm9yIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTUzMDUyCisgICAgICAgIAorICAgICAgICBBZG9wdCB0aGUgbmV3IFdL
MiBBUEkgZm9yIHRoaXMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmxpYnJhcnlQYXRoRm9yVGVz
dGluZyk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OlRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGluZyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGluZyk6CisKIDIwMTEt
MDEtMjQgIEx1Y2FzIEZvcnNjaGxlciAgPGxmb3JzY2hsZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFN0ZXBoYW5pZSBMZXdpcy4KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3NjQxOSkKKysrIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3
IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYktpdDIv
V0tDb250ZXh0UHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tQcmVmZXJlbmNlc1ByaXZh
dGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdUUiB7CkBAIC0xNjQsNiArMTY1LDE4IEBAIFdLUGFn
ZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWcKICAgICByZXR1cm4gbmV3UGFnZTsK
IH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OmxpYnJhcnlQYXRoRm9yVGVzdGluZygp
Cit7CisgICAgLy8gRklYTUU6IFRoaXMgbWF5IG5vdCBiZSBzdWZmaWNpZW50IHRvIHByZXZlbnQg
aW50ZXJhY3Rpb25zL2NyYXNoZXMKKyAgICAvLyB3aGVuIHJ1bm5pbmcgbW9yZSB0aGFuIG9uZSBj
b3B5IG9mIER1bXBSZW5kZXJUcmVlLgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDYKKyAgICBjaGFyKiBkdW1wUmVuZGVyVHJlZVRlbXAgPSBn
ZXRlbnYoIkRVTVBSRU5ERVJUUkVFX1RFTVAiKTsKKyAgICBpZiAoZHVtcFJlbmRlclRyZWVUZW1w
KQorICAgICAgICByZXR1cm4gZHVtcFJlbmRlclRyZWVUZW1wOworICAgIHJldHVybiBwbGF0Zm9y
bUxpYnJhcnlQYXRoRm9yVGVzdGluZygpOworfQorCisKIHZvaWQgVGVzdENvbnRyb2xsZXI6Omlu
aXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKIHsKICAgICBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKQEAgLTIxOSw2ICsyMzIsMTUgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZShpbnQgYXJnYwogICAgIG1fcGFnZUdyb3VwLmFkb3B0KFdLUGFnZUdyb3VwQ3JlYXRl
V2l0aElkZW50aWZpZXIocGFnZUdyb3VwSWRlbnRpZmllci5nZXQoKSkpOwogCiAgICAgbV9jb250
ZXh0LmFkb3B0KFdLQ29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRsZVBhdGgoaW5qZWN0ZWRC
dW5kbGVQYXRoKCkpKTsKKworICAgIGNvbnN0IGNoYXIqIHBhdGggPSBsaWJyYXJ5UGF0aEZvclRl
c3RpbmcoKTsKKyAgICBpZiAocGF0aCkgeworICAgICAgICBWZWN0b3I8Y2hhcj4gZGF0YWJhc2VE
aXJlY3Rvcnkoc3RybGVuKHBhdGgpICsgc3RybGVuKCIvRGF0YWJhc2VzIikpOworICAgICAgICBz
cHJpbnRmKGRhdGFiYXNlRGlyZWN0b3J5LmRhdGEoKSwgIiVzJXMiLCBwYXRoLCAiL0RhdGFiYXNl
cyIpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZGF0YWJhc2VEaXJlY3RvcnlX
SyhBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhkYXRhYmFzZURpcmVjdG9y
eS5kYXRhKCkpKTsKKyAgICAgICAgV0tDb250ZXh0U2V0RGF0YWJhc2VEaXJlY3RvcnkobV9jb250
ZXh0LmdldCgpLCBkYXRhYmFzZURpcmVjdG9yeVdLLmdldCgpKTsKKyAgICB9CisKICAgICBwbGF0
Zm9ybUluaXRpYWxpemVDb250ZXh0KCk7CiAKICAgICBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudCBpbmplY3RlZEJ1bmRsZUNsaWVudCA9IHsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDc2NDE5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2ICs5MCw5IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKTsK
IAorICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogcGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsKKwogICAg
IE93blB0cjxUZXN0SW52b2NhdGlvbj4gbV9jdXJyZW50SW52b2NhdGlvbjsKIAogICAgIGJvb2wg
bV9kdW1wUGl4ZWxzOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRy
b2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVz
dENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDc2NDE5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvVGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTcxLDQgKzcx
LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZQogICAgIFtOU0Fw
cCBydW5Nb2RhbEZvcldpbmRvdzp3aW5kb3ddOwogfQogCitjb25zdCBjaGFyKiBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVybiBbW0Ai
fi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvRHVtcFJlbmRlclRyZWUiIHN0cmluZ0J5RXhw
YW5kaW5nVGlsZGVJblBhdGhdIFVURjhTdHJpbmddOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
SW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNw
cAkocmV2aXNpb24gNzY0MTkpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL3F0L1Rlc3RDb250
cm9sbGVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDExIEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2UKICAgICAvLyBGSVhNRTogTmVlZCB0byBp
bXBsZW1lbnQgdGhpcyB0byB0ZXN0IHNob3dNb2RhbERpYWxvZy4KIH0KIAorY29uc3QgY2hhciog
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyUXQubW9jIgogCiB9IC8vIG5h
bWVzcGFjZSBXVFIKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9s
bGVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0
Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDc2NDE5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcsNCAr
MTU3LDkgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZQogICAgIC8v
IEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCB0aGlzIHRvIHRlc3Qgc2hvd01vZGFsRGlhbG9nLgog
fQogCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRl
c3RpbmcoKQoreworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>79998</attachid>
            <date>2011-01-24 17:42:17 -0800</date>
            <delta_ts>2011-01-24 17:44:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53052-20110124174216.patch</filename>
            <type>text/plain</type>
            <size>32515</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc2NTU3KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMDEtMjQgIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMg
Q2FybHNzb24uCisKKyAgICAgICAgVXNlIGRlc2lnbmF0ZWQgdGVtcCBkaXJlY3RvcnkgZm9yIHRo
ZSBkYXRhYmFzZSBmb3IgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTMwNTIKKyAgICAgICAgCisgICAgICAgIEFkZCB0aGUgQVBJIG5lY2Vz
c2FyeSB0byBzdXBwb3J0IHRoaXMuIERhdGFiYXNlIHBhdGggaXMgbm93CisgICAgICAgIGRldGVy
bWluZWQgb24gdGhlIFVJIHByb2Nlc3Mgc2lkZSBhbmQgcGFzc2VkIHRvIHRoZSBXZWIgcHJvY2Vz
cy4KKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29u
dGV4dFNldERhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6ZW5zdXJlV2ViUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6OmRhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpzZXREYXRhYmFz
ZURpcmVjdG9yeSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHREYXRhYmFzZURpcmVj
dG9yeSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dlYkNvbnRleHRRdC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkNvbnRleHQ6OnBsYXRmb3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KToK
KyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkNvbnRleHRXaW4uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJDb250ZXh0OjpwbGF0Zm9ybURlZmF1bHREYXRhYmFzZURpcmVjdG9yeSk6CisgICAg
ICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyOjppbml0aWFs
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YWJhc2VNYW5hZ2VyOjpXZWJEYXRhYmFzZU1h
bmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRGF0
YWJhc2VNYW5hZ2VyR3RrLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L21hYy9XZWJEYXRhYmFzZU1hbmFnZXJNYWMubW06IFJlbW92ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJEYXRhYmFzZU1hbmFnZXJRdC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRGF0
YWJhc2VNYW5hZ2VyV2luLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29tLmFwcGxlLldlYlByb2Nlc3Muc2I6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVNh
bmRib3gpOgorICAgICAgICAqIHdpbi9XZWJLaXQyLnZjcHJvajoKKwogMjAxMS0wMS0yNCAgQnJl
bnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXguCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNzY0MTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMzIzLDYgKzMy
Myw3IEBAIGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvRmluZEluZGljYXRvci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0Nh
bGxiYWNrLmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvVGV4dENoZWNrZXJHdGsu
Y3BwIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkNvbnRleHRHdGsuY3BwIFwK
IAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rvckd0ay5jcHAgXAogCVNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcCBcCiAJU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQcmVmZXJlbmNlc0d0ay5jcHAgXApAQCAtNTA0LDcg
KzUwNSw2IEBAIGxpYldlYktpdDJfbGFfU09VUkNFUyA9IFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvZ3RrL1dlYkNvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBcCi0JU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRGF0YWJhc2VNYW5hZ2VyR3Rr
LmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L2d0ay9XZWJQb3B1cE1lbnVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgXApJbmRleDogU291
cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi5wcm8JKHJldmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8J
KHdvcmtpbmcgY29weSkKQEAgLTY2Niw3ICs2NjYsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAogICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9xdC9XZWJDb250ZXh0TWVudUNsaWVudFF0LmNwcCBcCi0gICAgV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJEYXRhYmFzZU1hbmFnZXJRdC5jcHAgXAogICAgIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwIFwKICAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYlBvcHVwTWVudVF0LmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiAr
NDYsNyBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5j
b2Rlci0+ZW5jb2RlKGluamVjdGVkQnVuZGxlUGF0aCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGlu
amVjdGVkQnVuZGxlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKGFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpOworICAgIGVuY29kZXItPmVuY29kZShkYXRhYmFzZURp
cmVjdG9yeSk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVyZEFzRW1w
dHlEb2N1bWVudCk7CiAgICAgZW5jb2Rlci0+ZW5jb2RlKHVybFNjaGVtZXNSZWdpc3RlcmVkQXNT
ZWN1cmUpOwogICAgIGVuY29kZXItPmVuY29kZSh1cmxTY2hlbWVzRm9yV2hpY2hEb21haW5SZWxh
eGF0aW9uSXNGb3JiaWRkZW4pOwpAQCAtNzYsNiArNzcsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRl
Y29kZXItPmRlY29kZShwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocGFyYW1ldGVycy5k
YXRhYmFzZURpcmVjdG9yeSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29k
ZXItPmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVyZEFzRW1wdHlEb2N1bWVu
dCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmUpKQpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZp
c2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgc3RydWN0IFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBp
bmplY3RlZEJ1bmRsZVBhdGhFeHRlbnNpb25IYW5kbGU7CiAKICAgICBTdHJpbmcgYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeTsKKyAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3Rvcnk7CiAgICAgVmVj
dG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZXJkQXNFbXB0eURvY3VtZW50OwogICAgIFZl
Y3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXNTZWN1cmU7CiAgICAgVmVjdG9yPFN0
cmluZz4gdXJsU2NoZW1lc0ZvcldoaWNoRG9tYWluUmVsYXhhdGlvbklzRm9yYmlkZGVuOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAkocmV2aXNpb24gNzY0MTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE3Niw2ICsxNzYsNyBAQCB2b2lkIFdlYkNvbnRleHQ6OmVuc3VyZVdlYlByb2Nlc3Mo
KQogICAgIHBhcmFtZXRlcnMuY2FjaGVNb2RlbCA9IG1fY2FjaGVNb2RlbDsKICAgICBwYXJhbWV0
ZXJzLmxhbmd1YWdlQ29kZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwogICAgIHBhcmFtZXRlcnMuYXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSA9IGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKKyAg
ICBwYXJhbWV0ZXJzLmRhdGFiYXNlRGlyZWN0b3J5ID0gZGF0YWJhc2VEaXJlY3RvcnkoKTsKICAg
ICBwYXJhbWV0ZXJzLmNsZWFyUmVzb3VyY2VDYWNoZXMgPSBtX2NsZWFyUmVzb3VyY2VDYWNoZXNG
b3JOZXdXZWJQcm9jZXNzOwogICAgIHBhcmFtZXRlcnMuY2xlYXJBcHBsaWNhdGlvbkNhY2hlID0g
bV9jbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JOZXdXZWJQcm9jZXNzOwogI2lmIFBMQVRGT1JNKE1B
QykKQEAgLTYwMiw0ICs2MDMsMTIgQEAgdm9pZCBXZWJDb250ZXh0OjpzdG9wTWVtb3J5U2FtcGxl
cigpCiAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdG9wTWVtb3J5
U2FtcGxlcigpLCAwKTsKIH0KIAorU3RyaW5nIFdlYkNvbnRleHQ6OmRhdGFiYXNlRGlyZWN0b3J5
KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fb3ZlcnJpZGVEYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBtX292ZXJyaWRlRGF0YWJhc2VEaXJlY3Rvcnk7CisKKyAgICBy
ZXR1cm4gcGxhdGZvcm1EZWZhdWx0RGF0YWJhc2VEaXJlY3RvcnkoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgJKHJl
dmlzaW9uIDc2NDE5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTM3LDYgKzEzNyw4IEBAIHB1YmxpYzoKICAgICB9OwogICAgIHN0
YXRpYyBTdGF0aXN0aWNzJiBzdGF0aXN0aWNzKCk7CiAKKyAgICB2b2lkIHNldERhdGFiYXNlRGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYgZGlyKSB7IG1fb3ZlcnJpZGVEYXRhYmFzZURpcmVjdG9yeSA9
IGRpcjsgfQorCiBwcml2YXRlOgogICAgIFdlYkNvbnRleHQoUHJvY2Vzc01vZGVsLCBjb25zdCBT
dHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCk7CiAKQEAgLTE2Miw2ICsxNjQsOSBAQCBwcml2YXRl
OgogICAgIHN0YXRpYyB2b2lkIGxhbmd1YWdlQ2hhbmdlZCh2b2lkKiBjb250ZXh0KTsKICAgICB2
b2lkIGxhbmd1YWdlQ2hhbmdlZCgpOwogCisgICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5KCkg
Y29uc3Q7CisgICAgU3RyaW5nIHBsYXRmb3JtRGVmYXVsdERhdGFiYXNlRGlyZWN0b3J5KCkgY29u
c3Q7CisKICAgICBQcm9jZXNzTW9kZWwgbV9wcm9jZXNzTW9kZWw7CiAgICAgCiAgICAgLy8gRklY
TUU6IEluIHRoZSBmdXR1cmUsIHRoaXMgc2hvdWxkIGJlIG9uZSBvciBtb3JlIFdlYlByb2Nlc3NQ
cm94aWVzLgpAQCAtMjAzLDYgKzIwOCw4IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oV0lOKQog
ICAgIGJvb2wgbV9zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzOwogI2VuZGlmCisKKyAgICBTdHJp
bmcgbV9vdmVycmlkZURhdGFiYXNlRGlyZWN0b3J5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc2LDMgKzE3Niw4IEBAIHZvaWQgV0tDb250
ZXh0U3RvcE1lbW9yeVNhbXBsZXIoV0tDb250ZXgKIHsKICAgICB0b0ltcGwoY29udGV4dFJlZikt
PnN0b3BNZW1vcnlTYW1wbGVyKCk7CiB9CisKK3ZvaWQgV0tDb250ZXh0U2V0RGF0YWJhc2VEaXJl
Y3RvcnkoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsIFdLU3RyaW5nUmVmIGRhdGFiYXNlRGlyZWN0
b3J5KQoreworICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0RGF0YWJhc2VEaXJlY3RvcnkodG9J
bXBsKGRhdGFiYXNlRGlyZWN0b3J5KS0+c3RyaW5nKCkpOworfQpJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiA3
NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFJlZ2lzdGVyVVJMU2NoZW0KIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0RG9tYWlu
UmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tT
dHJpbmdSZWYgdXJsU2NoZW1lKTsKIAorLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gaXMgb25seSBl
ZmZlY3RpdmUgaWYgY2FsbGVkIGJlZm9yZSB0aGUgV2ViIHByb2Nlc3MgaXMgbGF1bmNoZWQuIEJ1
dAorLy8gd2Ugc2hvdWxkIHJlYWxseSBjaGFuZ2UgdGhpcyBzZXR0aW5nIHRvIGJlIG9uIFdlYlBy
ZWZlcmVuY2VzIGFuZCBjaGFuZ2VhYmxlIGF0IHJ1bnRpbWUuCitXS19FWFBPUlQgdm9pZCBXS0Nv
bnRleHRTZXREYXRhYmFzZURpcmVjdG9yeShXS0NvbnRleHRSZWYgY29udGV4dCwgV0tTdHJpbmdS
ZWYgZGF0YWJhc2VEaXJlY3RvcnkpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQko
cmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRl
eHRNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTkwLDUgKzkwLDEwIEBAIHZvaWQgV2ViQ29udGV4
dDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0J1bmRs
ZVJlc291cmNlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihbW05TQnVuZGxlIG1haW5C
dW5kbGVdIHJlc291cmNlUGF0aF0pOwogfQogCitTdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1E
ZWZhdWx0RGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdAoreworICAgIHJldHVybiBbQCJ+L0xpYnJh
cnkvV2ViS2l0L0RhdGFiYXNlcyIgc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF07Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViQ29udGV4dFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvV2ViQ29udGV4dFF0LmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvV2ViQ29udGV4dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNCArNDQs
MTAgQEAgdm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogewogfQogCitT
dHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0RGF0YWJhc2VEaXJlY3RvcnkoKSBjb25z
dAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgcmV0dXJuICIiOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
Q29udGV4dFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dp
bi9XZWJDb250ZXh0V2luLmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1dlYkNvbnRleHRXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw1ICs1
MiwxMCBAQCB2b2lkIFdlYkNvbnRleHQ6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgcGFy
YW1ldGVycy5zaG91bGRQYWludE5hdGl2ZUNvbnRyb2xzID0gbV9zaG91bGRQYWludE5hdGl2ZUNv
bnRyb2xzOwogfQogCitTdHJpbmcgV2ViQ29udGV4dDo6cGxhdGZvcm1EZWZhdWx0RGF0YWJhc2VE
aXJlY3RvcnkoKSBjb25zdAoreworICAgIHJldHVybiBXZWJDb3JlOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQoV2ViQ29yZTo6bG9jYWxVc2VyU3BlY2lmaWNTdG9yYWdlRGlyZWN0b3J5KCksICJE
YXRhYmFzZXMiKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDc2NDE5KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC02OTIsNyArNjkyLDYgQEAKIAkJRjYzNDQ0NUMxMkE4ODVF
OTAwMDYxMkQ4IC8qIFdLU2VjdXJpdHlPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYzNDQ0NUExMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2Vj
dXJpdHlPcmlnaW4uY3BwICovOyB9OwogCQlGNjM0NDQ1RDEyQTg4NUU5MDAwNjEyRDggLyogV0tT
ZWN1cml0eU9yaWdpbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjYzNDQ0NUIxMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2VjdXJpdHlPcmlnaW4uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUY2N0REN0JBMTI1
RTQwRDkwMDdCRENCOCAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2N0REN0I5MTI1RTQwRDkw
MDdCRENCOCAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlGNkEyNUZEOTEyQURDNkJEMDBE
QzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjZBMjVGRDgxMkFEQzZCRDAwREM0MENDIC8qIFdlYkRh
dGFiYXNlTWFuYWdlck1hYy5tbSAqLzsgfTsKIAkJRjZBMjVGREMxMkFEQzZDQzAwREM0MENDIC8q
IFdlYkRhdGFiYXNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNkEyNUZEQTEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5h
Z2VyLmNwcCAqLzsgfTsKIAkJRjZBMjVGREQxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNl
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjZBMjVGREIxMkFEQzZDQzAwREM0MENDIC8qIFdlYkRhdGFiYXNlTWFuYWdlci5oICovOyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC0xNDUzLDcgKzE0NTIsNiBAQAogCQlG
NjM0NDQ1QTEyQTg4NUU5MDAwNjEyRDggLyogV0tTZWN1cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1NlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYzNDQ0NUIxMkE4ODVFOTAwMDYxMkQ4IC8qIFdLU2Vj
dXJpdHlPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZWN1cml0
eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjdERDdCOTEyNUU0MEQ5
MDA3QkRDQjggLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNkEyNUZEODEyQURDNkJEMDBEQzQwQ0MgLyog
V2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNkEyNUZEQTEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRhdGFiYXNlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2QTI1RkRCMTJBREM2Q0MwMERD
NDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRGF0YWJhc2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAv
KiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC0yMjc1LDcgKzIyNzMsNiBAQAog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJQzU1NEZGQTIxMkU0RThFQTAwMkYyMkMwIC8qIFdlYkRyYWdD
bGllbnRNYWMubW0gKi8sCiAJCQkJNTEwMjFFOUIxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tICovLAotCQkJCUY2QTI1RkQ4MTJBREM2QkQwMERDNDBDQyAvKiBX
ZWJEYXRhYmFzZU1hbmFnZXJNYWMubW0gKi8sCiAJCQkJQzUyMzdGNUYxMjQ0MUNBMzAwNzgwNDcy
IC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSAqLywKIAkJCQlCQzExMUFERjExMkY1QkMyMDAzMzdC
QUIgLyogV2ViRXJyb3JzTWFjLm1tICovLAogCQkJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCkBAIC0zNDc0LDcgKzM0NzEsNiBAQAog
CQkJCTUxMkY1OEY5MTJBODhBNTQwMDYyOTUzMCAvKiBXS0NyZWRlbnRpYWwuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEyRjU4RkIxMkE4OEE1NDAwNjI5NTMwIC8qIFdLUHJvdGVjdGlvblNwYWNl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY2MzQ0NDVDMTJBODg1RTkwMDA2MTJEOCAvKiBXS1Nl
Y3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUY2QTI1RkQ5MTJBREM2QkQwMERD
NDBDQyAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNkEy
NUZEQzEyQURDNkNDMDBEQzQwQ0MgLyogV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxMDIxRTlDMTJCMTY3ODgwMDVDMDMzQyAvKiBXZWJDb250ZXh0TWVudUNsaWVu
dE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUYwNjE1MTJCMDExMzEwMDhFNDlFMiAvKiBQ
REZWaWV3Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOSwxMSAr
MTE5LDYgQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgLy8gSW5pdGlhbGl6ZSBvdXIg
cGxhdGZvcm0gc3RyYXRlZ2llcy4KICAgICBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmluaXRpYWxp
emUoKTsKICNlbmRpZiAvLyBVU0UoUExBVEZPUk1fU1RSQVRFR0lFUykKLQotI2lmIEVOQUJMRShE
QVRBQkFTRSkKLSAgICAvLyBNYWtlIHN1cmUgdGhlIFdlYkRhdGFiYXNlTWFuYWdlciBpcyBpbml0
aWFsaXplZCBzbyB0aGF0IHRoZSBEYXRhYmFzZSBkaXJlY3RvcnkgaXMgc2V0LgotICAgIFdlYkRh
dGFiYXNlTWFuYWdlcjo6c2hhcmVkKCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplKENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgc2VydmVySWRlbnRpZmll
ciwgUnVuTG9vcCogcnVuTG9vcCkKQEAgLTE1OSw2ICsxNTQsMTEgQEAgdm9pZCBXZWJQcm9jZXNz
Ojppbml0aWFsaXplV2ViUHJvY2VzcyhjbwogICAgICAgICB9CiAgICAgfQogCisjaWYgRU5BQkxF
KERBVEFCQVNFKQorICAgIC8vIE1ha2Ugc3VyZSB0aGUgV2ViRGF0YWJhc2VNYW5hZ2VyIGlzIGlu
aXRpYWxpemVkIHNvIHRoYXQgdGhlIERhdGFiYXNlIGRpcmVjdG9yeSBpcyBzZXQuCisgICAgV2Vi
RGF0YWJhc2VNYW5hZ2VyOjppbml0aWFsaXplKHBhcmFtZXRlcnMuZGF0YWJhc2VEaXJlY3Rvcnkp
OworI2VuZGlmCisKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQogICAgIGlm
ICghcGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAg
ICAgY2FjaGVTdG9yYWdlKCkuc2V0Q2FjaGVEaXJlY3RvcnkocGFyYW1ldGVycy5hcHBsaWNhdGlv
bkNhY2hlRGlyZWN0b3J5KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29tLmFw
cGxlLldlYlByb2Nlc3Muc2IKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb20uYXBwbGUuV2ViUHJvY2Vzcy5zYgkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvbS5hcHBsZS5XZWJQcm9jZXNzLnNiCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw2ICs1NiwxMCBAQAogKGlmIChwb3NpdGl2ZT8gKHN0cmluZy1sZW5ndGggKHBhcmFtICJE
QVJXSU5fVVNFUl9URU1QX0RJUiIpKSkKICAgICAoYWxsb3cgZmlsZSogKHN1YnBhdGggKHBhcmFt
ICJEQVJXSU5fVVNFUl9URU1QX0RJUiIpKSkpCiAKKzs7IERhdGFiYXNlIGRpcgorKGlmIChwb3Np
dGl2ZT8gKHN0cmluZy1sZW5ndGggKHBhcmFtICJXRUJLSVRfREFUQUJBU0VfRElSIikpKQorICAg
IChhbGxvdyBmaWxlKiAoc3VicGF0aCAocGFyYW0gIldFQktJVF9EQVRBQkFTRV9ESVIiKSkpKQor
CiA7OyBUaGUgTlNVUkxDYWNoZSBkaXJlY3RvcnkuCiAoaWYgKHBvc2l0aXZlPyAoc3RyaW5nLWxl
bmd0aCAocGFyYW0gIk5TVVJMX0NBQ0hFX0RJUiIpKSkKICAgICAoYWxsb3cgZmlsZSogKHN1YnBh
dGggKHBhcmFtICJOU1VSTF9DQUNIRV9ESVIiKSkpKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ1LDkgKzQ1LDEzIEBAIFdlYkRhdGFiYXNlTWFuYWdlciYgV2ViRGF0YWJhc2VNYW5hZ2VyOjoK
ICAgICByZXR1cm4gc2hhcmVkOwogfQogCit2b2lkIFdlYkRhdGFiYXNlTWFuYWdlcjo6aW5pdGlh
bGl6ZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQoreworICAgIERhdGFiYXNlVHJh
Y2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoZGF0YWJhc2VEaXJlY3RvcnkpOworfQorCiBXZWJEYXRh
YmFzZU1hbmFnZXI6OldlYkRhdGFiYXNlTWFuYWdlcigpCiB7Ci0gICAgRGF0YWJhc2VUcmFja2Vy
Ojppbml0aWFsaXplVHJhY2tlcihkYXRhYmFzZURpcmVjdG9yeSgpKTsKICAgICBEYXRhYmFzZVRy
YWNrZXI6OnRyYWNrZXIoKS5zZXRDbGllbnQodGhpcyk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGF0YWJhc2VNYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEYXRh
YmFzZU1hbmFnZXIuaAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRhdGFiYXNlTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC00Myw2ICs0Myw3IEBAIGNsYXNzIFdlYkRhdGFiYXNlTWFuYWdlciA6IHB1YmxpYyBXZWJDb3IK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJEYXRhYmFzZU1hbmFnZXIpOwogcHVibGljOgog
ICAgIHN0YXRpYyBXZWJEYXRhYmFzZU1hbmFnZXImIHNoYXJlZCgpOworICAgIHN0YXRpYyB2b2lk
IGluaXRpYWxpemUoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeSk7CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdl
SUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogCkBAIC02Myw4ICs2NCw2IEBAIHByaXZh
dGU6CiAgICAgLy8gV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyQ2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTW9kaWZ5RGF0YWJhc2UoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4qLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcik7Ci0KLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2Vi
RGF0YWJhc2VNYW5hZ2VyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJEYXRhYmFzZU1hbmFnZXJHdGsuY3BwCShyZXZp
c2lvbiA3NjQxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
Z3RrL1dlYkRhdGFiYXNlTWFuYWdlckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXZWJEYXRh
YmFzZU1hbmFnZXIuaCIKLQotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1TdHJpbmcgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZURpcmVjdG9y
eSgpIGNvbnN0Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRGF0YWJhc2VNYW5hZ2VyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkRh
dGFiYXNlTWFuYWdlck1hYy5tbQkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJEYXRhYmFzZU1hbmFnZXJNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldlYkRh
dGFiYXNlTWFuYWdlci5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotTlNTdHJpbmcgKldlYkRh
dGFiYXNlRGlyZWN0b3J5RGVmYXVsdHNLZXkgPSBAIldlYkRhdGFiYXNlRGlyZWN0b3J5IjsKLQot
U3RyaW5nIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGF0YWJhc2VEaXJlY3RvcnkoKSBjb25zdAotewot
ICAgIE5TVXNlckRlZmF1bHRzICpkZWZhdWx0cyA9IFtOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVz
ZXJEZWZhdWx0c107Ci0gICAgTlNTdHJpbmcgKmRhdGFiYXNlc0RpcmVjdG9yeSA9IFtkZWZhdWx0
cyBvYmplY3RGb3JLZXk6V2ViRGF0YWJhc2VEaXJlY3RvcnlEZWZhdWx0c0tleV07Ci0gICAgaWYg
KCFkYXRhYmFzZXNEaXJlY3RvcnkgfHwgIVtkYXRhYmFzZXNEaXJlY3RvcnkgaXNLaW5kT2ZDbGFz
czpbTlNTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAgZGF0YWJhc2VzRGlyZWN0b3J5ID0gQCJ+L0xp
YnJhcnkvV2ViS2l0L0RhdGFiYXNlcyI7Ci0KLSAgICByZXR1cm4gW2RhdGFiYXNlc0RpcmVjdG9y
eSBzdHJpbmdCeVN0YW5kYXJkaXppbmdQYXRoXTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkRh
dGFiYXNlTWFuYWdlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkRhdGFiYXNlTWFuYWdlclF0LmNwcAkocmV2aXNpb24g
NzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dl
YkRhdGFiYXNlTWFuYWdlclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwzNiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotU3RyaW5nIFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGF0YWJhc2VEaXJlY3Rvcnko
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCi0gICAgcmV0dXJuICIiOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvd2luL1dlYkRhdGFiYXNlTWFuYWdlcldpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93aW4vV2ViRGF0YWJh
c2VNYW5hZ2VyV2luLmNwcAkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXJXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDM5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV2ViRGF0
YWJhc2VNYW5hZ2VyLmgiCi0KLSNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1TdHJpbmcgV2Vi
RGF0YWJhc2VNYW5hZ2VyOjpkYXRhYmFzZURpcmVjdG9yeSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IFdlYkNvcmU6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChXZWJDb3JlOjpsb2NhbFVzZXJTcGVj
aWZpY1N0b3JhZ2VEaXJlY3RvcnkoKSwgIkRhdGFiYXNlcyIpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJv
Y2Vzc01hYy5tbQkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9XZWJQcm9jZXNzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiArMTM1LDcgQEAg
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZVNhbmRib3goY29uc3QgV2ViUAogICAgICAgICAiV0VCS0lU
Ml9GUkFNRVdPUktfRElSIiwgZnJhbWV3b3JrUGF0aCwKICAgICAgICAgIkRBUldJTl9VU0VSX1RF
TVBfRElSIiwgKGNvbnN0IGNoYXIqKXRtcFJlYWxQYXRoLAogICAgICAgICAiREFSV0lOX1VTRVJf
Q0FDSEVfRElSIiwgKGNvbnN0IGNoYXIqKWNhY2hlUmVhbFBhdGgsCisgICAgICAgICJXRUJLSVRf
REFUQUJBU0VfRElSIiwgKGNvbnN0IGNoYXIqKXBhcmFtZXRlcnMuZGF0YWJhc2VEaXJlY3Rvcnku
ZGF0YSgpLAogICAgICAgICAiTlNVUkxfQ0FDSEVfRElSIiwgKGNvbnN0IGNoYXIqKXBhcmFtZXRl
cnMubnNVUkxDYWNoZVBhdGguZGF0YSgpLAogICAgICAgICAiVUlfUFJPQ0VTU19CVU5ETEVfUkVT
T1VSQ0VfRElSIiwgKGNvbnN0IGNoYXIqKXBhcmFtZXRlcnMudWlQcm9jZXNzQnVuZGxlUmVzb3Vy
Y2VQYXRoLmRhdGEoKSwKICAgICAgICAgTlVMTApJbmRleDogU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZj
cHJvagkocmV2aXNpb24gNzY0MTkpCisrKyBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE0MDEsMTAgKzE0MDEsNiBAQAogCQkJCQkJPgogCQkJCQk8
L0ZpbGU+CiAJCQkJCTxGaWxlCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2Vi
Q29yZVN1cHBvcnRcd2luXFdlYkRhdGFiYXNlTWFuYWdlcldpbi5jcHAiCi0JCQkJCQk+Ci0JCQkJ
CTwvRmlsZT4KLQkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xX
ZWJDb3JlU3VwcG9ydFx3aW5cV2ViRXJyb3JzV2luLmNwcCIKIAkJCQkJCT4KIAkJCQkJPC9GaWxl
PgpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gNzY1NTYpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwyMyBAQAorMjAxMS0wMS0yNCAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICBVc2Ug
ZGVzaWduYXRlZCB0ZW1wIGRpcmVjdG9yeSBmb3IgdGhlIGRhdGFiYXNlIGZvciBXZWJLaXQyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzA1MgorICAg
ICAgICAKKyAgICAgICAgQWRvcHQgdGhlIG5ldyBXSzIgQVBJIGZvciB0aGlzLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpsaWJyYXJ5UGF0aEZvclRlc3RpbmcpOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9s
bGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1MaWJyYXJ5
UGF0aEZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvcXQvVGVzdENvbnRy
b2xsZXJRdC5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJh
cnlQYXRoRm9yVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENv
bnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1M
aWJyYXJ5UGF0aEZvclRlc3RpbmcpOgorCiAyMDExLTAxLTI0ICBMdWNhcyBGb3JzY2hsZXIgIDxs
Zm9yc2NobGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGVwaGFuaWUgTGV3
aXMuCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2
aXNpb24gNzY0MTkpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tQ
YWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4dFByaXZhdGUuaD4KICNpbmNs
dWRlIDxXZWJLaXQyL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBX
VFIgewpAQCAtMTY0LDYgKzE2NSwxOCBAQCBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0
ZU90aGVyUGFnCiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250
cm9sbGVyOjpsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIC8vIEZJWE1FOiBUaGlzIG1h
eSBub3QgYmUgc3VmZmljaWVudCB0byBwcmV2ZW50IGludGVyYWN0aW9ucy9jcmFzaGVzCisgICAg
Ly8gd2hlbiBydW5uaW5nIG1vcmUgdGhhbiBvbmUgY29weSBvZiBEdW1wUmVuZGVyVHJlZS4KKyAg
ICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTA2Cisg
ICAgY2hhciogZHVtcFJlbmRlclRyZWVUZW1wID0gZ2V0ZW52KCJEVU1QUkVOREVSVFJFRV9URU1Q
Iik7CisgICAgaWYgKGR1bXBSZW5kZXJUcmVlVGVtcCkKKyAgICAgICAgcmV0dXJuIGR1bXBSZW5k
ZXJUcmVlVGVtcDsKKyAgICByZXR1cm4gcGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsK
K30KKworCiB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiB7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yMTksNiArMjMy
LDE1IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MKICAgICBtX3Bh
Z2VHcm91cC5hZG9wdChXS1BhZ2VHcm91cENyZWF0ZVdpdGhJZGVudGlmaWVyKHBhZ2VHcm91cElk
ZW50aWZpZXIuZ2V0KCkpKTsKIAogICAgIG1fY29udGV4dC5hZG9wdChXS0NvbnRleHRDcmVhdGVX
aXRoSW5qZWN0ZWRCdW5kbGVQYXRoKGluamVjdGVkQnVuZGxlUGF0aCgpKSk7CisKKyAgICBjb25z
dCBjaGFyKiBwYXRoID0gbGlicmFyeVBhdGhGb3JUZXN0aW5nKCk7CisgICAgaWYgKHBhdGgpIHsK
KyAgICAgICAgVmVjdG9yPGNoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KHN0cmxlbihwYXRoKSArIHN0
cmxlbigiL0RhdGFiYXNlcyIpKTsKKyAgICAgICAgc3ByaW50ZihkYXRhYmFzZURpcmVjdG9yeS5k
YXRhKCksICIlcyVzIiwgcGF0aCwgIi9EYXRhYmFzZXMiKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IGRhdGFiYXNlRGlyZWN0b3J5V0soQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoZGF0YWJhc2VEaXJlY3RvcnkuZGF0YSgpKSk7CisgICAgICAgIFdLQ29u
dGV4dFNldERhdGFiYXNlRGlyZWN0b3J5KG1fY29udGV4dC5nZXQoKSwgZGF0YWJhc2VEaXJlY3Rv
cnlXSy5nZXQoKSk7CisgICAgfQorCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpOwog
CiAgICAgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQgaW5qZWN0ZWRCdW5kbGVDbGllbnQg
PSB7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCShyZXZpc2lv
biA3NjQxOSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtOTAsNiArOTAsOSBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJ1
bk1vZGFsKFdLUGFnZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAgICAgc3RhdGljIHZv
aWQgcnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3Kik7CiAKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
bGlicmFyeVBhdGhGb3JUZXN0aW5nKCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHBsYXRmb3Jt
TGlicmFyeVBhdGhGb3JUZXN0aW5nKCk7CisKICAgICBPd25QdHI8VGVzdEludm9jYXRpb24+IG1f
Y3VycmVudEludm9jYXRpb247CiAKICAgICBib29sIG1fZHVtcFBpeGVsczsKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lv
biA3NjQxOSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Rlc3RDb250cm9sbGVyTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03MSw0ICs3MSw5IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OnJ1bk1vZGFsKFBsYXRmb3JtV2UKICAgICBbTlNBcHAgcnVuTW9kYWxGb3JXaW5kb3c6d2luZG93
XTsKIH0KIAorY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhG
b3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gW1tAIn4vTGlicmFyeS9BcHBsaWNhdGlvbiBTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlIiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBVVEY4U3Ry
aW5nXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL3F0L1Rlc3RDb250cm9sbGVyUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvcXQvVGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDc2NDE5KQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9xdC9UZXN0Q29udHJvbGxlclF0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTMzLDYgKzEzMywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpydW5Nb2RhbChQbGF0
Zm9ybVdlCiAgICAgLy8gRklYTUU6IE5lZWQgdG8gaW1wbGVtZW50IHRoaXMgdG8gdGVzdCBzaG93
TW9kYWxEaWFsb2cuCiB9CiAKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxp
YnJhcnlQYXRoRm9yVGVzdGluZygpCit7CisgICAgcmV0dXJuIDA7Cit9CisKICNpbmNsdWRlICJU
ZXN0Q29udHJvbGxlclF0Lm1vYyIKIAogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL3dpbi9UZXN0Q29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vVGVzdENvbnRyb2xsZXJXaW4uY3BwCShyZXZpc2lv
biA3NjQxOSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1Rlc3RDb250cm9sbGVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU3LDQgKzE1Nyw5IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2UKICAgICAvLyBGSVhNRTogTmVlZCB0byBpbXBsZW1lbnQg
dGhpcyB0byB0ZXN0IHNob3dNb2RhbERpYWxvZy4KIH0KIAorY29uc3QgY2hhciogVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gMDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCg==
</data>
<flag name="review"
          id="71460"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>