<?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>103341</bug_id>
          
          <creation_ts>2012-11-26 18:07:59 -0800</creation_ts>
          <short_desc>[V8] Rename V8Parameter to V8StringResource</short_desc>
          <delta_ts>2012-11-26 20:29:44 -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>WebCore JavaScript</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>103331</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776164</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-26 18:07:59 -0800</bug_when>
    <thetext>We can rename V8Parameter to V8StringResource. In a follow-up patch, I will rename macros around V8Parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776165</commentid>
    <comment_count>1</comment_count>
      <attachid>176136</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-26 18:09:59 -0800</bug_when>
    <thetext>Created attachment 176136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776253</commentid>
    <comment_count>2</comment_count>
      <attachid>176136</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:29:41 -0800</bug_when>
    <thetext>Comment on attachment 176136
Patch

Clearing flags on attachment: 176136

Committed r135811: &lt;http://trac.webkit.org/changeset/135811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776254</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 20:29:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176136</attachid>
            <date>2012-11-26 18:09:59 -0800</date>
            <delta_ts>2012-11-26 20:29:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103341-20121127110736.patch</filename>
            <type>text/plain</type>
            <size>44398</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Nzg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDMyNWFiMjllOTUyMTY5
NWQwNDM4NzQyNzQxYzJlZGYzOWI1MTAzNC4uZmM1ZjJjM2VmMzhlOGNhMGJhMzIwZDAxNzM3OGRj
OGJlN2I4NjI0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTExLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFJlbmFtZSBW
OFBhcmFtZXRlciB0byBWOFN0cmluZ1Jlc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMzNDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjYW4gcmVuYW1lIFY4UGFyYW1ldGVyIHRvIFY4U3Ry
aW5nUmVzb3VyY2UuIEluIGEgZm9sbG93LXVwIHBhdGNoLAorICAgICAgICBJIHdpbGwgcmVuYW1l
IG1hY3JvcyBhcm91bmQgVjhQYXJhbWV0ZXIuCisKKyAgICAgICAgTm8gdGVzdHMuIE5vIGNoYW5n
ZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKEdl
bmVyYXRlTm9ybWFsQXR0clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVj
ayk6CisgICAgICAgIChHZW5lcmF0ZUV2ZW50Q29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAg
IChHZXROYXRpdmVUeXBlRnJvbVNpZ25hdHVyZSk6CisgICAgICAgIChHZXROYXRpdmVUeXBlKToK
KyAgICAgICAgKENvbnZlcnRUb1Y4U3RyaW5nUmVzb3VyY2UpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdEFjdGl2ZURPTU9iamVjdFY4SW50ZXJuYWw6OnBvc3RNZXNzYWdlQ2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJWOEludGVy
bmFsOjphbm90aGVyRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RhdGljQXR0ckF0
dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1
cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZh
Y2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxNZXRob2QyQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0SW50ZXJmYWNlOjpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RhdGljU3RyaW5nQXR0ckF0dHJTZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJBdHRy
U2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRT
dHJpbmdBdHRyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bkF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmlu
Z0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6dm9pZE1ldGhvZFdpdGhBcmdzQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmxvbmdNZXRob2RXaXRoQXJnc0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RXaXRoQXJnc0Nh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RUaGF0
UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6Om1ldGhvZFdpdGhPcHRpb25hbFN0cmluZ0NhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJ
c1VuZGVmaW5lZENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjptZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmdDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRlZE1ldGhvZDND
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6b3ZlcmxvYWRl
ZE1ldGhvZDExQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
Om92ZXJsb2FkZWRNZXRob2QxMkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjpzdHJpY3RGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpWOEludGVybmFsOjp2YXJpYWRpY1N0cmluZ01ldGhvZENhbGxiYWNrKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjb25z
dHJ1Y3RvcjRDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4U3RyaW5nUmVzb3VyY2U6OlY4U3RyaW5nUmVzb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6OjpwcmVwYXJlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhDb25z
b2xlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZTo6cHJvZmlsZUNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlY4Q29uc29sZTo6cHJvZmlsZUVuZENhbGxiYWNrKToK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhEZXZpY2VNb3Rpb25FdmVudDo6aW5pdERldmljZU1vdGlvbkV2ZW50Q2FsbGJh
Y2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU9yaWVudGF0aW9uRXZl
bnRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhEZXZpY2VPcmllbnRhdGlvbkV2ZW50
Ojppbml0RGV2aWNlT3JpZW50YXRpb25FdmVudENhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlz
dG9yeTo6cHVzaFN0YXRlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VjhIaXN0b3J5Ojpy
ZXBsYWNlU3RhdGVDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
ZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50Ojpjb25zdHJ1Y3RvckNh
bGxiYWNrQ3VzdG9tKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2Fj
dGlvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFNRTFRyYW5zYWN0aW9uOjpleGVj
dXRlU3FsQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5z
YWN0aW9uU3luY0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFNRTFRyYW5zYWN0aW9u
U3luYzo6ZXhlY3V0ZVNxbENhbGxiYWNrKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4dGVuc2lvbkNhbGxiYWNrKToKKwogMjAxMi0xMS0y
NiAgQW5kcmVhcyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuZGVyU3R5
bGU6IE1vdmUgJ2xpc3Qtc3R5bGUtaW1hZ2UnIHRvIHJhcmUgaW5oZXJpdGVkIGRhdGEuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IDhkNTZiYjY4MjdkOGEyNWNjZTkxOGJlODkyMTgwZmEyYWM5NTBkMzIuLjMxN2FmZGFhODIx
M2FjN2FkYTE1ZmRkZmU2ZWYwYWIzNWVlNDljYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMDAxLDggKzEwMDEsOCBA
QCBFTkQKICAgICB9CiAKICAgICBpZiAoJHVzZUV4Y2VwdGlvbnMpIHsKLSAgICAgICAgaWYgKCRu
YXRpdmVUeXBlID1+IC9eVjhQYXJhbWV0ZXIvKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICIgLiBDb252ZXJ0VG9WOFBhcmFtZXRlcigkYXR0cmlidXRlLT5zaWdu
YXR1cmUsICRuYXRpdmVUeXBlLCAidiIsICRnZXR0ZXJTdHJpbmcpIC4gIjtcbiIpOworICAgICAg
ICBpZiAoJG5hdGl2ZVR5cGUgPX4gL15WOFN0cmluZ1Jlc291cmNlLykgeworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAiIC4gQ29udmVydFRvVjhTdHJpbmdSZXNvdXJj
ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICRuYXRpdmVUeXBlLCAidiIsICRnZXR0ZXJTdHJpbmcp
IC4gIjtcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIiAgICAkbmF0aXZlVHlwZSB2ID0gJGdldHRlclN0cmluZztcbiIpOwogICAgICAg
ICB9CkBAIC0xMjQ3LDggKzEyNDcsOCBAQCBFTkQKICAgICAgICAgbXkgJHZhbHVlID0gSlNWYWx1
ZVRvTmF0aXZlKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgInZhbHVlIiwgImluZm8uR2V0SXNvbGF0
ZSgpIik7CiAgICAgICAgIG15ICRhcnJheVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0QXJyYXlU
eXBlKCRuYXRpdmVUeXBlKTsKIAotICAgICAgICBpZiAoJG5hdGl2ZVR5cGUgPX4gL15WOFBhcmFt
ZXRlci8pIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgIiAuIENv
bnZlcnRUb1Y4UGFyYW1ldGVyKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSwgJG5hdGl2ZVR5cGUsICJ2
IiwgJHZhbHVlLCAiVk9JRCIpIC4gIlxuIik7CisgICAgICAgIGlmICgkbmF0aXZlVHlwZSA9fiAv
XlY4U3RyaW5nUmVzb3VyY2UvKSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xz
LCAiICAgICIgLiBDb252ZXJ0VG9WOFN0cmluZ1Jlc291cmNlKCRhdHRyaWJ1dGUtPnNpZ25hdHVy
ZSwgJG5hdGl2ZVR5cGUsICJ2IiwgJHZhbHVlLCAiVk9JRCIpIC4gIlxuIik7CiAgICAgICAgIH0g
ZWxzaWYgKCRhcnJheVR5cGUpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
ICIgICAgVmVjdG9yPCRhcnJheVR5cGU+IHYgPSAkdmFsdWU7XG4iKTsKICAgICAgICAgfSBlbHNl
IHsKQEAgLTE4MDksOSArMTgwOSw5IEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAkcGFyYW1ldGVyQ2hlY2tTdHJpbmcg
Lj0gIiAgICBFWENFUFRJT05fQkxPQ0soVmVjdG9yPCRuYXRpdmVFbGVtZW50VHlwZT4sICRwYXJh
bWV0ZXJOYW1lLCB0b05hdGl2ZUFyZ3VtZW50czwkbmF0aXZlRWxlbWVudFR5cGU+KGFyZ3MsICRw
YXJhbUluZGV4KSk7XG4iOwogICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2lmICgkbmF0aXZl
VHlwZSA9fiAvXlY4UGFyYW1ldGVyLykgeworICAgICAgICB9IGVsc2lmICgkbmF0aXZlVHlwZSA9
fiAvXlY4U3RyaW5nUmVzb3VyY2UvKSB7CiAgICAgICAgICAgICBteSAkdmFsdWUgPSBKU1ZhbHVl
VG9OYXRpdmUoJHBhcmFtZXRlciwgIk1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsICRwYXJh
bUluZGV4LCAkcGFyYW1ldGVyRGVmYXVsdFBvbGljeSkiLCAiYXJncy5HZXRJc29sYXRlKCkiKTsK
LSAgICAgICAgICAgICRwYXJhbWV0ZXJDaGVja1N0cmluZyAuPSAiICAgICIgLiBDb252ZXJ0VG9W
OFBhcmFtZXRlcigkcGFyYW1ldGVyLCAkbmF0aXZlVHlwZSwgJHBhcmFtZXRlck5hbWUsICR2YWx1
ZSkgLiAiXG4iOworICAgICAgICAgICAgJHBhcmFtZXRlckNoZWNrU3RyaW5nIC49ICIgICAgIiAu
IENvbnZlcnRUb1Y4U3RyaW5nUmVzb3VyY2UoJHBhcmFtZXRlciwgJG5hdGl2ZVR5cGUsICRwYXJh
bWV0ZXJOYW1lLCAkdmFsdWUpIC4gIlxuIjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hlY2tpbmciIGV4dGVuZGVkIGF0dHJpYnV0ZSBpcyBwcmVz
ZW50LCBhbmQgdGhlIGFyZ3VtZW50J3MgdHlwZSBpcyBhbgogICAgICAgICAgICAgIyBpbnRlcmZh
Y2UgdHlwZSwgdGhlbiBpZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1wbGVtZW50IHRo
YXQgaW50ZXJmYWNlLCBhIFR5cGVFcnJvcgpAQCAtMjAyOSw3ICsyMDI5LDcgQEAgRU5ECiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVU
RVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFyZ3NbMF0pOworICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCB0
eXBlLCBhcmdzWzBdKTsKICAgICAke2ludGVyZmFjZU5hbWV9SW5pdCBldmVudEluaXQ7CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPj0gMikgewogICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlv
bmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdldElzb2xhdGUoKSkpOwpA
QCAtMzY1NCw3ICszNjU0LDcgQEAgc3ViIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlCiAKICAg
ICAkdHlwZSA9IEdldE5hdGl2ZVR5cGUoJHR5cGUsICRwYXJhbWV0ZXJJbmRleCA+PSAwID8gMSA6
IDApOwogCi0gICAgaWYgKCRwYXJhbWV0ZXJJbmRleCA+PSAwICYmICR0eXBlIGVxICJWOFBhcmFt
ZXRlciIpIHsKKyAgICBpZiAoJHBhcmFtZXRlckluZGV4ID49IDAgJiYgJHR5cGUgZXEgIlY4U3Ry
aW5nUmVzb3VyY2UiKSB7CiAgICAgICAgICMgRklYTUU6IFRoaXMgaW1wbGVtZW50cyBbVHJlYXRO
dWxsQXM9TnVsbFN0cmluZ10gYW5kIFtUcmVhdFVuZGVmaW5lZEFzPU51bGxTdHJpbmddLAogICAg
ICAgICAjIGJ1dCB0aGUgV2ViIElETCBzcGVjIHJlcXVpcmVzIFtUcmVhdE51bGxBcz1FbXB0eVN0
cmluZ10gYW5kIFtUcmVhdFVuZGVmaW5lZEFzPUVtcHR5U3RyaW5nXS4KICAgICAgICAgbXkgJG1v
ZGUgPSAiIjsKQEAgLTM3MTAsNyArMzcxMCw3IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgICAg
IHJldHVybiAkdHlwZTsKICAgICB9CiAKLSAgICByZXR1cm4gIlY4UGFyYW1ldGVyIiBpZiAoJHR5
cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTVVzZXJEYXRhIikgYW5kICRpc1BhcmFt
ZXRlcjsKKyAgICByZXR1cm4gIlY4U3RyaW5nUmVzb3VyY2UiIGlmICgkdHlwZSBlcSAiRE9NU3Ry
aW5nIiBvciAkdHlwZSBlcSAiRE9NVXNlckRhdGEiKSBhbmQgJGlzUGFyYW1ldGVyOwogICAgIHJl
dHVybiAiaW50IiBpZiAkdHlwZSBlcSAiaW50IjsKICAgICByZXR1cm4gImludCIgaWYgJHR5cGUg
ZXEgInNob3J0IiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwogICAgIHJldHVybiAidW5z
aWduZWQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKQEAgLTQxOTUsNyArNDE5NSw3IEBA
IHN1YiBXcml0ZURhdGEKICAgICBAaGVhZGVyQ29udGVudCA9ICgpOwogfQogCi1zdWIgQ29udmVy
dFRvVjhQYXJhbWV0ZXIKK3N1YiBDb252ZXJ0VG9WOFN0cmluZ1Jlc291cmNlCiB7CiAgICAgbXkg
JHNpZ25hdHVyZSA9IHNoaWZ0OwogICAgIG15ICRuYXRpdmVUeXBlID0gc2hpZnQ7CkBAIC00MjAz
LDcgKzQyMDMsNyBAQCBzdWIgQ29udmVydFRvVjhQYXJhbWV0ZXIKICAgICBteSAkdmFsdWUgPSBz
aGlmdDsKICAgICBteSAkc3VmZml4ID0gc2hpZnQ7CiAKLSAgICBkaWUgIldyb25nIG5hdGl2ZSB0
eXBlIHBhc3NlZDogJG5hdGl2ZVR5cGUiIHVubGVzcyAkbmF0aXZlVHlwZSA9fiAvXlY4UGFyYW1l
dGVyLzsKKyAgICBkaWUgIldyb25nIG5hdGl2ZSB0eXBlIHBhc3NlZDogJG5hdGl2ZVR5cGUiIHVu
bGVzcyAkbmF0aXZlVHlwZSA9fiAvXlY4U3RyaW5nUmVzb3VyY2UvOwogICAgIGlmICgkc2lnbmF0
dXJlLT50eXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgIG15ICRtYWNybyA9ICJTVFJJTkdf
VE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLIjsKICAgICAgICAgJG1hY3JvIC49ICJfJHN1
ZmZpeCIgaWYgJHN1ZmZpeDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXgg
NDFiNTc2ZGU5NGU1YTA2NWZiNmI5YzliMDY0YmEyZmNiMWZkODUzOC4uNzc4MzY5YWZlMjdmMjYy
ZDEyNjdmOTZiNjJkNzM1ODk4YWM4OWZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVj
dC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBwb3N0
TWVzc2FnZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgaWYgKGFyZ3Mu
TGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cihhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgVGVzdEFjdGl2ZURPTU9iamVjdCogaW1wID0gVjhU
ZXN0QWN0aXZlRE9NT2JqZWN0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLSAgICBTVFJJTkdf
VE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIG1lc3NhZ2UsIE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAg
IFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+
LCBtZXNzYWdlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKTsKICAgICBpbXAtPnBvc3RNZXNzYWdlKG1lc3NhZ2UpOwogICAgIHJldHVybiB2OFVu
ZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXgg
ZmUyOTJlMmViOGQ4MGRlMmUwZTIwOTU3MmUzODY2NTc1OGJkMTVmOC4uODk5M2Y0ZDdjZWE4Zjdi
ZjA5MzU5ZTliNDhlZjJiNDc0ODAyZTUyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
YW5vdGhlckZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBp
ZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIq
IGltcCA9IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsK
LSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVk
KSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jl
c291cmNlPD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CiAgICAgaW1wLT5hbm90aGVyRnVuY3Rpb24oc3RyKTsKICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRl
eCAyNmE3ZmM3NTM0YWIyYWUxMmFkZTJiZGU5ZWMyNjdkZDAzNmViMGU5Li5iNjZhMmM2NzQxMTMx
NGEwMjMzMGJlNTU5MDRiOWFjYTI1ZjQwMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3Ry
dWN0b3IuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RF
dmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1CiAgICAg
aWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1
bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVU
RVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIGFyZ3NbMF0pOworICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCB0
eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQgZXZlbnRJbml0Owog
ICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKICAgICAgICAgRVhDRVBUSU9OX0JMT0NLKERp
Y3Rpb25hcnksIG9wdGlvbnMsIERpY3Rpb25hcnkoYXJnc1sxXSwgYXJncy5HZXRJc29sYXRlKCkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNWI2YjdjMDQ3OWJiYTJlMGYxMTUwNWY0OWQ0
ZjE4YWQ2YzQ5MmNlMi4uNGVlYjhiOTA5MTIzMDMxZTRkYzI0MDM4NDA3MDg3NDlkNjA0NTkwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxTdGF0aWNBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cmkKIHN0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0YXRpY0F0dHJBdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0SW50
ZXJmYWNlLnN1cHBsZW1lbnRhbFN0YXRpY0F0dHIuX3NldCIpOwotICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7Cisg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4U3RyaW5nUmVz
b3VyY2U8PiwgdiwgdmFsdWUpOwogICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRh
bFN0YXRpY0F0dHIodik7CiAgICAgcmV0dXJuOwogfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHN0YXRp
YyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCB2ODo6TG9jYWw8djg6CiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdEludGVyZmFjZS5z
dXBwbGVtZW50YWxTdHIyLl9zZXQiKTsKICAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJ
bnRlcmZhY2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2YWx1ZSk7CisgICAg
U1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4U3RyaW5nUmVzb3Vy
Y2U8PiwgdiwgdmFsdWUpOwogICAgIFRlc3RTdXBwbGVtZW50YWw6OnNldFN1cHBsZW1lbnRhbFN0
cjIoaW1wLCB2KTsKICAgICByZXR1cm47CiB9CkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxNZXRob2QyQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXIKICAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRlcmZhY2U6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAg
IHsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVy
PD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5k
ZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0
cmluZ1Jlc291cmNlPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKFRlc3RPYmoqLCBvYmpB
cmcsIFY4VGVzdE9iajo6SGFzSW5zdGFuY2UoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywg
MSwgRGVmYXVsdElzVW5kZWZpbmVkKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVs
dElzVW5kZWZpbmVkKSkpIDogMCk7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
Q29udGV4dCA9IGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBSZWZQdHI8VGVzdE9i
aj4gcmVzdWx0ID0gVGVzdFN1cHBsZW1lbnRhbDo6c3VwcGxlbWVudGFsTWV0aG9kMihzY3JpcHRD
b250ZXh0LCBpbXAsIHN0ckFyZywgb2JqQXJnLCBlYyk7CkBAIC0yNTIsOCArMjUyLDggQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVzdEludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJgogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVu
dHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
LSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4s
IHN0cjEsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0
ZXI8Piwgc3RyMiwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5k
ZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0
cmluZ1Jlc291cmNlPD4sIHN0cjEsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdHIyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBnZXRTY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBhYjBiYjZiNjIyMTgxYTk2M2ZhNGQ3MTQ4MTRm
ODIzNjAyZjIwMzgxLi5lY2Q0ZTY2ZWUxMWNjMTQwMWNmZjY3ZTczN2E0YjMxMTFlNTEyZTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC02MSw5ICs2MSw5IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6CiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3Vt
ZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAw
OwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8
Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzdHIyLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNV
bmRlZmluZWQpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHN0cjMsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1
bHRJc051bGxTdHJpbmcpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JM
T0NLKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyMSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VY
Q0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHN0cjIsIE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBB
UkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdHIzLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CiAKICAgICBS
ZWZQdHI8VGVzdE5hbWVkQ29uc3RydWN0b3I+IGltcGwgPSBUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6
Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcihkb2N1bWVudCwgc3RyMSwgc3RyMiwgc3RyMywgZWMpOwog
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCmluZGV4IDRjMGNkM2EwZGYwYzA1NWI5ZDhkMDQ3YzJmYjMyNjUzMzc4NTQ4MDUuLjc3MWM0
NjE2OWMyYzVlYzI1YmUxMzE1MWZjN2RjODAwZGZlY2M5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xMjQs
NyArMTI0LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdGF0aWNTdHJpbmdBdHRy
QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKIHN0YXRpYyB2b2lkIHN0YXRpY1N0
cmluZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLnN0YXRpY1N0cmluZ0F0dHIuX3NldCIpOwotICAgIFNUUklO
R19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjw+LCB2LCB2
YWx1ZSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4
U3RyaW5nUmVzb3VyY2U8PiwgdiwgdmFsdWUpOwogICAgIFRlc3RPYmo6OnNldFN0YXRpY1N0cmlu
Z0F0dHIodik7CiAgICAgcmV0dXJuOwogfQpAQCAtMjIwLDcgKzIyMCw3IEBAIHN0YXRpYyB2b2lk
IHN0cmluZ0F0dHJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9j
YWw8djg6OlZhbHVlCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyLl9z
ZXQiKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBh
cmFtZXRlcjw+LCB2LCB2YWx1ZSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DS19WT0lEKFY4U3RyaW5nUmVzb3VyY2U8PiwgdiwgdmFsdWUpOwogICAgIGltcC0+c2V0
U3RyaW5nQXR0cih2KTsKICAgICByZXR1cm47CiB9CkBAIC0yODYsNyArMjg2LDcgQEAgc3RhdGlj
IHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIHY4OjpMb2NhbDwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3Rl
ZFN0cmluZ0F0dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9C
TE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2LCB2YWx1ZSk7CisgICAgU1RS
SU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4U3RyaW5nUmVzb3VyY2U8
V2l0aE51bGxDaGVjaz4sIHYsIHZhbHVlKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJlZmxlY3RlZHN0cmluZ2F0dHJBdHRyLCB2KTsKICAgICByZXR1cm47CiB9
CkBAIC0zNTAsNyArMzUwLDcgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODoKIHsKICAgICBJTkNf
U1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZFVSTEF0dHIuX3NldCIpOwogICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hl
Y2s+LCB2LCB2YWx1ZSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9D
S19WT0lEKFY4U3RyaW5nUmVzb3VyY2U8V2l0aE51bGxDaGVjaz4sIHYsIHZhbHVlKTsKICAgICBp
bXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnJlZmxlY3RlZHVybGF0dHJBdHRy
LCB2KTsKICAgICByZXR1cm47CiB9CkBAIC0zNjYsNyArMzY2LDcgQEAgc3RhdGljIHZvaWQgcmVm
bGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4
OjpMb2NhbDwKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnJlZmxlY3RlZFN0cmluZ0F0
dHIuX3NldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lE
KFY4UGFyYW1ldGVyPFdpdGhOdWxsQ2hlY2s+LCB2LCB2YWx1ZSk7CisgICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DS19WT0lEKFY4U3RyaW5nUmVzb3VyY2U8V2l0aE51bGxD
aGVjaz4sIHYsIHZhbHVlKTsKICAgICBpbXAtPnNldEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFt
ZXM6OmN1c3RvbUNvbnRlbnRTdHJpbmdBdHRyQXR0ciwgdik7CiAgICAgcmV0dXJuOwogfQpAQCAt
NDE0LDcgKzQxNCw3IEBAIHN0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jCiB7CiAgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5yZWZsZWN0ZWRDdXN0b21VUkxBdHRyLl9zZXQiKTsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFNUUklOR19U
T19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFBhcmFtZXRlcjxXaXRoTnVsbENo
ZWNrPiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0tfVk9JRChWOFN0cmluZ1Jlc291cmNlPFdpdGhOdWxsQ2hlY2s+LCB2LCB2YWx1ZSk7CiAgICAg
aW1wLT5zZXRBdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjdXN0b21Db250ZW50VVJMQXR0
ckF0dHIsIHYpOwogICAgIHJldHVybjsKIH0KQEAgLTQ4OSw3ICs0ODksNyBAQCBzdGF0aWMgdm9p
ZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0
b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBU
SU9OX0JMT0NLX1ZPSUQoVjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0tfVk9JRChWOFN0cmluZ1Jlc291cmNlPD4sIHYsIHZh
bHVlKTsKICAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHYpOwogICAg
IHJldHVybjsKIH0KQEAgLTUwNSw3ICs1MDUsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiB7
CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5zdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlv
bi5fc2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLX1ZPSUQo
VjhQYXJhbWV0ZXI8PiwgdiwgdmFsdWUpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0tfVk9JRChWOFN0cmluZ1Jlc291cmNlPD4sIHYsIHZhbHVlKTsKICAgICBFeGNl
cHRpb25Db2RlIGVjID0gMDsKICAgICBpbXAtPnNldFN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uKHYsIGVjKTsKICAgICBpZiAoVU5MSUtFTFkoZWMpKQpAQCAtMTA1Nyw3ICsxMDU3LDcgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2b2lkTWV0aG9kV2l0aEFyZ3NDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmcKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGludCwg
bG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9D
SyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEs
IERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhU
ZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIGltcC0+dm9pZE1ldGhvZFdp
dGhBcmdzKGxvbmdBcmcsIHN0ckFyZywgb2JqQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQo
KTsKQEAgLTEwNzcsNyArMTA3Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbG9u
Z01ldGhvZFdpdGhBcmdzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgICAg
IHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwog
ICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGxvbmdBcmcsIHRvSW50MzIoTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwotICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9N
SVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJ
TkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3Ry
QXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQp
KTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhUZXN0T2JqOjpIYXNJ
bnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmlu
ZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNVbmRlZmluZWQpKSkgOiAw
KTsKICAgICByZXR1cm4gdjhJbnRlZ2VyKGltcC0+bG9uZ01ldGhvZFdpdGhBcmdzKGxvbmdBcmcs
IHN0ckFyZywgb2JqQXJnKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQpAQCAtMTA5Nyw3ICsxMDk3
LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RXaXRoQXJnc0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICAgICAgcmV0dXJuIHRocm93Tm90RW5v
dWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NL
KGludCwgbG9uZ0FyZywgdG9JbnQzMihNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBE
ZWZhdWx0SXNVbmRlZmluZWQpKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFy
Z3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdHJBcmcsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9C
TE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBWOFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0
b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDIsIERlZmF1bHRJc1VuZGVmaW5lZCkpKSA6IDApOwogICAgIHJldHVybiB0b1Y4
KGltcC0+b2JqTWV0aG9kV2l0aEFyZ3MobG9uZ0FyZywgc3RyQXJnLCBvYmpBcmcpLCBhcmdzLkhv
bGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9CkBAIC0xMTMxLDcgKzExMzEsNyBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFRoYXRSZXF1aXJlc0FsbEFyZ3NBbmRUaHJv
d3NDYWxsYmFjayhjb25zdCB2OAogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgewotICAg
IFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3Ry
QXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQp
KTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4U3RyaW5nUmVz
b3VyY2U8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0
SXNVbmRlZmluZWQpKTsKICAgICBFWENFUFRJT05fQkxPQ0soVGVzdE9iaiosIG9iakFyZywgVjhU
ZXN0T2JqOjpIYXNJbnN0YW5jZShNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZh
dWx0SXNVbmRlZmluZWQpKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKSkgOiAwKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5tZXRob2RU
aGF0UmVxdWlyZXNBbGxBcmdzQW5kVGhyb3dzKHN0ckFyZywgb2JqQXJnLCBlYyk7CiAgICAgaWYg
KFVOTElLRUxZKGVjKSkKQEAgLTE0MzksNyArMTQzOSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW50CiAgICAgICAgIGltcC0+bWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nKCk7CiAgICAgICAgIHJl
dHVybiB2OFVuZGVmaW5lZCgpOwogICAgIH0KLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIo
YXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHN0ciwgTUFZQkVfTUlTU0lOR19Q
QVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5tZXRob2RX
aXRoT3B0aW9uYWxTdHJpbmcoc3RyKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAg
LTE0NDgsNyArMTQ0OCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0
aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWRDYWxsYmFjayhjb25zdCB2CiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc1VuZGVmaW5lZCIpOwog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0g
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBz
dHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkp
OworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNv
dXJjZTw+LCBzdHIsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpOwogICAgIGltcC0+bWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNVbmRlZmluZWQo
c3RyKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTE0NTcsNyArMTQ1Nyw3IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gbWV0aG9kV2l0aE9wdGlvbmFsU3RyaW5nSXNO
dWxsU3RyaW5nQ2FsbGJhY2soY29uc3QKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLm1l
dGhvZFdpdGhPcHRpb25hbFN0cmluZ0lzTnVsbFN0cmluZyIpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFS
QU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHIsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKKyAgICBTVFJJTkdfVE9f
VjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyLCBNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CiAgICAg
aW1wLT5tZXRob2RXaXRoT3B0aW9uYWxTdHJpbmdJc051bGxTdHJpbmcoc3RyKTsKICAgICByZXR1
cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTE1NDUsNyArMTU0NSw3IEBAIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhvZDFDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhUZXN0T2JqKiwgb2JqQXJnLCBW
OFRlc3RPYmo6Okhhc0luc3RhbmNlKE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERl
ZmF1bHRJc1VuZGVmaW5lZCkpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+OjpDYXN0KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1Vu
ZGVmaW5lZCkpKSA6IDApOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAx
LCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBU
SU9OX0JMT0NLKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFN
RVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPm92ZXJsb2FkZWRN
ZXRob2Qob2JqQXJnLCBzdHJBcmcpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAt
MTU3Miw3ICsxNTcyLDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvdmVybG9hZGVk
TWV0aG9kM0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MKICAgICBpZiAoYXJncy5M
ZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9y
KGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0
aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4U3RyaW5nUmVzb3VyY2U8Piwgc3RyQXJnLCBNQVlCRV9NSVNTSU5HX1BB
UkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBpbXAtPm92ZXJsb2Fk
ZWRNZXRob2Qoc3RyQXJnKTsKICAgICByZXR1cm4gdjhVbmRlZmluZWQoKTsKIH0KQEAgLTE2NjIs
NyArMTY2Miw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb3ZlcmxvYWRlZE1ldGhv
ZDExQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJnCiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAxKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShh
cmdzLkhvbGRlcigpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NL
KFY4UGFyYW1ldGVyPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHN0ckFyZywgTUFZQkVfTUlTU0lOR19QQVJBTUVU
RVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CiAgICAgaW1wLT5vdmVybG9hZGVkTWV0
aG9kKHN0ckFyZyk7CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CkBAIC0xNzM1LDcgKzE3
MzUsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG92ZXJsb2FkZWRNZXRob2QxMkNh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZwogICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
Ymoub3ZlcmxvYWRlZE1ldGhvZDEyIik7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAxKQogICAg
ICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUo
KSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRl
cjw+LCB0eXBlLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAwLCBEZWZhdWx0SXNVbmRl
ZmluZWQpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4U3Ry
aW5nUmVzb3VyY2U8PiwgdHlwZSwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVm
YXVsdElzVW5kZWZpbmVkKSk7CiAgICAgVGVzdE9iajo6b3ZlcmxvYWRlZE1ldGhvZDEodHlwZSk7
CiAgICAgcmV0dXJuIHY4VW5kZWZpbmVkKCk7CiB9CkBAIC0xOTI5LDcgKzE5MjksNyBAQCBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cmljdEZ1bmN0aW9uQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZl
KGFyZ3MuSG9sZGVyKCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHsKLSAgICBT
VFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHN0ciwg
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7Cisg
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNl
PD4sIHN0ciwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElzVW5kZWZp
bmVkKSk7CiAgICAgRVhDRVBUSU9OX0JMT0NLKGZsb2F0LCBhLCBzdGF0aWNfY2FzdDxmbG9hdD4o
TUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKS0+TnVt
YmVyVmFsdWUoKSkpOwogICAgIEVYQ0VQVElPTl9CTE9DSyhpbnQsIGIsIHRvSW50MzIoTUFZQkVf
TUlTU0lOR19QQVJBTUVURVIoYXJncywgMiwgRGVmYXVsdElzVW5kZWZpbmVkKSkpOwogICAgIFJl
ZlB0cjxib29sPiByZXN1bHQgPSBpbXAtPnN0cmljdEZ1bmN0aW9uKHN0ciwgYSwgYiwgZWMpOwpA
QCAtMTk0Nyw3ICsxOTQ3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2YXJpYWRp
Y1N0cmluZ01ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGEKICAgICBpZiAoYXJn
cy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vy
cm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJ
T05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgaGVhZCwgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJn
cywgMCwgRGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VY
Q0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIGhlYWQsIE1BWUJFX01JU1NJTkdfUEFS
QU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogICAgIEVYQ0VQVElPTl9CTE9D
SyhWZWN0b3I8U3RyaW5nPiwgdGFpbCwgdG9OYXRpdmVBcmd1bWVudHM8U3RyaW5nPihhcmdzLCAx
KSk7CiAgICAgaW1wLT52YXJpYWRpY1N0cmluZ01ldGhvZChoZWFkLCB0YWlsKTsKICAgICByZXR1
cm4gdjhVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAppbmRleCBiMGZlZDljZDdlNzA0OWQ2OTBlYzA4NzBlMDI4YTM1ZjhjMDBhNGVmLi5m
ZDBjNTdlNjg4NDQ0ZmMyMzVkMDZmNzFiZTliYzM5MjNjZTM4ZDdhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpjb25zdHJ1Y3Rv
cjRDYWxsYmFjayhjb25zdCB2CiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMuQ29uc3RydWN0b3I0Iik7CiAgICAgCi0gICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdHJpbmcsIE1BWUJFX01JU1NJTkdf
UEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19W
OFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdHJpbmcsIE1B
WUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOwogCiAg
ICAgUmVmUHRyPFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzPiBpbXBsID0gVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM6OmNyZWF0ZShzdHJpbmcpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IGFyZ3MuSG9sZGVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDI1MzJmMWU2ODE0OTY4ZWUz
NmExNzliOWIwN2E1MDRhNGY1ZGUxM2EuLmM2MWRlOTMyOGI4ZTdjNGY3Yjc5MzY3MDkwZDVhYmI4
ZTU0NGE2MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0yMTgsNyArMjE4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6Y29uc3RydWN0b3JDYWxs
YmFjaygKICAgICAgICAgcmV0dXJuIGFyZ3MuSG9sZGVyKCk7CiAgICAgaWYgKGFyZ3MuTGVuZ3Ro
KCkgPCAyKQogICAgICAgICByZXR1cm4gdGhyb3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdz
LkdldElzb2xhdGUoKSk7Ci0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9D
SyhWOFBhcmFtZXRlcjw+LCBoZWxsbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwg
RGVmYXVsdElzVW5kZWZpbmVkKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElP
Tl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIGhlbGxvLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRF
UihhcmdzLCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAgICBNZXNzYWdlUG9ydEFycmF5IG1l
c3NhZ2VQb3J0QXJyYXlUcmFuc2Zlckxpc3Q7CiAgICAgQXJyYXlCdWZmZXJBcnJheSBhcnJheUJ1
ZmZlckFycmF5VHJhbnNmZXJMaXN0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID4gMikgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhTdHJpbmdSZXNvdXJjZS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhTdHJpbmdSZXNvdXJjZS5oCmluZGV4IGE4NjNh
YzM0OWE5MDhlYjBiZTZjNjg5ZmI3NjcyMGEwZTc4M2JhODIuLjM0MmE0ZmRlODcyMDgyMGJlYjc1
NjEwYzRlNmE1NjUyYTk2YzM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4U3RyaW5nUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFN0cmluZ1Jlc291cmNlLmgKQEAgLTE0NCwxOCArMTQ0LDE4IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBTdHJpbmdUeXBlPgogU3RyaW5nVHlwZSB2OFN0cmluZ1RvV2ViQ29yZVN0cmluZyh2ODo6SGFu
ZGxlPHY4OjpTdHJpbmc+LCBFeHRlcm5hbE1vZGUpOwogU3RyaW5nIGludDMyVG9XZWJDb3JlU3Ry
aW5nKGludCB2YWx1ZSk7CiAKLS8vIFY4UGFyYW1ldGVyIGlzIGFuIGFkYXB0ZXIgY2xhc3MgdGhh
dCBjb252ZXJ0cyBWOCB2YWx1ZXMgdG8gU3RyaW5ncworLy8gVjhTdHJpbmdSZXNvdXJjZSBpcyBh
biBhZGFwdGVyIGNsYXNzIHRoYXQgY29udmVydHMgVjggdmFsdWVzIHRvIFN0cmluZ3MKIC8vIG9y
IEF0b21pY1N0cmluZ3MgYXMgYXBwcm9wcmlhdGUsIHVzaW5nIG11bHRpcGxlIHR5cGVjYXN0IG9w
ZXJhdG9ycy4KLWVudW0gVjhQYXJhbWV0ZXJNb2RlIHsKK2VudW0gVjhTdHJpbmdSZXNvdXJjZU1v
ZGUgewogICAgIERlZmF1bHRNb2RlLAogICAgIFdpdGhOdWxsQ2hlY2ssCiAgICAgV2l0aFVuZGVm
aW5lZE9yTnVsbENoZWNrCiB9OwogCi10ZW1wbGF0ZSA8VjhQYXJhbWV0ZXJNb2RlIE1vZGUgPSBE
ZWZhdWx0TW9kZT4KLWNsYXNzIFY4UGFyYW1ldGVyIHsKK3RlbXBsYXRlIDxWOFN0cmluZ1Jlc291
cmNlTW9kZSBNb2RlID0gRGVmYXVsdE1vZGU+CitjbGFzcyBWOFN0cmluZ1Jlc291cmNlIHsKIHB1
YmxpYzoKLSAgICBWOFBhcmFtZXRlcih2ODo6TG9jYWw8djg6OlZhbHVlPiBvYmplY3QpCisgICAg
VjhTdHJpbmdSZXNvdXJjZSh2ODo6TG9jYWw8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgICAgIDog
bV92OE9iamVjdChvYmplY3QpCiAgICAgICAgICwgbV9tb2RlKEV4dGVybmFsaXplKQogICAgICAg
ICAsIG1fc3RyaW5nKCkKQEAgLTIxMywxMiArMjEzLDEyIEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fc3RyaW5nOwogfTsKIAotdGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFBhcmFtZXRlcjxEZWZh
dWx0TW9kZT46OnByZXBhcmUoKQordGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFN0cmluZ1Jlc291
cmNlPERlZmF1bHRNb2RlPjo6cHJlcGFyZSgpCiB7CiAgICAgcmV0dXJuIHByZXBhcmVCYXNlKCk7
CiB9CiAKLXRlbXBsYXRlPD4gaW5saW5lIGJvb2wgVjhQYXJhbWV0ZXI8V2l0aE51bGxDaGVjaz46
OnByZXBhcmUoKQordGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFN0cmluZ1Jlc291cmNlPFdpdGhO
dWxsQ2hlY2s+OjpwcmVwYXJlKCkKIHsKICAgICBpZiAob2JqZWN0KCkuSXNFbXB0eSgpIHx8IG9i
amVjdCgpLT5Jc051bGwoKSkgewogICAgICAgICBzZXRTdHJpbmcoU3RyaW5nKCkpOwpAQCAtMjI3
LDcgKzIyNyw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIGJvb2wgVjhQYXJhbWV0ZXI8V2l0aE51bGxD
aGVjaz46OnByZXBhcmUoKQogICAgIHJldHVybiBwcmVwYXJlQmFzZSgpOwogfQogCi10ZW1wbGF0
ZTw+IGlubGluZSBib29sIFY4UGFyYW1ldGVyPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz46OnBy
ZXBhcmUoKQordGVtcGxhdGU8PiBpbmxpbmUgYm9vbCBWOFN0cmluZ1Jlc291cmNlPFdpdGhVbmRl
ZmluZWRPck51bGxDaGVjaz46OnByZXBhcmUoKQogewogICAgIGlmIChvYmplY3QoKS5Jc0VtcHR5
KCkgfHwgb2JqZWN0KCktPklzTnVsbCgpIHx8IG9iamVjdCgpLT5Jc1VuZGVmaW5lZCgpKSB7CiAg
ICAgICAgIHNldFN0cmluZyhTdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhDb25zb2xlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOENvbnNvbGVDdXN0b20uY3BwCmluZGV4IDE5ZTZlNzg1YWFjZWVl
MWE2YzAxOTk5YWFmYjUyZTc2YTE5NzRiZGUuLjMyMTBlYzY3NzQzMmRhMDA3OTI3NDFjYTk3ZGQ2
YzAwZTIwOGNmNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENvbnNvbGVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOENvbnNvbGVDdXN0b20uY3BwCkBAIC02NCw3ICs2NCw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOENvbnNvbGU6OnByb2ZpbGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLkNvbnNvbGUucHJvZmlsZSIpOwogICAgIENvbnNv
bGUqIGltcCA9IFY4Q29uc29sZTo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7Ci0gICAgU1RSSU5H
X1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVk
T3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1swXSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPFdpdGhVbmRlZmluZWRPck51bGxDaGVj
az4sIHRpdGxlLCBhcmdzWzBdKTsKICAgICBpbXAtPnByb2ZpbGUodGl0bGUsIFNjcmlwdFN0YXRl
OjpjdXJyZW50KCkpOwogICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwogfQpAQCAtNzMsNyArNzMs
NyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhDb25zb2xlOjpwcm9maWxlRW5kQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Db25zb2xl
LnByb2ZpbGVFbmQiKTsKICAgICBDb25zb2xlKiBpbXAgPSBWOENvbnNvbGU6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0so
VjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMF0pOwor
ICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJj
ZTxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1swXSk7CiAgICAgaW1wLT5w
cm9maWxlRW5kKHRpdGxlLCBTY3JpcHRTdGF0ZTo6Y3VycmVudCgpKTsKICAgICByZXR1cm4gdjhV
bmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwCmluZGV4IDc5YTZjMGM2NzVkNzk5N2U0MzJmNjI4
OWVlZjcyZGYwMTE4MTEyMjQuLjY1YzYzNmJlYjlkZGUyOGY5MDZkMGRkNWM3YjM5Mjc5NDM0Yzdm
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVdp
bmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzI0LDcgKzMyNCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gaGFuZGxlUG9zdE1lc3NhZ2VDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRz
JiBhcmdzCiAgICAgICAgIGlmICghZXh0cmFjdFRyYW5zZmVyYWJsZXMoYXJnc1t0cmFuc2ZlcmFi
bGVzQXJnSW5kZXhdLCBwb3J0QXJyYXksIGFycmF5QnVmZmVyQXJyYXksIGFyZ3MuR2V0SXNvbGF0
ZSgpKSkKICAgICAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVm
aW5lZE9yTnVsbENoZWNrPiwgdGFyZ2V0T3JpZ2luLCBhcmdzW3RhcmdldE9yaWdpbkFyZ0luZGV4
XSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jl
c291cmNlPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHRhcmdldE9yaWdpbiwgYXJnc1t0YXJn
ZXRPcmlnaW5BcmdJbmRleF0pOwogCiAgICAgYm9vbCBkaWRUaHJvdyA9IGZhbHNlOwogICAgIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UgPQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlTW90aW9uRXZlbnRD
dXN0b20uY3BwCmluZGV4IDgzZmY3NzNiNzEwM2M0ZTE2NTU1M2Q1NTQyYzFiMzkxZDk2ZTYyZjAu
LmIyYzQ4M2JiZDY2MzMyZDkwOTFhNDkzMzI0ZTMxNjE4NGM2MWNkNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERldmljZU1vdGlvbkV2ZW50Q3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhEZXZpY2VNb3Rp
b25FdmVudEN1c3RvbS5jcHAKQEAgLTE2NCw3ICsxNjQsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhEZXZpY2VNb3Rpb25FdmVudDo6aW50ZXJ2YWxBY2Nlc3NvckdldHRlcih2ODo6TG9jYWw8
djg6Ogogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGV2aWNlTW90aW9uRXZlbnQ6OmluaXREZXZp
Y2VNb3Rpb25FdmVudENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
RGV2aWNlTW90aW9uRXZlbnQqIGltcCA9IFY4RGV2aWNlTW90aW9uRXZlbnQ6OnRvTmF0aXZlKGFy
Z3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0so
VjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVS
X0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHR5cGUsIGFyZ3NbMF0pOwogICAg
IGJvb2wgYnViYmxlcyA9IGFyZ3NbMV0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIGJvb2wgY2FuY2Vs
YWJsZSA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIFJlZlB0cjxEZXZpY2VNb3Rpb25E
YXRhOjpBY2NlbGVyYXRpb24+IGFjY2VsZXJhdGlvbiA9IHJlYWRBY2NlbGVyYXRpb25Bcmd1bWVu
dChhcmdzWzNdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOERldmljZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKaW5kZXgg
YzY4NjFiYWU5N2FmYWE5ZmI2MjRlNTg2YmExYTVlY2I5Mjg4OGUwNC4uMGZmNmY3Y2ZiODE2ODFh
MDQxNTIzOThjZGM5NTZiODQ4ZGU1ZjMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlT3JpZW50YXRpb25FdmVudEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RGV2aWNlT3JpZW50YXRpb25FdmVu
dEN1c3RvbS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RGV2
aWNlT3JpZW50YXRpb25FdmVudDo6YWJzb2x1dGVBY2Nlc3NvckdldHRlcih2ODo6TG9jYWwKIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiBWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6OmluaXREZXZpY2VP
cmllbnRhdGlvbkV2ZW50Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBEZXZpY2VPcmllbnRhdGlvbkV2ZW50KiBpbXAgPSBWOERldmljZU9yaWVudGF0aW9uRXZlbnQ6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENF
UFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8PiwgdHlwZSwgYXJnc1swXSk7CisgICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHR5cGUsIGFy
Z3NbMF0pOwogICAgIGJvb2wgYnViYmxlcyA9IGFyZ3NbMV0tPkJvb2xlYW5WYWx1ZSgpOwogICAg
IGJvb2wgY2FuY2VsYWJsZSA9IGFyZ3NbMl0tPkJvb2xlYW5WYWx1ZSgpOwogICAgIC8vIElmIGFs
cGhhLCBiZXRhLCBnYW1tYSBvciBhYnNvbHV0ZSBhcmUgbnVsbCBvciB1bmRlZmluZWQsIG1hcmsg
dGhlbSBhcyBub3QgcHJvdmlkZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhIaXN0b3J5Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEhpc3RvcnlDdXN0b20uY3BwCmluZGV4IDNjZDY2NmRlMzE2ODZkZmRiYmU2
YzAwMGM5MTlhZGMwN2JhMjVmMjEuLmVhOGE3NjE4MGY0NGE1ZmU3NjIxZjM1MzE0NDI0YWExMzI0
ZDE1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhp
c3RvcnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OEhpc3RvcnlDdXN0b20uY3BwCkBAIC02NSw4ICs2NSw4IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOEhpc3Rvcnk6OnB1c2hTdGF0ZUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiAgICAgaWYgKGRpZFRocm93KQogICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOwogCi0g
ICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB0aXRsZSwgYXJnc1sxXSk7Ci0gICAgU1RSSU5HX1RPX1Y4
UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjxXaXRoVW5kZWZpbmVkT3JOdWxs
Q2hlY2s+LCB1cmwsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDIsIERlZmF1bHRJc051
bGxTdHJpbmcpKTsKKyAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
U3RyaW5nUmVzb3VyY2U8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMV0p
OworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNv
dXJjZTxXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2s+LCB1cmwsIE1BWUJFX01JU1NJTkdfUEFSQU1F
VEVSKGFyZ3MsIDIsIERlZmF1bHRJc051bGxTdHJpbmcpKTsKIAogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIEhpc3RvcnkqIGhpc3RvcnkgPSBWOEhpc3Rvcnk6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwpAQCAtODIsOCArODIsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhIaXN0
b3J5OjpyZXBsYWNlU3RhdGVDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAg
IGlmIChkaWRUaHJvdykKICAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKIAotICAgIFNU
UklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVm
aW5lZE9yTnVsbENoZWNrPiwgdGl0bGUsIGFyZ3NbMV0pOwotICAgIFNUUklOR19UT19WOFBBUkFN
RVRFUl9FWENFUFRJT05fQkxPQ0soVjhQYXJhbWV0ZXI8V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
PiwgdXJsLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAyLCBEZWZhdWx0SXNOdWxsU3Ry
aW5nKSk7CisgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmlu
Z1Jlc291cmNlPFdpdGhVbmRlZmluZWRPck51bGxDaGVjaz4sIHRpdGxlLCBhcmdzWzFdKTsKKyAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4U3RyaW5nUmVzb3VyY2U8
V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrPiwgdXJsLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihh
cmdzLCAyLCBEZWZhdWx0SXNOdWxsU3RyaW5nKSk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjID0g
MDsKICAgICBIaXN0b3J5KiBoaXN0b3J5ID0gVjhIaXN0b3J5Ojp0b05hdGl2ZShhcmdzLkhvbGRl
cigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
dGVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRl
bnRDdXN0b20uY3BwCmluZGV4IDEwZGE3OGQ4MjRkYTM0OTljMjA2MzhhNTg0MWU0YTdhNDcyODcw
MWEuLmIzOGVhMDE5NDdlZDY4NTUyYzcwZDY0ZTQ1NTc0MzFiNWZhN2VjMDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudEN1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q3VzdG9tLmNwcApA
QCAtNjAsOCArNjAsOCBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnRlbnQ6OmNvbnN0cnVj
dG9yQ2FsbGJhY2tDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYQogICAgIH0KIAogICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05f
QkxPQ0soVjhQYXJhbWV0ZXI8PiwgYWN0aW9uLCBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdz
LCAwLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKLSAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhD
RVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIHR5cGUsIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19UT19WOFBBUkFNRVRF
Ul9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBhY3Rpb24sIE1BWUJFX01JU1NJ
TkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCkpOworICAgIFNUUklOR19U
T19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCB0eXBlLCBN
QVlCRV9NSVNTSU5HX1BBUkFNRVRFUihhcmdzLCAxLCBEZWZhdWx0SXNVbmRlZmluZWQpKTsKICAg
ICBNZXNzYWdlUG9ydEFycmF5IG1lc3NhZ2VQb3J0QXJyYXlUcmFuc2Zlckxpc3Q7CiAgICAgQXJy
YXlCdWZmZXJBcnJheSBhcnJheUJ1ZmZlckFycmF5VHJhbnNmZXJMaXN0OwogICAgIGlmIChhcmdz
Lkxlbmd0aCgpID4gMykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwCmluZGV4IDU5M2FjYmI5NGYz
YjA2YjNlNjQzZGNkOTE1M2ExYTRiOTU4YTgwYWIuLjRjYTY2MGE0MDA5OGZjODdhMzczODg5Yjc0
MjgxMzFiOTE3NjZhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOFNRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAKQEAgLTUzLDcgKzUzLDcg
QEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTcWxDYWxs
YmFjayhjb25zdCB2ODo6QXJndW1lbnRzJgogICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDApCiAg
ICAgICAgIHJldHVybiBzZXRET01FeGNlcHRpb24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRl
KCkpOwogCi0gICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFt
ZXRlcjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9F
WENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOwog
CiAgICAgVmVjdG9yPFNRTFZhbHVlPiBzcWxWYWx1ZXM7CiAKQEAgLTgwLDcgKzgwLDcgQEAgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJhbnNhY3Rpb246OmV4ZWN1dGVTcWxDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJgogICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhkb3Vi
bGUsIHNxbFZhbHVlLCB2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgc3Fs
VmFsdWVzLmFwcGVuZChTUUxWYWx1ZShzcWxWYWx1ZSkpOwogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4
UGFyYW1ldGVyPD4sIHNxbFZhbHVlLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFN0cmluZ1Jlc291cmNlPD4sIHNxbFZhbHVl
LCB2YWx1ZSk7CiAgICAgICAgICAgICAgICAgc3FsVmFsdWVzLmFwcGVuZChTUUxWYWx1ZShzcWxW
YWx1ZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25TeW5jQ3Vz
dG9tLmNwcAppbmRleCAxYWI2NjI2NzhmZWNiNDVkM2I5YjYxMjE0ZDU4NGE5YjA3NGNhZjNiLi5i
YjJmODFmZTJiZDZkMDYzMjI1NjZmYTgxMDM3ZjcyYzM4YjdmZTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0
aW9uU3luY0N1c3RvbS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4U1FMVHJhbnNhY3Rpb25TeW5jOjpleGVjdXRlU3FsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3Vt
ZW4KICAgICBpZiAoIWFyZ3MuTGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRp
b24oU1lOVEFYX0VSUiwgYXJncy5HZXRJc29sYXRlKCkpOwogCi0gICAgU1RSSU5HX1RPX1Y4UEFS
QU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0p
OworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0soVjhTdHJpbmdSZXNv
dXJjZTw+LCBzdGF0ZW1lbnQsIGFyZ3NbMF0pOwogCiAgICAgVmVjdG9yPFNRTFZhbHVlPiBzcWxW
YWx1ZXM7CiAKQEAgLTgwLDcgKzgwLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4U1FMVHJh
bnNhY3Rpb25TeW5jOjpleGVjdXRlU3FsQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW4KICAgICAg
ICAgICAgICAgICBFWENFUFRJT05fQkxPQ0soZG91YmxlLCBzcWxWYWx1ZSwgdmFsdWUtPk51bWJl
clZhbHVlKCkpOwogICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBlbmQoU1FMVmFsdWUoc3Fs
VmFsdWUpKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU1RSSU5HX1RP
X1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCBzcWxWYWx1ZSwgdmFs
dWUpOworICAgICAgICAgICAgICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxP
Q0soVjhTdHJpbmdSZXNvdXJjZTw+LCBzcWxWYWx1ZSwgdmFsdWUpOwogICAgICAgICAgICAgICAg
IHNxbFZhbHVlcy5hcHBlbmQoU1FMVmFsdWUoc3FsVmFsdWUpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggNDE1Njgz
MmQyZGM4NGE3MjQ2YmU2ZDI3NTY1NTU1ZTIwZDRlZmRhZS4uMzA1ZGFhODQxYjU0ODI3OWVlOTQy
NzY4MjRmZWE4OGNhZDZmMWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCkBAIC0zMDgsNyArMzA4LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4V2ViR0xSZW5k
ZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb25DYWxsYmFjayhjb25zdCB2ODo6QXIKICAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIGltcCA9IFY4V2ViR0xSZW5kZXJpbmdDb250ZXh0Ojp0b05hdGl2
ZShhcmdzLkhvbGRlcigpKTsKICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJl
dHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLSAg
ICBTVFJJTkdfVE9fVjhQQVJBTUVURVJfRVhDRVBUSU9OX0JMT0NLKFY4UGFyYW1ldGVyPD4sIG5h
bWUsIGFyZ3NbMF0pOworICAgIFNUUklOR19UT19WOFBBUkFNRVRFUl9FWENFUFRJT05fQkxPQ0so
VjhTdHJpbmdSZXNvdXJjZTw+LCBuYW1lLCBhcmdzWzBdKTsKICAgICBXZWJHTEV4dGVuc2lvbiog
ZXh0ZW5zaW9uID0gaW1wLT5nZXRFeHRlbnNpb24obmFtZSk7CiAgICAgcmV0dXJuIHRvVjhPYmpl
Y3QoZXh0ZW5zaW9uLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>