<?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>68924</bug_id>
          
          <creation_ts>2011-09-27 12:02:36 -0700</creation_ts>
          <short_desc>[WK2] Support setMarkedText/hasMarkedText/unmarkText/insertText for WTR TextInputController</short_desc>
          <delta_ts>2011-10-05 12:45:54 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42337</blocked>
    
    <blocked>66561</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>darin</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>474132</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-09-27 12:02:36 -0700</bug_when>
    <thetext>Support the above functions for TextInputController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475418</commentid>
    <comment_count>1</comment_count>
      <attachid>109161</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-09-29 07:22:13 -0700</bug_when>
    <thetext>Created attachment 109161
patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477183</commentid>
    <comment_count>2</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-03 13:20:58 -0700</bug_when>
    <thetext>ping reviewer. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478498</commentid>
    <comment_count>3</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-05 10:44:19 -0700</bug_when>
    <thetext>Darin, would you review this when you get a chance? thx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478525</commentid>
    <comment_count>4</comment_count>
      <attachid>109161</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-05 11:19:43 -0700</bug_when>
    <thetext>Comment on attachment 109161
patch 1

thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478529</commentid>
    <comment_count>5</comment_count>
      <attachid>109161</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 11:21:35 -0700</bug_when>
    <thetext>Comment on attachment 109161
patch 1

Rejecting attachment 109161 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Bindings/TextInputController.idl
patching file Tools/WebKitTestRunner/InjectedBundle/qt/InjectedBundle.pro
patching file Tools/WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj
patching file Tools/WebKitTestRunner/win/InjectedBundle.vcproj
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/platform/wk2/Skipped

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9954521</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478555</commentid>
    <comment_count>6</comment_count>
      <attachid>109830</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-10-05 11:52:16 -0700</bug_when>
    <thetext>Created attachment 109830
patch 2: rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478590</commentid>
    <comment_count>7</comment_count>
      <attachid>109830</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 12:45:47 -0700</bug_when>
    <thetext>Comment on attachment 109830
patch 2: rebase

Clearing flags on attachment: 109830

Committed r96740: &lt;http://trac.webkit.org/changeset/96740&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>478592</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-05 12:45:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109161</attachid>
            <date>2011-09-29 07:22:13 -0700</date>
            <delta_ts>2011-10-05 11:52:16 -0700</delta_ts>
            <desc>patch 1</desc>
            <filename>68924_1.patch</filename>
            <type>text/plain</type>
            <size>31283</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MzI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDktMjkgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBTdXBwb3J0IHNldE1hcmtlZFRl
eHQvaGFzTWFya2VkVGV4dC91bm1hcmtUZXh0L2luc2VydFRleHQgZm9yIFdUUiBUZXh0SW5wdXRD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODkyNAorCisgICAgICAgIEltcGxlbWVudGVkIFdLQnVuZGxlUGFnZSBwcml2YXRlIEFQSXMg
dG8gc3VwcG9ydCB0aGUgYWJvdmUgZnVuY3Rpb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24p
OgorICAgICAgICAoV0tCdW5kbGVQYWdlSGFzQ29tcG9zaXRpb24pOgorICAgICAgICAoV0tCdW5k
bGVQYWdlQ29uZmlybUNvbXBvc2l0aW9uKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUNvbmZpcm1D
b21wb3NpdGlvbldpdGhUZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldENvbXBvc2l0aW9u
Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhhc0NvbXBvc2l0aW9uRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbmZpcm1Db21wb3NpdGlvbkZv
clRlc3RpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIw
MTEtMDktMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEZvcmNlIHNpbmdsZSBoZWFkZXIgaW5jbHVkZSBpbiBXZWJLaXQyIEdUSysg
QVBJCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCShyZXZpc2lvbiA5NjIyMikK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjkxLDMgKzI5MSwyMiBAQCBXS0FycmF5UmVm
IFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVwYWluCiAgICAgcmV0dXJuIHRvQVBJKHRvSW1wbChw
YWdlUmVmKS0+dHJhY2tlZFJlcGFpbnRSZWN0cygpLnJlbGVhc2VSZWYoKSk7CiB9CiAKK3ZvaWQg
V0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIHRleHQsIGludCBmcm9tLCBpbnQgbGVuZ3RoKQoreworICAgIHRvSW1wbChwYWdlUmVm
KS0+c2V0Q29tcG9zaXRpb25Gb3JUZXN0aW5nKHRvSW1wbCh0ZXh0KS0+c3RyaW5nKCksIGZyb20s
IGxlbmd0aCk7Cit9CisKK2Jvb2wgV0tCdW5kbGVQYWdlSGFzQ29tcG9zaXRpb24oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+aGFzQ29tcG9z
aXRpb25Gb3JUZXN0aW5nKCk7Cit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlQ29uZmlybUNvbXBvc2l0
aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHRvSW1wbChwYWdlUmVmKS0+Y29u
ZmlybUNvbXBvc2l0aW9uRm9yVGVzdGluZyhTdHJpbmcoKSk7Cit9CisKK3ZvaWQgV0tCdW5kbGVQ
YWdlQ29uZmlybUNvbXBvc2l0aW9uV2l0aFRleHQoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdL
U3RyaW5nUmVmIHRleHQpCit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jb25maXJtQ29tcG9zaXRp
b25Gb3JUZXN0aW5nKHRvSW1wbCh0ZXh0KS0+c3RyaW5nKCkpOworfQpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgJKHJldmlzaW9uIDk2MjIyKQorKysgU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDEwIEBAIFdLX0VYUE9SVCBib29sIFdL
QnVuZGxlUGFnZUlzVHJhY2tpbmdSZXAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVJlc2V0
VHJhY2tlZFJlcGFpbnRzKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0FycmF5
UmVmIFdLQnVuZGxlUGFnZUNvcHlUcmFja2VkUmVwYWludFJlY3RzKFdLQnVuZGxlUGFnZVJlZiBw
YWdlKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24oV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRleHQsIGludCBmcm9tLCBpbnQgbGVuZ3RoKTsK
K1dLX0VYUE9SVCBib29sIFdLQnVuZGxlUGFnZUhhc0NvbXBvc2l0aW9uKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUNvbmZpcm1Db21wb3NpdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VDb25maXJt
Q29tcG9zaXRpb25XaXRoVGV4dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGV4
dCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gOTYyMjIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI1MDYsNiArMjUwNiwzNCBAQCB2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlTW91c2VNb3Rpb24oV2Vi
Q29yCiAgICAgbW91c2VFdmVudChXZWJNb3VzZUV2ZW50KFdlYk1vdXNlRXZlbnQ6Ok1vdXNlTW92
ZSwgV2ViTW91c2VFdmVudDo6Tm9CdXR0b24sIHBvc2l0aW9uLCBwb3NpdGlvbiwgMCwgMCwgMCwg
MCwgV2ViTW91c2VFdmVudDo6TW9kaWZpZXJzKCksIHRpbWUpKTsKIH0KIAordm9pZCBXZWJQYWdl
OjpzZXRDb21wb3NpdGlvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmlu
ZywgdWludDY0X3QgZnJvbSwgdWludDY0X3QgbGVuZ3RoKQoreworICAgIEZyYW1lKiBmcmFtZSA9
IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIGlm
ICghZnJhbWUgfHwgIWZyYW1lLT5lZGl0b3IoKS0+Y2FuRWRpdCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7CisgICAgdW5k
ZXJsaW5lcy5hcHBlbmQoQ29tcG9zaXRpb25VbmRlcmxpbmUoMCwgY29tcG9zaXRpb25TdHJpbmcu
bGVuZ3RoKCksIENvbG9yKENvbG9yOjpibGFjayksIGZhbHNlKSk7CisgICAgZnJhbWUtPmVkaXRv
cigpLT5zZXRDb21wb3NpdGlvbihjb21wb3NpdGlvblN0cmluZywgdW5kZXJsaW5lcywgZnJvbSwg
ZnJvbSArIGxlbmd0aCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6aGFzQ29tcG9zaXRpb25Gb3JUZXN0
aW5nKCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5m
b2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWUgJiYgZnJhbWUtPmVkaXRvcigp
LT5oYXNDb21wb3NpdGlvbigpOworfQorCit2b2lkIFdlYlBhZ2U6OmNvbmZpcm1Db21wb3NpdGlv
bkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmluZykKK3sKKyAgICBGcmFt
ZSogZnJhbWUgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUo
KTsKKyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+ZWRpdG9yKCktPmNhbkVkaXQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGNvbXBvc2l0aW9uU3RyaW5nLmlzTnVsbCgpKQorICAgICAg
ICBmcmFtZS0+ZWRpdG9yKCktPmNvbmZpcm1Db21wb3NpdGlvbigpOworICAgIGZyYW1lLT5lZGl0
b3IoKS0+Y29uZmlybUNvbXBvc2l0aW9uKGNvbXBvc2l0aW9uU3RyaW5nKTsKK30KKwogRnJhbWUq
IFdlYlBhZ2U6Om1haW5GcmFtZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFnZSA/IG1fcGFn
ZS0+bWFpbkZyYW1lKCkgOiAwOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA5NjIyMikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3NCw2ICszNzQsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgZ2VzdHVyZURpZEVuZCgpOwogI2VuZGlmCiAKKyAgICB2b2lk
IHNldENvbXBvc2l0aW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5n
LCB1aW50NjRfdCBmcm9tLCB1aW50NjRfdCBsZW5ndGgpOworICAgIGJvb2wgaGFzQ29tcG9zaXRp
b25Gb3JUZXN0aW5nKCk7CisgICAgdm9pZCBjb25maXJtQ29tcG9zaXRpb25Gb3JUZXN0aW5nKGNv
bnN0IFN0cmluZyYgY29tcG9zaXRpb25TdHJpbmcpOworCiAgICAgLy8gRklYTUU6IFRoaXMgYSBk
dW1teSBtZXNzYWdlLCB0byBhdm9pZCBicmVha2luZyB0aGUgYnVpbGQgZm9yIHBsYXRmb3JtcyB0
aGF0IGRvbid0IHJlcXVpcmUKICAgICAvLyBhbnkgc3luY2hyb25vdXMgbWVzc2FnZXMsIGFuZCBz
aG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS84Nzc1MTE1PiBpcyBmaXhlZC4K
ICAgICB2b2lkIGR1bW15KGJvb2wmKTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2MzI1KQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDktMjkgIENoYW5nIFNodSAg
PGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBTdXBwb3J0IHNldE1hcmtlZFRleHQv
aGFzTWFya2VkVGV4dC91bm1hcmtUZXh0L2luc2VydFRleHQgZm9yIFdUUiBUZXh0SW5wdXRDb250
cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
ODkyNAorCisgICAgICAgIEFkZGVkIFRleHRJbnB1dENvbnRyb2xsZXIgZmlsZXMgYW5kIEpTIGlu
dGVyZmFjZXMgZm9yIHRoZSBhYm92ZSBmdW5jdGlvbnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9EZXJpdmVkU291cmNlcy5wcm86
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xs
ZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2lu
VGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6dGV4dElucHV0Q29u
dHJvbGxlcik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmRp
ZENsZWFyV2luZG93Rm9yRnJhbWUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGV4dElucHV0Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV1RSOjpU
ZXh0SW5wdXRDb250cm9sbGVyOjpjcmVhdGUpOgorICAgICAgICAoV1RSOjpUZXh0SW5wdXRDb250
cm9sbGVyOjpUZXh0SW5wdXRDb250cm9sbGVyKToKKyAgICAgICAgKFdUUjo6VGV4dElucHV0Q29u
dHJvbGxlcjo6flRleHRJbnB1dENvbnRyb2xsZXIpOgorICAgICAgICAoV1RSOjpUZXh0SW5wdXRD
b250cm9sbGVyOjp3cmFwcGVyQ2xhc3MpOgorICAgICAgICAoV1RSOjpUZXh0SW5wdXRDb250cm9s
bGVyOjptYWtlV2luZG93T2JqZWN0KToKKyAgICAgICAgKFdUUjo6VGV4dElucHV0Q29udHJvbGxl
cjo6c2V0TWFya2VkVGV4dCk6CisgICAgICAgIChXVFI6OlRleHRJbnB1dENvbnRyb2xsZXI6Omhh
c01hcmtlZFRleHQpOgorICAgICAgICAoV1RSOjpUZXh0SW5wdXRDb250cm9sbGVyOjp1bm1hcmtU
ZXh0KToKKyAgICAgICAgKFdUUjo6VGV4dElucHV0Q29udHJvbGxlcjo6aW5zZXJ0VGV4dCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9s
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
cXQvSW5qZWN0ZWRCdW5kbGUucHJvOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvV2ViS2l0
VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvd2luL0luamVjdGVkQnVuZGxlLnZjcHJvajoKKwogMjAxMS0wOS0yOSAgSGFucyBX
ZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogVXNlIExl
dmVsREIgYWxzbyBmb3IgaW4tbWVtb3J5IGRhdGFiYXNlcwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gOTYyMjIpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAgSU5URVJGQUNFUyA9IFwKICAgICBFdmVudFNlbmRpbmdDb250cm9sbGVyIFwK
ICAgICBHQ0NvbnRyb2xsZXIgXAogICAgIExheW91dFRlc3RDb250cm9sbGVyIFwKKyAgICBUZXh0
SW5wdXRDb250cm9sbGVyIFwKICMKIAogU0NSSVBUUyA9IFwKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMucHJvCShyZXZpc2lvbiA5NjIyMikKKysrIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2
ICsxMyw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
RXZlbnRTZW5kaW5nQ29udHJvbGxlci5pZGwgXAogICAgIEluamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0dDQ29udHJvbGxlci5pZGwgXAogICAgIEluamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRl
c3RDb250cm9sbGVyLmlkbCBcCisgICAgSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGV4dElucHV0
Q29udHJvbGxlci5pZGwgXAogCiBkZWZpbmVUZXN0KGFkZEV4dHJhQ29tcGlsZXIpIHsKICAgICBl
dmFsKCQkezF9LkNPTkZJRyA9IHRhcmdldF9wcmVkZXBzIG5vX2xpbmspCkluZGV4OiBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDk2MjIyKQorKysgVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNTksNyArNTks
OCBAQCBub2luc3RfTFRMSUJSQVJJRVMgKz0gTGlicmFyaWVzL2xpYlRlc3RSCiB3ZWJraXR0ZXN0
cnVubmVyX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxl
L0pTRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgXAogCURlcml2ZWRTb3VyY2VzL0luamVjdGVk
QnVuZGxlL0pTR0NDb250cm9sbGVyLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvSW5qZWN0ZWRCdW5k
bGUvSlNMYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKwlEZXJpdmVkU291cmNlcy9JbmplY3RlZEJ1
bmRsZS9KU0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvSW5qZWN0
ZWRCdW5kbGUvSlNUZXh0SW5wdXRDb250cm9sbGVyLmNwcAogbm9kaXN0X0xpYnJhcmllc19saWJU
ZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfbGFfU09VUkNFUyA9ICQod2Via2l0dGVzdHJ1bm5lcl9i
dWlsdF9zb3VyY2VzKQogQlVJTFRfU09VUkNFUyArPSAkKHdlYmtpdHRlc3RydW5uZXJfYnVpbHRf
c291cmNlcykKIApAQCAtODEsNyArODIsOCBAQCBMaWJyYXJpZXNfbGliVGVzdFJ1bm5lckluamVj
dGVkQnVuZGxlX2xhCiAJVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuY3BwIFwKIAlUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oIFwKIAlUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBcCi0JVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisJVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcCBcCisJVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9sbGVyLmgK
IAogTGlicmFyaWVzX2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9sYV9MSUJBREQgPSBcCiAJ
bGliV2ViQ29yZUludGVybmFscy5sYQpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDk2
MjIyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3NSw2ICsxNzUsNyBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpiZWdpblRlc3RpbmcoKQogICAgIG1fbGF5b3V0VGVzdENvbnRyb2xsZXIgPSBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Y3JlYXRlKCk7CiAgICAgbV9nY0NvbnRyb2xsZXIgPSBHQ0NvbnRy
b2xsZXI6OmNyZWF0ZSgpOwogICAgIG1fZXZlbnRTZW5kaW5nQ29udHJvbGxlciA9IEV2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXI6OmNyZWF0ZSgpOworICAgIG1fdGV4dElucHV0Q29udHJvbGxlciA9IFRl
eHRJbnB1dENvbnRyb2xsZXI6OmNyZWF0ZSgpOwogCiAgICAgV0tCdW5kbGVTZXRTaG91bGRUcmFj
a1Zpc2l0ZWRMaW5rcyhtX2J1bmRsZSwgZmFsc2UpOwogICAgIFdLQnVuZGxlUmVtb3ZlQWxsVmlz
aXRlZExpbmtzKG1fYnVuZGxlKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgJKHJldmlzaW9uIDk2MjIyKQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXZlbnRTZW5kaW5n
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkdDQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkxheW91
dFRlc3RDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1JldGFpblB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTU0LDYgKzU1LDcgQEAgcHVibGljOgogICAg
IExheW91dFRlc3RDb250cm9sbGVyKiBsYXlvdXRUZXN0Q29udHJvbGxlcigpIHsgcmV0dXJuIG1f
bGF5b3V0VGVzdENvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBHQ0NvbnRyb2xsZXIqIGdjQ29udHJv
bGxlcigpIHsgcmV0dXJuIG1fZ2NDb250cm9sbGVyLmdldCgpOyB9CiAgICAgRXZlbnRTZW5kaW5n
Q29udHJvbGxlciogZXZlbnRTZW5kaW5nQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fZXZlbnRTZW5k
aW5nQ29udHJvbGxlci5nZXQoKTsgfQorICAgIFRleHRJbnB1dENvbnRyb2xsZXIqIHRleHRJbnB1
dENvbnRyb2xsZXIoKSB7IHJldHVybiBtX3RleHRJbnB1dENvbnRyb2xsZXIuZ2V0KCk7IH0KIAog
ICAgIEluamVjdGVkQnVuZGxlUGFnZSogcGFnZSgpIGNvbnN0OwogICAgIHNpemVfdCBwYWdlQ291
bnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VzLnNpemUoKTsgfQpAQCAtMTAxLDYgKzEwMyw3IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPExheW91dFRlc3RDb250cm9sbGVyPiBtX2xheW91dFRlc3RD
b250cm9sbGVyOwogICAgIFJlZlB0cjxHQ0NvbnRyb2xsZXI+IG1fZ2NDb250cm9sbGVyOwogICAg
IFJlZlB0cjxFdmVudFNlbmRpbmdDb250cm9sbGVyPiBtX2V2ZW50U2VuZGluZ0NvbnRyb2xsZXI7
CisgICAgUmVmUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+IG1fdGV4dElucHV0Q29udHJvbGxlcjsK
IAogICAgIFdLQnVuZGxlRnJhbWVSZWYgbV90b3BMb2FkaW5nRnJhbWU7CiAKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAJKHJldmlzaW9uIDk2MjIyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NDQsNiArNjQ0LDcgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZENsZWFyV2lu
ZG93RgogICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigp
LT5tYWtlV2luZG93T2JqZWN0KGNvbnRleHQsIHdpbmRvdywgJmV4Y2VwdGlvbik7CiAgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmdjQ29udHJvbGxlcigpLT5tYWtlV2luZG93T2JqZWN0KGNv
bnRleHQsIHdpbmRvdywgJmV4Y2VwdGlvbik7CiAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LmV2ZW50U2VuZGluZ0NvbnRyb2xsZXIoKS0+bWFrZVdpbmRvd09iamVjdChjb250ZXh0LCB3aW5k
b3csICZleGNlcHRpb24pOworICAgIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS50ZXh0SW5wdXRD
b250cm9sbGVyKCktPm1ha2VXaW5kb3dPYmplY3QoY29udGV4dCwgd2luZG93LCAmZXhjZXB0aW9u
KTsKICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdChjb250ZXh0
KTsKIH0KIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0
SW5wdXRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAwKQorKysg
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRJbnB1dENvbnRyb2xsZXIu
aCIKKworI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVQYWdlLmgiCisjaW5jbHVkZSAiSlNUZXh0SW5wdXRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
U3RyaW5nRnVuY3Rpb25zLmgiCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZVBhZ2VQcml2YXRl
Lmg+CisKK25hbWVzcGFjZSBXVFIgeworCitQYXNzUmVmUHRyPFRleHRJbnB1dENvbnRyb2xsZXI+
IFRleHRJbnB1dENvbnRyb2xsZXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBUZXh0SW5wdXRDb250cm9sbGVyKTsKK30KKworVGV4dElucHV0Q29udHJvbGxlcjo6VGV4dElu
cHV0Q29udHJvbGxlcigpCit7Cit9CisKK1RleHRJbnB1dENvbnRyb2xsZXI6On5UZXh0SW5wdXRD
b250cm9sbGVyKCkKK3sKK30KKworSlNDbGFzc1JlZiBUZXh0SW5wdXRDb250cm9sbGVyOjp3cmFw
cGVyQ2xhc3MoKQoreworICAgIHJldHVybiBKU1RleHRJbnB1dENvbnRyb2xsZXI6OnRleHRJbnB1
dENvbnRyb2xsZXJDbGFzcygpOworfQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Om1ha2VX
aW5kb3dPYmplY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVj
dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIHNldFByb3BlcnR5KGNvbnRleHQsIHdp
bmRvd09iamVjdCwgInRleHRJbnB1dENvbnRyb2xsZXIiLCB0aGlzLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCBleGNlcHRpb24p
OworfQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRleHQoSlNTdHJpbmdS
ZWYgdGV4dCwgaW50IGZyb20sIGludCBsZW5ndGgpCit7CisgICAgV0tCdW5kbGVQYWdlU2V0Q29t
cG9zaXRpb24oSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgpLCB0b1dLKHRl
eHQpLmdldCgpLCBmcm9tLCBsZW5ndGgpOworfQorCitib29sIFRleHRJbnB1dENvbnRyb2xsZXI6
Omhhc01hcmtlZFRleHQoKQoreworICAgIHJldHVybiBXS0J1bmRsZVBhZ2VIYXNDb21wb3NpdGlv
bihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOworfQorCit2b2lkIFRl
eHRJbnB1dENvbnRyb2xsZXI6OnVubWFya1RleHQoKQoreworICAgIFdLQnVuZGxlUGFnZUNvbmZp
cm1Db21wb3NpdGlvbihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwor
fQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Omluc2VydFRleHQoSlNTdHJpbmdSZWYgdGV4
dCkKK3sKKyAgICBXS0J1bmRsZVBhZ2VDb25maXJtQ29tcG9zaXRpb25XaXRoVGV4dChJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCksIHRvV0sodGV4dCkuZ2V0KCkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVFIKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGV4dElucHV0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGV4dElucHV0Q29udHJvbGxlci5oCShyZXZpc2lv
biAwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRD
b250cm9sbGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgVGV4dElucHV0Q29udHJvbGxlcl9oCisjZGVmaW5lIFRleHRJ
bnB1dENvbnRyb2xsZXJfaAorCisjaW5jbHVkZSAiSlNXcmFwcGFibGUuaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKworY2xhc3MgVGV4dElucHV0Q29u
dHJvbGxlciA6IHB1YmxpYyBKU1dyYXBwYWJsZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8VGV4dElucHV0Q29udHJvbGxlcj4gY3JlYXRlKCk7CisgICAgdmlydHVhbCB+VGV4dElu
cHV0Q29udHJvbGxlcigpOworCisgICAgLy8gSlNXcmFwcGFibGUKKyAgICB2aXJ0dWFsIEpTQ2xh
c3NSZWYgd3JhcHBlckNsYXNzKCk7CisKKyAgICB2b2lkIG1ha2VXaW5kb3dPYmplY3QoSlNDb250
ZXh0UmVmLCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7
CisKKyAgICB2b2lkIHNldE1hcmtlZFRleHQoSlNTdHJpbmdSZWYgdGV4dCwgaW50IGZyb20sIGlu
dCBsZW5ndGgpOworICAgIGJvb2wgaGFzTWFya2VkVGV4dCgpOworICAgIHZvaWQgdW5tYXJrVGV4
dCgpOworICAgIHZvaWQgaW5zZXJ0VGV4dChKU1N0cmluZ1JlZiB0ZXh0KTsKKworcHJpdmF0ZToK
KyAgICBUZXh0SW5wdXRDb250cm9sbGVyKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVFIKKwor
I2VuZGlmIC8vIFRleHRJbnB1dENvbnRyb2xsZXJfaApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1RleHRJbnB1dENvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiAwKQorKysgVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlkbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
bW9kdWxlIFdUUiB7CisKKyAgICBpbnRlcmZhY2UgVGV4dElucHV0Q29udHJvbGxlciB7CisgICAg
ICAgIHZvaWQgc2V0TWFya2VkVGV4dChpbiBET01TdHJpbmcgc3RyaW5nLCBpbiBsb25nIGZyb20s
IGluIGxvbmcgbGVuZ3RoKTsKKyAgICAgICAgYm9vbGVhbiBoYXNNYXJrZWRUZXh0KCk7CisgICAg
ICAgIHZvaWQgdW5tYXJrVGV4dCgpOworICAgICAgICB2b2lkIGluc2VydFRleHQoaW4gRE9NU3Ry
aW5nIHN0cmluZyk7CisgICAgfTsKKworfQorCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlLnBybwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3F0L0luamVjdGVkQnVuZGxlLnBybwko
cmV2aXNpb24gOTYyMjIpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L3F0L0luamVjdGVkQnVuZGxlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQsOCBAQCBT
T1VSQ0VTICs9IFwKICAgICAuLi9HQ0NvbnRyb2xsZXIuaCBcCiAgICAgLi4vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwIFwKICAgICAuLi9MYXlvdXRUZXN0Q29udHJvbGxlci5oIFwKKyAgICAuLi9U
ZXh0SW5wdXRDb250cm9sbGVyLmNwcCBcCisgICAgLi4vVGV4dElucHV0Q29udHJvbGxlci5oIFwK
ICAgICAuLi9CaW5kaW5ncy9KU1dyYXBwZXIuY3BwIFwKICAgICBBY3RpdmF0ZUZvbnRzUXQuY3Bw
IFwKICAgICBJbmplY3RlZEJ1bmRsZVF0LmNwcCBcCkBAIC0zMSw2ICszMyw3IEBAIFNPVVJDRVMg
Kz0gXAogICAgICQkR0VORVJBVEVEX1NPVVJDRVNfRElSL0pTRXZlbnRTZW5kaW5nQ29udHJvbGxl
ci5jcHAgXAogICAgICQkR0VORVJBVEVEX1NPVVJDRVNfRElSL0pTR0NDb250cm9sbGVyLmNwcCBc
CiAgICAgJCRHRU5FUkFURURfU09VUkNFU19ESVIvSlNMYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
XAorICAgICQkR0VORVJBVEVEX1NPVVJDRVNfRElSL0pTVGV4dElucHV0Q29udHJvbGxlci5jcHAg
XAogCiBIRUFERVJTICs9IFwKICAgICAuLi9BY3RpdmF0ZUZvbnRzLmggXApAQCAtMzksNiArNDIs
NyBAQCBIRUFERVJTICs9IFwKICAgICAuLi9JbmplY3RlZEJ1bmRsZS5oIFwKICAgICAuLi9Jbmpl
Y3RlZEJ1bmRsZVBhZ2UuaCBcCiAgICAgLi4vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBcCisgICAg
Li4vVGV4dElucHV0Q29udHJvbGxlci5oIFwKIAogIUNPTkZJRyhyZWxlYXNlLCBkZWJ1Z3xyZWxl
YXNlKSB7CiAgICAgT0JKRUNUU19ESVIgPSBvYmovZGVidWcKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NjIyMikKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0yMyw2ICsyMyw4IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCQk1MzIyRkI0MzEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjJGQjQx
MTNGREEwQ0QwMDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwICovOyB9OwogCQk1
MzIyRkI0NjEzRkRBMEVBMDA0MUFCQ0MgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzIyRkI0NDEzRkRBMEVBMDA0
MUFCQ0MgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgKi87IH07CisJCTU2NDFFMkQwMTQzMzVFOTUw
MDgzMDdFNSAvKiBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTY0MUUyQ0UxNDMzNUU5NTAwODMwN0U1IC8qIEpT
VGV4dElucHV0Q29udHJvbGxlci5jcHAgKi87IH07CisJCTU2NjRBNDlBMTQzMjYzODQwMDg4ODFC
RSAvKiBUZXh0SW5wdXRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU2NjRBNDk4MTQzMjYzODQwMDg4ODFCRSAvKiBUZXh0SW5wdXRD
b250cm9sbGVyLmNwcCAqLzsgfTsKIAkJNTY3MEI4MjgxMzg2RkNBNTAwMkVCMzU1IC8qIEV2ZW50
U2VuZGVyUHJveHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NjcwQjgyNzEzODZGQ0E1MDAyRUIzNTUgLyogRXZlbnRTZW5kZXJQcm94eS5tbSAqLzsg
fTsKIAkJNjUxMEE3ODIxMUVDNjQzODAwNDEwODY3IC8qIEFIRU1fX19fLlRURiBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUxMEE3NzcxMUVDNjQzODAw
NDEwODY3IC8qIEFIRU1fX19fLlRURiAqLzsgfTsKIAkJNjUxMEE3ODMxMUVDNjQzODAwNDEwODY3
IC8qIENvbG9yQml0cy50dGYgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1MTBBNzc4MTFFQzY0MzgwMDQxMDg2NyAvKiBDb2xvckJpdHMudHRmICovOyB9
OwpAQCAtODgsNiArOTAsMTEgQEAKIAkJNTMyMkZCNDIxM0ZEQTBDRDAwNDFBQkNDIC8qIEN5Y2xp
Y1JlZHVuZGFuY3lDaGVjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDeWNs
aWNSZWR1bmRhbmN5Q2hlY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTMyMkZC
NDQxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGl4ZWxEdW1wU3VwcG9ydC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUzMjJGQjQ1MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhlbER1bXBT
dXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBpeGVsRHVtcFN1cHBv
cnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTY0MUUyQ0UxNDMzNUU5NTAwODMw
N0U1IC8qIEpTVGV4dElucHV0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0VGVzdFJ1bm5lci9KU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQk1NjQxRTJDRjE0MzM1RTk1MDA4MzA3RTUg
LyogSlNUZXh0SW5wdXRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEpTVGV4dElucHV0Q29udHJvbGxlci5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
VGVzdFJ1bm5lci9KU1RleHRJbnB1dENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJNTY2NEE0OTYxNDMyNjM3NzAwODg4MUJFIC8qIFRleHRJbnB1dENv
bnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFRleHRJbnB1dENvbnRyb2xsZXIu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NjY0QTQ5ODE0MzI2Mzg0MDA4ODgx
QkUgLyogVGV4dElucHV0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUZXh0SW5wdXRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTY2NEE0OTkxNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJbnB1dENvbnRyb2xsZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dElucHV0Q29udHJvbGxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NjcwQjgyNjEzODZGQzEzMDAyRUIzNTUg
LyogRXZlbnRTZW5kZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudFNlbmRlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU2NzBCODI3
MTM4NkZDQTUwMDJFQjM1NSAvKiBFdmVudFNlbmRlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gRXZlbnRTZW5kZXJQcm94eS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjUxMEE3NzcxMUVDNjQzODAwNDEwODY3IC8qIEFIRU1fX19fLlRU
RiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7
IG5hbWUgPSAiQUhFTV9fX18uVFRGIjsgcGF0aCA9ICJmb250cy9BSEVNX19fXy5UVEYiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUzLDYgKzI2MCw4IEBACiAJCQkJQkNDOTk4MTcx
MUQzRjUxRTAwMTdCQ0EyIC8qIExheW91dFRlc3RDb250cm9sbGVyLmNwcCAqLywKIAkJCQlCQ0M5
OTgxNjExRDNGNTFFMDAxN0JDQTIgLyogTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAqLywKIAkJCQlD
MENFNzIwQTEyNDdDOTMzMDBCQzBFQzQgLyogTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gKi8s
CisJCQkJNTY2NEE0OTgxNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJbnB1dENvbnRyb2xsZXIuY3Bw
ICovLAorCQkJCTU2NjRBNDk5MTQzMjYzODQwMDg4ODFCRSAvKiBUZXh0SW5wdXRDb250cm9sbGVy
LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IENvbnRyb2xsZXJzOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTMzMyw2ICszNDIsNyBAQAogCQkJCUJDOEZEOENCMTIwRTUyQjAwMEYzRTcx
QSAvKiBFdmVudFNlbmRpbmdDb250cm9sbGVyLmlkbCAqLywKIAkJCQlCQzE0RTRFMTEyMEUwMzIw
MDA4MjZDMEMgLyogR0NDb250cm9sbGVyLmlkbCAqLywKIAkJCQlCQzk1MkVEMjExRjNDMjlGMDAz
Mzk4QjQgLyogTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsICovLAorCQkJCTU2NjRBNDk2MTQzMjYz
NzcwMDg4ODFCRSAvKiBUZXh0SW5wdXRDb250cm9sbGVyLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gQmluZGluZ3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMzQ2LDYgKzM1Niw4
IEBACiAJCQkJQkMxNEU0RTkxMjBFMDNEODAwODI2QzBDIC8qIEpTR0NDb250cm9sbGVyLmggKi8s
CiAJCQkJQkM5NTJGMUQxMUYzQzY1MjAwMzM5OEI0IC8qIEpTTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwICovLAogCQkJCUJDOTUyRjFFMTFGM0M2NTIwMDMzOThCNCAvKiBKU0xheW91dFRlc3RDb250
cm9sbGVyLmggKi8sCisJCQkJNTY0MUUyQ0UxNDMzNUU5NTAwODMwN0U1IC8qIEpTVGV4dElucHV0
Q29udHJvbGxlci5jcHAgKi8sCisJCQkJNTY0MUUyQ0YxNDMzNUU5NTAwODMwN0U1IC8qIEpTVGV4
dElucHV0Q29udHJvbGxlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2Vz
IjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00OTYsNiArNTA4LDggQEAKIAkJCQlC
QzhGRDhDQTEyMEU1MjdGMDBGM0U3MUEgLyogRXZlbnRTZW5kaW5nQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQzhGRDhEMjEyMEU1NDVCMDBGM0U3MUEgLyogSlNFdmVudFNlbmRp
bmdDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwQ0U3MjBCMTI0N0M5MzMwMEJD
MEVDNCAvKiBMYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTU2
NjRBNDlBMTQzMjYzODQwMDg4ODFCRSAvKiBUZXh0SW5wdXRDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTU2NDFFMkQwMTQzMzVFOTUwMDgzMDdFNSAvKiBKU1RleHRJbnB1dENvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dp
bi9JbmplY3RlZEJ1bmRsZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93aW4vSW5qZWN0ZWRCdW5kbGUudmNwcm9qCShyZXZpc2lvbiA5NjIyMikKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd2luL0luamVjdGVkQnVuZGxlLnZjcHJvagkod29ya2luZyBjb3B5
KQpAQCAtNTYxLDYgKzU2MSw1OCBAQAogCQkJCQkvPgogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5qZWN0ZWRCdW5k
bGVcQmluZGluZ3NcVGV4dElucHV0Q29udHJvbGxlci5pZGwiCisJCQkJPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDTUlETFRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDTUlETFRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNNSURMVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ01JRExUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJl
bGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNNSURMVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNNSURMVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgogCQk8L0ZpbHRlcj4KIAkJPEZpbHRlcgogCQkJ
TmFtZT0iRGVyaXZlZCBTb3VyY2VzIgpAQCAtNTg5LDYgKzY0MSwxNCBAQAogCQkJCVJlbGF0aXZl
UGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0xheW91dFRlc3RDb250cm9sbGVyLmgiCiAJCQkJPgogCQkJPC9GaWxlPgorCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNUZXh0SW5wdXRDb250cm9sbGVyLmNwcCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1RleHRJbnB1
dENvbnRyb2xsZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsZQog
CQkJUmVsYXRpdmVQYXRoPSIuLlxJbmplY3RlZEJ1bmRsZVx3aW5cQWN0aXZhdGVGb250cy5jcHAi
CkBAIC02NDYsNiArNzA2LDE0IEBACiAJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluamVjdGVkQnVuZGxl
XHdpblxMYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAiCiAJCQk+CiAJCTwvRmlsZT4KKwkJPEZp
bGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cSW5qZWN0ZWRCdW5kbGVcVGV4dElucHV0Q29udHJvbGxl
ci5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cSW5q
ZWN0ZWRCdW5kbGVcVGV4dElucHV0Q29udHJvbGxlci5oIgorCQkJPgorCQk8L0ZpbGU+CiAJPC9G
aWxlcz4KIAk8R2xvYmFscz4KIAk8L0dsb2JhbHM+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjMyNSkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBA
CisyMDExLTA5LTI5ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dL
Ml0gU3VwcG9ydCBzZXRNYXJrZWRUZXh0L2hhc01hcmtlZFRleHQvdW5tYXJrVGV4dC9pbnNlcnRU
ZXh0IGZvciBXVFIgVGV4dElucHV0Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MjQKKworICAgICAgICBVbnNraXAgcGFzc2VkIHRl
c3RzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGxhdGZvcm0vd2syL1NraXBwZWQ6CisKIDIwMTEtMDktMjkgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTWFrZSBzZWFyY2gt
aW4tcmVzb3VyY2UgdGVzdCBzaW1wbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJ
KHJldmlzaW9uIDk2MjIyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTQzNiwxNiArNDM2LDEyIEBAIGh0dHAvdGVzdHMvbG9hZGluZy9zdGF0
ZS1vYmplY3Qtc2VjdXJpdHkKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0ZXh0SW5wdXRDb250
cm9sbGVyCiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMzc+
CiBlZGl0aW5nL2lucHV0L3NldHRpbmctaW5wdXQtdmFsdWUtY2FuY2VsLWltZS1jb21wb3NpdGlv
bi5odG1sCi1lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtY29tcG9zaXRpb24td2hpdGVzcGFjZS5o
dG1sCiBzdmcvdGV4dC9jYXJldC1pbi1zdmctdGV4dC54aHRtbAotZWRpdGluZy9pbnB1dC9pbWUt
Y29tcG9zaXRpb24tY2xlYXJwcmVlZGl0Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
YmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vNTgyNTM1MC0x
Lmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uLzU4MjUzNTAtMi5odG1sCiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWxlZnQtcmlnaHQuaHRtbAogZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50
cy0wMDEuaHRtbAotZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGgtaW1lLWNvbXBsZXRlZC5odG1s
Ci1mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC1pbWUtcHJlZWRpdC5odG1sCiBmYXN0L3RleHQv
aW50ZXJuYXRpb25hbC90aGFpLWN1cnNvci1wb3NpdGlvbi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9pbnB1dC81NTc2NjE5Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2JvbGQt
bm9kZS5odG1sCkBAIC00NTUsMTMgKzQ1MSw5IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L2ZpcnN0cmVjdGZvcmMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2hhbmd1bC1lbnRlci1j
b25maXJtcy1hbmQtc2VuZHMta2V5cHJlc3MuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvaW5zZXJ0LWRlbGV0ZS1zbXAtc3ltYm9sLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lu
cHV0L2tvdG9lcmktZW50ZXItdG8tY29uZmlybS1hbmQtbmV3bGluZS5odG1sCi1wbGF0Zm9ybS9t
YWMvZWRpdGluZy9pbnB1dC9tYXhsZW5ndGguaHRtbAotcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvTlNCYWNrZ3JvdW5kQ29sb3ItdHJhbnNwYXJlbnQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvaW5wdXQvcmFuZ2UtZm9yLWVtcHR5LWRvY3VtZW50Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL2lucHV0L3JlcGxhY2UtaW52YWxpZC1yYW5nZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9pbnB1dC9zZWN1cmUtaW5wdXQuaHRtbAotcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvc2Vs
ZWN0aW9uLWNoYW5nZS1jbG9zZXMtdHlwaW5nLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2lu
cHV0L3RleHQtY29udHJvbC1pbWUtaW5wdXQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvdGV4dC1pbnB1dC1jb250cm9sbGVyLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L3dyYXBwZWQtbGluZS1jaGFyLXJlY3QuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS1hbmQtbWF0Y2gtc3R5bGUtc2VsZWN0b3ItZXZlbnQuaHRtbAo=
</data>
<flag name="review"
          id="106327"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="107149"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109830</attachid>
            <date>2011-10-05 11:52:16 -0700</date>
            <delta_ts>2011-10-05 12:45:46 -0700</delta_ts>
            <desc>patch 2: rebase</desc>
            <filename>68924_2.patch</filename>
            <type>text/plain</type>
            <size>31511</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NzM0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTAtMDUgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBTdXBwb3J0IHNldE1hcmtlZFRl
eHQvaGFzTWFya2VkVGV4dC91bm1hcmtUZXh0L2luc2VydFRleHQgZm9yIFdUUiBUZXh0SW5wdXRD
b250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02ODkyNAorCisgICAgICAgIEltcGxlbWVudGVkIFdLQnVuZGxlUGFnZSBwcml2YXRlIEFQSXMg
dG8gc3VwcG9ydCB0aGUgYWJvdmUgZnVuY3Rpb25zLgorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24pOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlSGFzQ29tcG9zaXRpb24pOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlQ29uZmlybUNvbXBvc2l0aW9uKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZUNvbmZpcm1Db21w
b3NpdGlvbldpdGhUZXh0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldENvbXBvc2l0aW9uRm9y
VGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhhc0NvbXBvc2l0aW9uRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNvbmZpcm1Db21wb3NpdGlvbkZvclRl
c3RpbmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTEt
MTAtMDUgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXSBXZWJL
aXRUZXN0UnVubmVyIG5lZWRzIExheW91dFRlc3RDb250cm9sbGVyLmR1bXBDb25maWd1cmF0aW9u
Rm9yVmlld3BvcnQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAJKHJldmlzaW9u
IDk2NzM0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsMyArMjk1LDIzIEBAIFdL
U3RyaW5nUmVmIFdLQnVuZGxlUGFnZVZpZXdwb3J0Q29uZmlndXIKIHsKICAgICByZXR1cm4gdG9D
b3BpZWRBUEkodG9JbXBsKHBhZ2VSZWYpLT52aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1RleHQoZGV2
aWNlRFBJLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBhdmFpbGFibGVXaWR0aCwgYXZhaWxh
YmxlSGVpZ2h0KSk7CiB9CisKK3ZvaWQgV0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24oV0tCdW5k
bGVQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRleHQsIGludCBmcm9tLCBpbnQgbGVuZ3Ro
KQoreworICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0Q29tcG9zaXRpb25Gb3JUZXN0aW5nKHRvSW1w
bCh0ZXh0KS0+c3RyaW5nKCksIGZyb20sIGxlbmd0aCk7Cit9CisKK2Jvb2wgV0tCdW5kbGVQYWdl
SGFzQ29tcG9zaXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRv
SW1wbChwYWdlUmVmKS0+aGFzQ29tcG9zaXRpb25Gb3JUZXN0aW5nKCk7Cit9CisKK3ZvaWQgV0tC
dW5kbGVQYWdlQ29uZmlybUNvbXBvc2l0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQorewor
ICAgIHRvSW1wbChwYWdlUmVmKS0+Y29uZmlybUNvbXBvc2l0aW9uRm9yVGVzdGluZyhTdHJpbmco
KSk7Cit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlQ29uZmlybUNvbXBvc2l0aW9uV2l0aFRleHQoV0tC
dW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLU3RyaW5nUmVmIHRleHQpCit7CisgICAgdG9JbXBsKHBh
Z2VSZWYpLT5jb25maXJtQ29tcG9zaXRpb25Gb3JUZXN0aW5nKHRvSW1wbCh0ZXh0KS0+c3RyaW5n
KCkpOworfQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgJKHJl
dmlzaW9uIDk2NzM0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYy
LDExIEBAIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlUGFnZUNvcHlUcmEKIAogV0tfRVhQ
T1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlUGFnZVZpZXdwb3J0Q29uZmlndXJhdGlvbkFzVGV4dChX
S0J1bmRsZVBhZ2VSZWYsIGludCBkZXZpY2VEUEksIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmlj
ZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0KTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0Q29tcG9zaXRpb24oV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLU3RyaW5nUmVmIHRleHQsIGludCBmcm9tLCBpbnQgbGVuZ3RoKTsKK1dLX0VYUE9SVCBi
b29sIFdLQnVuZGxlUGFnZUhhc0NvbXBvc2l0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKK1dL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUNvbmZpcm1Db21wb3NpdGlvbihXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VDb25maXJtQ29tcG9zaXRpb25X
aXRoVGV4dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgdGV4dCk7CisKICNpZmRl
ZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA5NjczNCkKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0
Nyw2ICsyNTQ3LDM0IEBAIFN0cmluZyBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25Bc1QK
ICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoInZpZXdwb3J0IHNpemUgJWR4JWQgc2NhbGUgJWYg
d2l0aCBsaW1pdHMgWyVmLCAlZl0gYW5kIHVzZXJTY2FsYWJsZSAlZlxuIiwgYXR0cnMubGF5b3V0
U2l6ZS53aWR0aCgpLCBhdHRycy5sYXlvdXRTaXplLmhlaWdodCgpLCBhdHRycy5pbml0aWFsU2Nh
bGUsIGF0dHJzLm1pbmltdW1TY2FsZSwgYXR0cnMubWF4aW11bVNjYWxlLCBhdHRycy51c2VyU2Nh
bGFibGUpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldENvbXBvc2l0aW9uRm9yVGVzdGluZyhjb25z
dCBTdHJpbmcmIGNvbXBvc2l0aW9uU3RyaW5nLCB1aW50NjRfdCBmcm9tLCB1aW50NjRfdCBsZW5n
dGgpCit7CisgICAgRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9j
dXNlZE9yTWFpbkZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmVkaXRvcigpLT5j
YW5FZGl0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxDb21wb3NpdGlvblVuZGVy
bGluZT4gdW5kZXJsaW5lczsKKyAgICB1bmRlcmxpbmVzLmFwcGVuZChDb21wb3NpdGlvblVuZGVy
bGluZSgwLCBjb21wb3NpdGlvblN0cmluZy5sZW5ndGgoKSwgQ29sb3IoQ29sb3I6OmJsYWNrKSwg
ZmFsc2UpKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPnNldENvbXBvc2l0aW9uKGNvbXBvc2l0aW9u
U3RyaW5nLCB1bmRlcmxpbmVzLCBmcm9tLCBmcm9tICsgbGVuZ3RoKTsKK30KKworYm9vbCBXZWJQ
YWdlOjpoYXNDb21wb3NpdGlvbkZvclRlc3RpbmcoKQoreworICAgIEZyYW1lKiBmcmFtZSA9IG1f
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIHJldHVy
biBmcmFtZSAmJiBmcmFtZS0+ZWRpdG9yKCktPmhhc0NvbXBvc2l0aW9uKCk7Cit9CisKK3ZvaWQg
V2ViUGFnZTo6Y29uZmlybUNvbXBvc2l0aW9uRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGNvbXBv
c2l0aW9uU3RyaW5nKQoreworICAgIEZyYW1lKiBmcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5l
ZGl0b3IoKS0+Y2FuRWRpdCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY29tcG9zaXRp
b25TdHJpbmcuaXNOdWxsKCkpCisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29uZmlybUNvbXBv
c2l0aW9uKCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5jb25maXJtQ29tcG9zaXRpb24oY29tcG9z
aXRpb25TdHJpbmcpOworfQorCiBGcmFtZSogV2ViUGFnZTo6bWFpbkZyYW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wYWdlID8gbV9wYWdlLT5tYWluRnJhbWUoKSA6IDA7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDk2NzM0
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzc0LDYgKzM3NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXN0dXJlRGlk
RW5kKCk7CiAjZW5kaWYKIAorICAgIHZvaWQgc2V0Q29tcG9zaXRpb25Gb3JUZXN0aW5nKGNvbnN0
IFN0cmluZyYgY29tcG9zaXRpb25TdHJpbmcsIHVpbnQ2NF90IGZyb20sIHVpbnQ2NF90IGxlbmd0
aCk7CisgICAgYm9vbCBoYXNDb21wb3NpdGlvbkZvclRlc3RpbmcoKTsKKyAgICB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBjb21wb3NpdGlvblN0cmluZyk7
CisKICAgICAvLyBGSVhNRTogVGhpcyBhIGR1bW15IG1lc3NhZ2UsIHRvIGF2b2lkIGJyZWFraW5n
IHRoZSBidWlsZCBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcmVxdWlyZQogICAgIC8vIGFueSBz
eW5jaHJvbm91cyBtZXNzYWdlcywgYW5kIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzg3NzUxMTU+IGlzIGZpeGVkLgogICAgIHZvaWQgZHVtbXkoYm9vbCYpOwpJbmRleDog
VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24g
OTY3MzQpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNyBA
QAorMjAxMS0xMC0wNSAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFtX
SzJdIFN1cHBvcnQgc2V0TWFya2VkVGV4dC9oYXNNYXJrZWRUZXh0L3VubWFya1RleHQvaW5zZXJ0
VGV4dCBmb3IgV1RSIFRleHRJbnB1dENvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTI0CisKKyAgICAgICAgQWRkZWQgVGV4dElucHV0
Q29udHJvbGxlciBmaWxlcyBhbmQgSlMgaW50ZXJmYWNlcyBmb3IgdGhlIGFib3ZlIGZ1bmN0aW9u
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0Rlcml2ZWRTb3VyY2VzLnBybzoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGV4dElucHV0Q29udHJvbGxlci5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZTo6YmVnaW5UZXN0aW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlOjp0ZXh0SW5wdXRDb250cm9sbGVyKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6
OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZSk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcDog
QWRkZWQuCisgICAgICAgIChXVFI6OlRleHRJbnB1dENvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAg
ICAgIChXVFI6OlRleHRJbnB1dENvbnRyb2xsZXI6OlRleHRJbnB1dENvbnRyb2xsZXIpOgorICAg
ICAgICAoV1RSOjpUZXh0SW5wdXRDb250cm9sbGVyOjp+VGV4dElucHV0Q29udHJvbGxlcik6Cisg
ICAgICAgIChXVFI6OlRleHRJbnB1dENvbnRyb2xsZXI6OndyYXBwZXJDbGFzcyk6CisgICAgICAg
IChXVFI6OlRleHRJbnB1dENvbnRyb2xsZXI6Om1ha2VXaW5kb3dPYmplY3QpOgorICAgICAgICAo
V1RSOjpUZXh0SW5wdXRDb250cm9sbGVyOjpzZXRNYXJrZWRUZXh0KToKKyAgICAgICAgKFdUUjo6
VGV4dElucHV0Q29udHJvbGxlcjo6aGFzTWFya2VkVGV4dCk6CisgICAgICAgIChXVFI6OlRleHRJ
bnB1dENvbnRyb2xsZXI6OnVubWFya1RleHQpOgorICAgICAgICAoV1RSOjpUZXh0SW5wdXRDb250
cm9sbGVyOjppbnNlcnRUZXh0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9xdC9JbmplY3RlZEJ1bmRsZS5wcm86CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93aW4vSW5qZWN0ZWRCdW5kbGUudmNwcm9q
OgorCiAyMDExLTEwLTA1ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CiAKICAgICAgICAg
W1dLMl0gV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBMYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ29u
ZmlndXJhdGlvbkZvclZpZXdwb3J0CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJp
dmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA5NjczNCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQCBJ
TlRFUkZBQ0VTID0gXAogICAgIEV2ZW50U2VuZGluZ0NvbnRyb2xsZXIgXAogICAgIEdDQ29udHJv
bGxlciBcCiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIgXAorICAgIFRleHRJbnB1dENvbnRyb2xs
ZXIgXAogIwogCiBTQ1JJUFRTID0gXApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJp
dmVkU291cmNlcy5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9EZXJp
dmVkU291cmNlcy5wcm8JKHJldmlzaW9uIDk2NzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9EZXJpdmVkU291cmNlcy5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEzLDYgKzEzLDcgQEAgSURM
X0JJTkRJTkdTICs9IFwKICAgICBJbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9FdmVudFNlbmRpbmdD
b250cm9sbGVyLmlkbCBcCiAgICAgSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvR0NDb250cm9sbGVy
LmlkbCBcCiAgICAgSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aWRsIFwKKyAgICBJbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXh0SW5wdXRDb250cm9sbGVyLmlk
bCBcCiAKIGRlZmluZVRlc3QoYWRkRXh0cmFDb21waWxlcikgewogICAgIGV2YWwoJCR7MX0uQ09O
RklHID0gdGFyZ2V0X3ByZWRlcHMgbm9fbGluaykKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9H
TlVtYWtlZmlsZS5hbQkocmV2aXNpb24gOTY3MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw4IEBAIG5vaW5zdF9M
VExJQlJBUklFUyArPSBMaWJyYXJpZXMvbGliVGVzdFIKIHdlYmtpdHRlc3RydW5uZXJfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvSW5qZWN0ZWRCdW5kbGUvSlNFdmVudFNlbmRp
bmdDb250cm9sbGVyLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvSW5qZWN0ZWRCdW5kbGUvSlNHQ0Nv
bnRyb2xsZXIuY3BwIFwKLQlEZXJpdmVkU291cmNlcy9JbmplY3RlZEJ1bmRsZS9KU0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAorCURlcml2ZWRTb3VyY2VzL0luamVjdGVkQnVuZGxlL0pTTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9JbmplY3RlZEJ1bmRsZS9KU1Rl
eHRJbnB1dENvbnRyb2xsZXIuY3BwCiBub2Rpc3RfTGlicmFyaWVzX2xpYlRlc3RSdW5uZXJJbmpl
Y3RlZEJ1bmRsZV9sYV9TT1VSQ0VTID0gJCh3ZWJraXR0ZXN0cnVubmVyX2J1aWx0X3NvdXJjZXMp
CiBCVUlMVF9TT1VSQ0VTICs9ICQod2Via2l0dGVzdHJ1bm5lcl9idWlsdF9zb3VyY2VzKQogCkBA
IC04MSw3ICs4Miw4IEBAIExpYnJhcmllc19saWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfbGEK
IAlUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZS5jcHAgXAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlLmggXAogCVRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwIFwKLQlUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKwlUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIFwKKwlUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuaAogCiBMaWJyYXJpZXNf
bGliVGVzdFJ1bm5lckluamVjdGVkQnVuZGxlX2xhX0xJQkFERCA9IFwKIAlsaWJXZWJDb3JlSW50
ZXJuYWxzLmxhCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gOTY3MzQpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTg3LDYgKzE4Nyw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2lu
VGVzdGluZygpCiAgICAgbV9sYXlvdXRUZXN0Q29udHJvbGxlciA9IExheW91dFRlc3RDb250cm9s
bGVyOjpjcmVhdGUoKTsKICAgICBtX2djQ29udHJvbGxlciA9IEdDQ29udHJvbGxlcjo6Y3JlYXRl
KCk7CiAgICAgbV9ldmVudFNlbmRpbmdDb250cm9sbGVyID0gRXZlbnRTZW5kaW5nQ29udHJvbGxl
cjo6Y3JlYXRlKCk7CisgICAgbV90ZXh0SW5wdXRDb250cm9sbGVyID0gVGV4dElucHV0Q29udHJv
bGxlcjo6Y3JlYXRlKCk7CiAKICAgICBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtz
KG1fYnVuZGxlLCBmYWxzZSk7CiAgICAgV0tCdW5kbGVSZW1vdmVBbGxWaXNpdGVkTGlua3MobV9i
dW5kbGUpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkocmV2aXNpb24gOTY3MzQpCisrKyBUb29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJFdmVudFNlbmRpbmdDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiR0NDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJUZXh0SW5wdXRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8V2ViS2l0
Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgpAQCAtNTQsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGxheW91dFRlc3RDb250cm9sbGVyKCkgeyByZXR1cm4gbV9sYXlvdXRUZXN0Q29u
dHJvbGxlci5nZXQoKTsgfQogICAgIEdDQ29udHJvbGxlciogZ2NDb250cm9sbGVyKCkgeyByZXR1
cm4gbV9nY0NvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICBFdmVudFNlbmRpbmdDb250cm9sbGVyKiBl
dmVudFNlbmRpbmdDb250cm9sbGVyKCkgeyByZXR1cm4gbV9ldmVudFNlbmRpbmdDb250cm9sbGVy
LmdldCgpOyB9CisgICAgVGV4dElucHV0Q29udHJvbGxlciogdGV4dElucHV0Q29udHJvbGxlcigp
IHsgcmV0dXJuIG1fdGV4dElucHV0Q29udHJvbGxlci5nZXQoKTsgfQogCiAgICAgSW5qZWN0ZWRC
dW5kbGVQYWdlKiBwYWdlKCkgY29uc3Q7CiAgICAgc2l6ZV90IHBhZ2VDb3VudCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGFnZXMuc2l6ZSgpOyB9CkBAIC0xMDQsNiArMTA2LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8TGF5b3V0VGVzdENvbnRyb2xsZXI+IG1fbGF5b3V0VGVzdENvbnRyb2xsZXI7CiAg
ICAgUmVmUHRyPEdDQ29udHJvbGxlcj4gbV9nY0NvbnRyb2xsZXI7CiAgICAgUmVmUHRyPEV2ZW50
U2VuZGluZ0NvbnRyb2xsZXI+IG1fZXZlbnRTZW5kaW5nQ29udHJvbGxlcjsKKyAgICBSZWZQdHI8
VGV4dElucHV0Q29udHJvbGxlcj4gbV90ZXh0SW5wdXRDb250cm9sbGVyOwogCiAgICAgV0tCdW5k
bGVGcmFtZVJlZiBtX3RvcExvYWRpbmdGcmFtZTsKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAkocmV2aXNpb24gOTY3MzQpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0NCw2ICs2
NDQsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQ2xlYXJXaW5kb3dGCiAgICAgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPm1ha2VXaW5kb3dP
YmplY3QoY29udGV4dCwgd2luZG93LCAmZXhjZXB0aW9uKTsKICAgICBJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuZ2NDb250cm9sbGVyKCktPm1ha2VXaW5kb3dPYmplY3QoY29udGV4dCwgd2luZG93
LCAmZXhjZXB0aW9uKTsKICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuZXZlbnRTZW5kaW5n
Q29udHJvbGxlcigpLT5tYWtlV2luZG93T2JqZWN0KGNvbnRleHQsIHdpbmRvdywgJmV4Y2VwdGlv
bik7CisgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnRleHRJbnB1dENvbnRyb2xsZXIoKS0+
bWFrZVdpbmRvd09iamVjdChjb250ZXh0LCB3aW5kb3csICZleGNlcHRpb24pOwogICAgIFdlYkNv
cmVUZXN0U3VwcG9ydDo6aW5qZWN0SW50ZXJuYWxzT2JqZWN0KGNvbnRleHQpOwogfQogCkluZGV4
OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xs
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGV4dElucHV0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDApCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dElucHV0Q29udHJvbGxlci5oIgorCisjaW5jbHVk
ZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2UuaCIKKyNp
bmNsdWRlICJKU1RleHRJbnB1dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTdHJpbmdGdW5jdGlv
bnMuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlUGFnZVByaXZhdGUuaD4KKworbmFtZXNw
YWNlIFdUUiB7CisKK1Bhc3NSZWZQdHI8VGV4dElucHV0Q29udHJvbGxlcj4gVGV4dElucHV0Q29u
dHJvbGxlcjo6Y3JlYXRlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHRJbnB1dENv
bnRyb2xsZXIpOworfQorCitUZXh0SW5wdXRDb250cm9sbGVyOjpUZXh0SW5wdXRDb250cm9sbGVy
KCkKK3sKK30KKworVGV4dElucHV0Q29udHJvbGxlcjo6flRleHRJbnB1dENvbnRyb2xsZXIoKQor
eworfQorCitKU0NsYXNzUmVmIFRleHRJbnB1dENvbnRyb2xsZXI6OndyYXBwZXJDbGFzcygpCit7
CisgICAgcmV0dXJuIEpTVGV4dElucHV0Q29udHJvbGxlcjo6dGV4dElucHV0Q29udHJvbGxlckNs
YXNzKCk7Cit9CisKK3ZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6bWFrZVdpbmRvd09iamVjdChK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgd2luZG93T2JqZWN0LCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgc2V0UHJvcGVydHkoY29udGV4dCwgd2luZG93T2JqZWN0LCAi
dGV4dElucHV0Q29udHJvbGxlciIsIHRoaXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUsIGV4Y2VwdGlvbik7Cit9CisKK3ZvaWQg
VGV4dElucHV0Q29udHJvbGxlcjo6c2V0TWFya2VkVGV4dChKU1N0cmluZ1JlZiB0ZXh0LCBpbnQg
ZnJvbSwgaW50IGxlbmd0aCkKK3sKKyAgICBXS0J1bmRsZVBhZ2VTZXRDb21wb3NpdGlvbihJbmpl
Y3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCksIHRvV0sodGV4dCkuZ2V0KCksIGZy
b20sIGxlbmd0aCk7Cit9CisKK2Jvb2wgVGV4dElucHV0Q29udHJvbGxlcjo6aGFzTWFya2VkVGV4
dCgpCit7CisgICAgcmV0dXJuIFdLQnVuZGxlUGFnZUhhc0NvbXBvc2l0aW9uKEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7Cit9CisKK3ZvaWQgVGV4dElucHV0Q29udHJv
bGxlcjo6dW5tYXJrVGV4dCgpCit7CisgICAgV0tCdW5kbGVQYWdlQ29uZmlybUNvbXBvc2l0aW9u
KEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7Cit9CisKK3ZvaWQgVGV4
dElucHV0Q29udHJvbGxlcjo6aW5zZXJ0VGV4dChKU1N0cmluZ1JlZiB0ZXh0KQoreworICAgIFdL
QnVuZGxlUGFnZUNvbmZpcm1Db21wb3NpdGlvbldpdGhUZXh0KEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5wYWdlKCktPnBhZ2UoKSwgdG9XSyh0ZXh0KS5nZXQoKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdUUgpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXh0
SW5wdXRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXh0SW5wdXRDb250cm9sbGVyLmgJKHJldmlzaW9uIDApCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1RleHRJbnB1dENvbnRyb2xsZXIuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBUZXh0SW5wdXRDb250cm9sbGVyX2gKKyNkZWZpbmUgVGV4dElucHV0Q29udHJvbGxl
cl9oCisKKyNpbmNsdWRlICJKU1dyYXBwYWJsZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+CisKK25hbWVzcGFjZSBXVFIgeworCitjbGFzcyBUZXh0SW5wdXRDb250cm9sbGVyIDogcHVi
bGljIEpTV3JhcHBhYmxlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0SW5w
dXRDb250cm9sbGVyPiBjcmVhdGUoKTsKKyAgICB2aXJ0dWFsIH5UZXh0SW5wdXRDb250cm9sbGVy
KCk7CisKKyAgICAvLyBKU1dyYXBwYWJsZQorICAgIHZpcnR1YWwgSlNDbGFzc1JlZiB3cmFwcGVy
Q2xhc3MoKTsKKworICAgIHZvaWQgbWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYsIEpTT2Jq
ZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKKworICAgIHZvaWQg
c2V0TWFya2VkVGV4dChKU1N0cmluZ1JlZiB0ZXh0LCBpbnQgZnJvbSwgaW50IGxlbmd0aCk7Cisg
ICAgYm9vbCBoYXNNYXJrZWRUZXh0KCk7CisgICAgdm9pZCB1bm1hcmtUZXh0KCk7CisgICAgdm9p
ZCBpbnNlcnRUZXh0KEpTU3RyaW5nUmVmIHRleHQpOworCitwcml2YXRlOgorICAgIFRleHRJbnB1
dENvbnRyb2xsZXIoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYgLy8gVGV4
dElucHV0Q29udHJvbGxlcl9oCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xsZXIuaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGV4dElucHV0Q29u
dHJvbGxlci5pZGwJKHJldmlzaW9uIDApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1RleHRJbnB1dENvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgV1RSIHsK
KworICAgIGludGVyZmFjZSBUZXh0SW5wdXRDb250cm9sbGVyIHsKKyAgICAgICAgdm9pZCBzZXRN
YXJrZWRUZXh0KGluIERPTVN0cmluZyBzdHJpbmcsIGluIGxvbmcgZnJvbSwgaW4gbG9uZyBsZW5n
dGgpOworICAgICAgICBib29sZWFuIGhhc01hcmtlZFRleHQoKTsKKyAgICAgICAgdm9pZCB1bm1h
cmtUZXh0KCk7CisgICAgICAgIHZvaWQgaW5zZXJ0VGV4dChpbiBET01TdHJpbmcgc3RyaW5nKTsK
KyAgICB9OworCit9CisKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRCdW5kbGUucHJvCShyZXZpc2lvbiA5Njcz
NCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvcXQvSW5qZWN0ZWRC
dW5kbGUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw2ICsyNCw4IEBAIFNPVVJDRVMgKz0gXAog
ICAgIC4uL0dDQ29udHJvbGxlci5oIFwKICAgICAuLi9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
XAogICAgIC4uL0xheW91dFRlc3RDb250cm9sbGVyLmggXAorICAgIC4uL1RleHRJbnB1dENvbnRy
b2xsZXIuY3BwIFwKKyAgICAuLi9UZXh0SW5wdXRDb250cm9sbGVyLmggXAogICAgIC4uL0JpbmRp
bmdzL0pTV3JhcHBlci5jcHAgXAogICAgIEFjdGl2YXRlRm9udHNRdC5jcHAgXAogICAgIEluamVj
dGVkQnVuZGxlUXQuY3BwIFwKQEAgLTMxLDYgKzMzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgJCRH
RU5FUkFURURfU09VUkNFU19ESVIvSlNFdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBcCiAgICAg
JCRHRU5FUkFURURfU09VUkNFU19ESVIvSlNHQ0NvbnRyb2xsZXIuY3BwIFwKICAgICAkJEdFTkVS
QVRFRF9TT1VSQ0VTX0RJUi9KU0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBcCisgICAgJCRHRU5F
UkFURURfU09VUkNFU19ESVIvSlNUZXh0SW5wdXRDb250cm9sbGVyLmNwcCBcCiAKIEhFQURFUlMg
Kz0gXAogICAgIC4uL0FjdGl2YXRlRm9udHMuaCBcCkBAIC0zOSw2ICs0Miw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIC4uL0luamVjdGVkQnVuZGxlLmggXAogICAgIC4uL0luamVjdGVkQnVuZGxlUGFn
ZS5oIFwKICAgICAuLi9MYXlvdXRUZXN0Q29udHJvbGxlci5oIFwKKyAgICAuLi9UZXh0SW5wdXRD
b250cm9sbGVyLmggXAogCiAhQ09ORklHKHJlbGVhc2UsIGRlYnVnfHJlbGVhc2UpIHsKICAgICBP
QkpFQ1RTX0RJUiA9IG9iai9kZWJ1ZwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDk2NzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDYgKzIzLDggQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTUzMjJGQjQz
MTNGREEwQ0QwMDQxQUJDQyAvKiBDeWNsaWNSZWR1bmRhbmN5Q2hlY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyMkZCNDExM0ZEQTBDRDAwNDFB
QkNDIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAgKi87IH07CiAJCTUzMjJGQjQ2MTNGREEw
RUEwMDQxQUJDQyAvKiBQaXhlbER1bXBTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjJGQjQ0MTNGREEwRUEwMDQxQUJDQyAvKiBQaXhl
bER1bXBTdXBwb3J0LmNwcCAqLzsgfTsKKwkJNTY0MUUyRDAxNDMzNUU5NTAwODMwN0U1IC8qIEpT
VGV4dElucHV0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1NjQxRTJDRTE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRDb250
cm9sbGVyLmNwcCAqLzsgfTsKKwkJNTY2NEE0OUExNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJbnB1
dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTY2NEE0OTgxNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJbnB1dENvbnRyb2xsZXIuY3Bw
ICovOyB9OwogCQk1NjcwQjgyODEzODZGQ0E1MDAyRUIzNTUgLyogRXZlbnRTZW5kZXJQcm94eS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU2NzBCODI3
MTM4NkZDQTUwMDJFQjM1NSAvKiBFdmVudFNlbmRlclByb3h5Lm1tICovOyB9OwogCQk2NTEwQTc4
MjExRUM2NDM4MDA0MTA4NjcgLyogQUhFTV9fX18uVFRGIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTEwQTc3NzExRUM2NDM4MDA0MTA4NjcgLyogQUhF
TV9fX18uVFRGICovOyB9OwogCQk2NTEwQTc4MzExRUM2NDM4MDA0MTA4NjcgLyogQ29sb3JCaXRz
LnR0ZiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjUx
MEE3NzgxMUVDNjQzODAwNDEwODY3IC8qIENvbG9yQml0cy50dGYgKi87IH07CkBAIC04OCw2ICs5
MCwxMSBAQAogCQk1MzIyRkI0MjEzRkRBMENEMDA0MUFCQ0MgLyogQ3ljbGljUmVkdW5kYW5jeUNo
ZWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN5Y2xpY1JlZHVuZGFuY3lD
aGVjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzIyRkI0NDEzRkRBMEVBMDA0
MUFCQ0MgLyogUGl4ZWxEdW1wU3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQaXhlbER1bXBTdXBwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTMyMkZCNDUxM0ZEQTBFQTAwNDFBQkNDIC8qIFBpeGVsRHVtcFN1cHBvcnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGl4ZWxEdW1wU3VwcG9ydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1NjQxRTJDRTE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0
SW5wdXRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEpTVGV4dElucHV0Q29udHJvbGxlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXRU
ZXN0UnVubmVyL0pTVGV4dElucHV0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CisJCTU2NDFFMkNGMTQzMzVFOTUwMDgzMDdFNSAvKiBKU1RleHRJbnB1
dENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNUZXh0SW5w
dXRDb250cm9sbGVyLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXRUZXN0UnVubmVyL0pT
VGV4dElucHV0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQk1NjY0QTQ5NjE0MzI2Mzc3MDA4ODgxQkUgLyogVGV4dElucHV0Q29udHJvbGxlci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dElucHV0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTU2NjRBNDk4MTQzMjYzODQwMDg4ODFCRSAvKiBUZXh0SW5w
dXRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRl
eHRJbnB1dENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NjY0
QTQ5OTE0MzI2Mzg0MDA4ODgxQkUgLyogVGV4dElucHV0Q29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0SW5wdXRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU2NzBCODI2MTM4NkZDMTMwMDJFQjM1NSAvKiBFdmVudFNlbmRl
clByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV2ZW50U2VuZGVyUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTY3MEI4MjcxMzg2RkNBNTAwMkVC
MzU1IC8qIEV2ZW50U2VuZGVyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBFdmVudFNlbmRlclByb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2NTEwQTc3NzExRUM2NDM4MDA0MTA4NjcgLyogQUhFTV9fX18uVFRGICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9ICJBSEVN
X19fXy5UVEYiOyBwYXRoID0gImZvbnRzL0FIRU1fX19fLlRURiI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yNTMsNiArMjYwLDggQEAKIAkJCQlCQ0M5OTgxNzExRDNGNTFFMDAxN0JD
QTIgLyogTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDQzk5ODE2MTFEM0Y1MUUw
MDE3QkNBMiAvKiBMYXlvdXRUZXN0Q29udHJvbGxlci5oICovLAogCQkJCUMwQ0U3MjBBMTI0N0M5
MzMwMEJDMEVDNCAvKiBMYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAqLywKKwkJCQk1NjY0QTQ5
ODE0MzI2Mzg0MDA4ODgxQkUgLyogVGV4dElucHV0Q29udHJvbGxlci5jcHAgKi8sCisJCQkJNTY2
NEE0OTkxNDMyNjM4NDAwODg4MUJFIC8qIFRleHRJbnB1dENvbnRyb2xsZXIuaCAqLywKIAkJCSk7
CiAJCQluYW1lID0gQ29udHJvbGxlcnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
MzMzLDYgKzM0Miw3IEBACiAJCQkJQkM4RkQ4Q0IxMjBFNTJCMDAwRjNFNzFBIC8qIEV2ZW50U2Vu
ZGluZ0NvbnRyb2xsZXIuaWRsICovLAogCQkJCUJDMTRFNEUxMTIwRTAzMjAwMDgyNkMwQyAvKiBH
Q0NvbnRyb2xsZXIuaWRsICovLAogCQkJCUJDOTUyRUQyMTFGM0MyOUYwMDMzOThCNCAvKiBMYXlv
dXRUZXN0Q29udHJvbGxlci5pZGwgKi8sCisJCQkJNTY2NEE0OTYxNDMyNjM3NzAwODg4MUJFIC8q
IFRleHRJbnB1dENvbnRyb2xsZXIuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSBCaW5kaW5nczsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zNDYsNiArMzU2LDggQEAKIAkJCQlCQzE0
RTRFOTEyMEUwM0Q4MDA4MjZDMEMgLyogSlNHQ0NvbnRyb2xsZXIuaCAqLywKIAkJCQlCQzk1MkYx
RDExRjNDNjUyMDAzMzk4QjQgLyogSlNMYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJ
QkM5NTJGMUUxMUYzQzY1MjAwMzM5OEI0IC8qIEpTTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAqLywK
KwkJCQk1NjQxRTJDRTE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRDb250cm9sbGVyLmNw
cCAqLywKKwkJCQk1NjQxRTJDRjE0MzM1RTk1MDA4MzA3RTUgLyogSlNUZXh0SW5wdXRDb250cm9s
bGVyLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTQ5Niw2ICs1MDgsOCBAQAogCQkJCUJDOEZEOENBMTIwRTUy
N0YwMEYzRTcxQSAvKiBFdmVudFNlbmRpbmdDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUJDOEZEOEQyMTIwRTU0NUIwMEYzRTcxQSAvKiBKU0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzBDRTcyMEIxMjQ3QzkzMzAwQkMwRUM0IC8qIExheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTY2NEE0OUExNDMyNjM4
NDAwODg4MUJFIC8qIFRleHRJbnB1dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTY0MUUyRDAxNDMzNUU5NTAwODMwN0U1IC8qIEpTVGV4dElucHV0Q29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL0luamVjdGVkQnVu
ZGxlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9Jbmpl
Y3RlZEJ1bmRsZS52Y3Byb2oJKHJldmlzaW9uIDk2NzM0KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93aW4vSW5qZWN0ZWRCdW5kbGUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NjEsNiAr
NTYxLDU4IEBACiAJCQkJCS8+CiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4K
KwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmplY3RlZEJ1bmRsZVxCaW5kaW5nc1xU
ZXh0SW5wdXRDb250cm9sbGVyLmlkbCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNNSURMVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNNSURMVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ01JRExUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDTUlETFRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ01JRExUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ01JRExUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CiAJCTwvRmlsdGVyPgogCQk8RmlsdGVyCiAJCQlOYW1lPSJEZXJpdmVk
IFNvdXJjZXMiCkBAIC01ODksNiArNjQxLDE0IEBACiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTVGV4dElucHV0Q29udHJvbGxlci5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KIAkJPC9GaWx0ZXI+CiAJCTxGaWxlCiAJCQlSZWxhdGl2ZVBh
dGg9Ii4uXEluamVjdGVkQnVuZGxlXHdpblxBY3RpdmF0ZUZvbnRzLmNwcCIKQEAgLTY0Niw2ICs3
MDYsMTQgQEAKIAkJCVJlbGF0aXZlUGF0aD0iLi5cSW5qZWN0ZWRCdW5kbGVcd2luXExheW91dFRl
c3RDb250cm9sbGVyV2luLmNwcCIKIAkJCT4KIAkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRp
dmVQYXRoPSIuLlxJbmplY3RlZEJ1bmRsZVxUZXh0SW5wdXRDb250cm9sbGVyLmNwcCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmplY3RlZEJ1bmRsZVxU
ZXh0SW5wdXRDb250cm9sbGVyLmgiCisJCQk+CisJCTwvRmlsZT4KIAk8L0ZpbGVzPgogCTxHbG9i
YWxzPgogCTwvR2xvYmFscz4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk2NzM0KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTAtMDUg
IENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBTdXBwb3J0IHNl
dE1hcmtlZFRleHQvaGFzTWFya2VkVGV4dC91bm1hcmtUZXh0L2luc2VydFRleHQgZm9yIFdUUiBU
ZXh0SW5wdXRDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02ODkyNAorCisgICAgICAgIFVuc2tpcCBwYXNzZWQgdGVzdHMuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tp
cHBlZDoKKwogMjAxMS0xMC0wNSAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtXSzJdIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgTGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cENvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJ
KHJldmlzaW9uIDk2NzM0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQJKHdv
cmtpbmcgY29weSkKQEAgLTQzNiwxNiArNDM2LDEyIEBAIGh0dHAvdGVzdHMvbG9hZGluZy9zdGF0
ZS1vYmplY3Qtc2VjdXJpdHkKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0ZXh0SW5wdXRDb250
cm9sbGVyCiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDIzMzc+
CiBlZGl0aW5nL2lucHV0L3NldHRpbmctaW5wdXQtdmFsdWUtY2FuY2VsLWltZS1jb21wb3NpdGlv
bi5odG1sCi1lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtY29tcG9zaXRpb24td2hpdGVzcGFjZS5o
dG1sCiBzdmcvdGV4dC9jYXJldC1pbi1zdmctdGV4dC54aHRtbAotZWRpdGluZy9pbnB1dC9pbWUt
Y29tcG9zaXRpb24tY2xlYXJwcmVlZGl0Lmh0bWwKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
YmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbAogZWRpdGluZy9zZWxlY3Rpb24vNTgyNTM1MC0x
Lmh0bWwKIGVkaXRpbmcvc2VsZWN0aW9uLzU4MjUzNTAtMi5odG1sCiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWxlZnQtcmlnaHQuaHRtbAogZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50
cy0wMDEuaHRtbAotZmFzdC9mb3Jtcy9pbnB1dC1tYXhsZW5ndGgtaW1lLWNvbXBsZXRlZC5odG1s
Ci1mYXN0L2Zvcm1zL2lucHV0LW1heGxlbmd0aC1pbWUtcHJlZWRpdC5odG1sCiBmYXN0L3RleHQv
aW50ZXJuYXRpb25hbC90aGFpLWN1cnNvci1wb3NpdGlvbi5odG1sCiBwbGF0Zm9ybS9tYWMvZWRp
dGluZy9pbnB1dC81NTc2NjE5Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2JvbGQt
bm9kZS5odG1sCkBAIC00NTUsMTMgKzQ1MSw5IEBAIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L2ZpcnN0cmVjdGZvcmMKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2hhbmd1bC1lbnRlci1j
b25maXJtcy1hbmQtc2VuZHMta2V5cHJlc3MuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvaW5zZXJ0LWRlbGV0ZS1zbXAtc3ltYm9sLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lu
cHV0L2tvdG9lcmktZW50ZXItdG8tY29uZmlybS1hbmQtbmV3bGluZS5odG1sCi1wbGF0Zm9ybS9t
YWMvZWRpdGluZy9pbnB1dC9tYXhsZW5ndGguaHRtbAotcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvTlNCYWNrZ3JvdW5kQ29sb3ItdHJhbnNwYXJlbnQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRp
bmcvaW5wdXQvcmFuZ2UtZm9yLWVtcHR5LWRvY3VtZW50Lmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0
aW5nL2lucHV0L3JlcGxhY2UtaW52YWxpZC1yYW5nZS5odG1sCiBwbGF0Zm9ybS9tYWMvZWRpdGlu
Zy9pbnB1dC9zZWN1cmUtaW5wdXQuaHRtbAotcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvc2Vs
ZWN0aW9uLWNoYW5nZS1jbG9zZXMtdHlwaW5nLmh0bWwKLXBsYXRmb3JtL21hYy9lZGl0aW5nL2lu
cHV0L3RleHQtY29udHJvbC1pbWUtaW5wdXQuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5w
dXQvdGV4dC1pbnB1dC1jb250cm9sbGVyLmh0bWwKIHBsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0
L3dyYXBwZWQtbGluZS1jaGFyLXJlY3QuaHRtbAogcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVi
b2FyZC9wYXN0ZS1hbmQtbWF0Y2gtc3R5bGUtc2VsZWN0b3ItZXZlbnQuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>