<?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>110726</bug_id>
          
          <creation_ts>2013-02-24 23:16:05 -0800</creation_ts>
          <short_desc>[V8] Generate xxxAttrSetterCallback()</short_desc>
          <delta_ts>2013-02-25 13:28:15 -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>110667</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>840717</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-24 23:16:05 -0800</bug_when>
    <thetext>This is one of steps to insert TRACE_EVENT_STATE() macros into DOM bindings. This patch introduces an indirection function for xxxAttrSetter(), like this:

// For non-custom setters
void xxxAttrSetterCallback(...) {
  xxxAttrSetter(...);
}

// For custom setters.
void xxxAttrSetterCallback(...) {
  return xxxAttrSetterCustom(...);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840740</commentid>
    <comment_count>1</comment_count>
      <attachid>190003</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-24 23:49:10 -0800</bug_when>
    <thetext>Created attachment 190003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840741</commentid>
    <comment_count>2</comment_count>
      <attachid>190003</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-24 23:51:25 -0800</bug_when>
    <thetext>Comment on attachment 190003
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=190003&amp;action=review

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1199
&gt; -sub GenerateNormalAttrSetter
&gt; +sub GenerateNormalAttrSetterCallback

This diff is confusing, but basically I just factored out ${attrName}AttrSetterCallback() from GenerateNormalAttrSetter().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841246</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-02-25 13:27:51 -0800</bug_when>
    <thetext>Committed r143964: &lt;http://trac.webkit.org/changeset/143964&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190003</attachid>
            <date>2013-02-24 23:49:10 -0800</date>
            <delta_ts>2013-02-25 13:28:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110726-20130224234527.patch</filename>
            <type>text/plain</type>
            <size>90533</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMWFhMWEyNjNhYWNi
ZDgyNDIyODJlZDYxZjRiYWMyZjZhZWFmZC4uNjVjNGVjMzNjNmViMTY2ODRhZmVmNGJjYTI3MGM4
ODE5MmMyNmIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAxMy0wMi0yNCAgS2Vu
dGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1Y4XSBHZW5lcmF0
ZSB4eHhBdHRyU2V0dGVyQ2FsbGJhY2soKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBvbmUgb2Ygc3RlcHMgdG8gaW5zZXJ0IFRSQUNFX0VW
RU5UX1NUQVRFKCkgbWFjcm9zIGludG8gRE9NIGJpbmRpbmdzLgorICAgICAgICBUaGlzIHBhdGNo
IGludHJvZHVjZXMgYW4gaW5kaXJlY3Rpb24gZnVuY3Rpb24gZm9yIHh4eEF0dHJTZXR0ZXIoKSwg
bGlrZSB0aGlzOgorCisgICAgICAgIC8vIEZvciBub24tY3VzdG9tIHNldHRlcnMKKyAgICAgICAg
dm9pZCB4eHhBdHRyU2V0dGVyQ2FsbGJhY2soLi4uKSB7CisgICAgICAgICAgeHh4QXR0clNldHRl
ciguLi4pOworICAgICAgICB9CisKKyAgICAgICAgLy8gRm9yIGN1c3RvbSBzZXR0ZXJzLgorICAg
ICAgICB2b2lkIHh4eEF0dHJTZXR0ZXJDYWxsYmFjayguLi4pIHsKKyAgICAgICAgICByZXR1cm4g
eHh4QXR0clNldHRlckN1c3RvbSguLi4pOworICAgICAgICB9CisKKyAgICAgICAgTm8gdGVzdHMu
IE5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyQ2FsbGJh
Y2spOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVy
YXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSk6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0
aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVt
ZW50YWxTdGF0aWNBdHRyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RJbnRlcmZh
Y2VWOEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFs
OjpzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxTdHIzQXR0clNldHRlckNhbGxi
YWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVt
ZW50YWxOb2RlQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0YXRpY1N0cmluZ0F0dHJBdHRyU2V0dGVyQ2FsbGJh
Y2spOgorICAgICAgICAoVGVzdE9ialY4SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OmVudW1BdHRyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpzaG9ydEF0dHJBdHRyU2V0dGVyQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkU2hvcnRBdHRyQXR0
clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjps
b25nQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJ
bnRlcm5hbDo6bG9uZ0xvbmdBdHRyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNv
cmU6OlRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJTZXR0ZXJDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0ckF0
dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
dGVzdE9iakF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVy
bmFsOjp0ZXN0T2JqQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0clNldHRlckNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRTdHJpbmdBdHRy
QXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFs
OjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyQXR0
clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpy
ZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tSW50
ZWdyYWxBdHRyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpW
OEludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tVVJM
QXR0ckF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6dHlwZWRBcnJheUF0dHJBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6VGVzdE9ialY4SW50ZXJuYWw6OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNh
bGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjphdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyQ2Fs
bGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6
OlRlc3RPYmpWOEludGVybmFsOjpjdXN0b21BdHRyQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVB
dHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6
OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlQXR0clNldHRlckNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRy
aWJ1dGVSYWlzZXNBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9i
alY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0
clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3
aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlQXR0clNldHRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzQXR0clNldHRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp3aXRoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUF0dHJT
ZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6d2l0
aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJTZXR0ZXJDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyMUF0
dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6
Y29uZGl0aW9uYWxBdHRyMkF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXJDYWxsYmFjayk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0clNldHRl
ckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVk
QXRSdW50aW1lQXR0cjFBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVBdHRyMkF0dHJTZXR0ZXJDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZFBlckNvbnRleHRB
dHRyMUF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZFBlckNvbnRleHRBdHRyMkF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZmxvYXRBcnJheUF0dHJTZXR0ZXJDYWxsYmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZG91YmxlQXJyYXlBdHRy
U2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om11
dGFibGVQb2ludEF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2Jq
VjhJbnRlcm5hbDo6aW1tdXRhYmxlUG9pbnRBdHRyU2V0dGVyQ2FsbGJhY2spOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmF3YmVycnlBdHRyU2V0dGVyQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OnN0cmljdEZsb2F0QXR0clNl
dHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjppZEF0
dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4VGVzdE9i
ajo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVy
bmFsOjp2YWx1ZUF0dHJTZXR0ZXJDYWxsYmFjayk6CisgICAgICAgIChUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5hbDo6Y2FjaGVkVmFsdWVBdHRyU2V0
dGVyQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RU
eXBlZGVmc1Y4SW50ZXJuYWw6OnVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0clNldHRlckNhbGxiYWNr
KToKKyAgICAgICAgKFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6aW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlQXR0
clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50ZXJu
YWw6OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
QXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50
ZXJuYWw6OnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkNvcmU6OlRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRo
U2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmUpOgor
CiAyMDEzLTAyLTI0ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIGNsZWFudXAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uIGFuZCBJ
bmJhbmRUZXh0VHJhY2tQcml2YXRlQVZGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDNiNWNiZjBlYTMxZjI5NTA0YzZhYzQ2
MTM0ODRiNWZmZDU2ODJjMzkuLmNkYWE1ZDYyYTkxZWUwZGM0ZDFmNDU0NWI1Y2NmMzU5ODk4Mzkx
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCkBAIC0xMTk2LDMzICsxMTk2LDUxIEBAIEVORAogRU5ECiB9CiAKLXN1YiBHZW5l
cmF0ZU5vcm1hbEF0dHJTZXR0ZXIKK3N1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXJDYWxsYmFj
awogewogICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKICAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7CiAKICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkg
JHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKLSAgICBteSAkYXR0ck5hbWUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CiAgICAgbXkgJGF0dHJFeHQgPSAkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlczsKLSAgICBteSAkYXR0clR5cGUgPSAk
YXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisgICAgbXkgJGF0dHJOYW1lID0gJGF0dHJpYnV0
ZS0+c2lnbmF0dXJlLT5uYW1lOwogCiAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVH
ZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJl
KTsKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9
XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIAotICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICJzdGF0aWMgdm9pZCAke2F0dHJOYW1lfUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKVxue1xuIik7Ci0gICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVG
ZWF0dXJlT2JzZXJ2YXRpb24oJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVjhNZWFzdXJlQXMifSkpOwotCisgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgInN0
YXRpYyB2b2lkICR7YXR0ck5hbWV9QXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbylcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ7XG4iKTsKKyAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkYXR0
ckV4dC0+eyJWOE1lYXN1cmVBcyJ9KSk7CiAgICAgaWYgKEhhc0N1c3RvbVNldHRlcigkYXR0ckV4
dCkpIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgPDxFTkQpOwotICAgICAgICAk
e3Y4SW50ZXJmYWNlTmFtZX06OiR7YXR0ck5hbWV9QXR0clNldHRlckN1c3RvbShuYW1lLCB2YWx1
ZSwgaW5mbyk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgJHt2OEludGVy
ZmFjZU5hbWV9Ojoke2F0dHJOYW1lfUF0dHJTZXR0ZXJDdXN0b20obmFtZSwgdmFsdWUsIGluZm8p
O1xuIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAg
ICAke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHthdHRyTmFtZX1BdHRyU2V0dGVyKG5hbWUs
IHZhbHVlLCBpbmZvKTtcbiIpOworICAgIH0KKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAi
fVxuXG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2VuZGlmIC8vICR7Y29uZGl0
aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIH0KIAotRU5ECi0gICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmlu
Z31cblxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworc3ViIEdlbmVyYXRlTm9ybWFsQXR0clNl
dHRlcgoreworICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlID0g
c2hpZnQ7CisKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CisgICAg
bXkgJHY4SW50ZXJmYWNlTmFtZSA9ICJWOCRpbnRlcmZhY2VOYW1lIjsKKyAgICBteSAkYXR0ck5h
bWUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWU7CisgICAgbXkgJGF0dHJFeHQgPSAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlczsKKyAgICBteSAkYXR0clR5cGUg
PSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGU7CisKKyAgICBpZiAoSGFzQ3VzdG9tU2V0dGVy
KCRhdHRyRXh0KSkgewogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbXkgJGNvbmRpdGlv
bmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGF0
dHJpYnV0ZS0+c2lnbmF0dXJlKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiI2lmICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAic3RhdGljIHZvaWQgJHthdHRyTmFtZX1BdHRyU2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbylcbiIpOworICAgIHB1c2goQGltcGxDb250ZW50RGVj
bHMsICJ7XG4iKTsKKwogICAgICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hlY2tpbmciIGV4dGVuZGVk
IGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQgdGhlIGF0dHJpYnV0ZSdzIHR5cGUgaXMgYW4KICAg
ICAjIGludGVyZmFjZSB0eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2VzIG5vdCBp
bXBsZW1lbnQgdGhhdCBpbnRlcmZhY2UsIGEgVHlwZUVycm9yIGlzCiAgICAgIyB0aHJvd24gcmF0
aGVyIHRoYW4gc2lsZW50bHkgcGFzc2luZyBOVUxMIHRvIHRoZSBDKysgY29kZS4KQEAgLTIzMzEs
NyArMjM0OSw3IEBAIHN1YiBHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRyaWJ1dGUKICAgICB9IGVs
c2UgewogICAgICAgICAjIERlZmF1bHQgR2V0dGVyIGFuZCBTZXR0ZXIKICAgICAgICAgJGdldHRl
ciA9ICIke2ludGVyZmFjZU5hbWV9VjhJbnRlcm5hbDo6JHthdHRyTmFtZX1BdHRyR2V0dGVyQ2Fs
bGJhY2siOwotICAgICAgICAkc2V0dGVyID0gIiR7aW50ZXJmYWNlTmFtZX1WOEludGVybmFsOjok
e2F0dHJOYW1lfUF0dHJTZXR0ZXIiOworICAgICAgICAkc2V0dGVyID0gIiR7aW50ZXJmYWNlTmFt
ZX1WOEludGVybmFsOjoke2F0dHJOYW1lfUF0dHJTZXR0ZXJDYWxsYmFjayI7CiAKICAgICAgICAg
aWYgKCFIYXNDdXN0b21TZXR0ZXIoJGF0dHJFeHQpICYmICRhdHRyRXh0LT57IlJlcGxhY2VhYmxl
In0pIHsKICAgICAgICAgICAgICRzZXR0ZXIgPSAiJHtpbnRlcmZhY2VOYW1lfVY4SW50ZXJuYWw6
OiR7aW50ZXJmYWNlTmFtZX1SZXBsYWNlYWJsZUF0dHJTZXR0ZXIiOwpAQCAtMjc0Myw2ICsyNzYx
LDcgQEAgRU5ECiAgICAgICAgICAgICAkaGFzUmVwbGFjZWFibGUgPSAxOwogICAgICAgICB9IGVs
c2lmICghSXNSZWFkb25seSgkYXR0cmlidXRlKSkgewogICAgICAgICAgICAgR2VuZXJhdGVOb3Jt
YWxBdHRyU2V0dGVyKCRhdHRyaWJ1dGUsICRpbnRlcmZhY2UpOworICAgICAgICAgICAgR2VuZXJh
dGVOb3JtYWxBdHRyU2V0dGVyQ2FsbGJhY2soJGF0dHJpYnV0ZSwgJGludGVyZmFjZSk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXggNmVjODZlOWJiYjNkYzRi
YzBjYThkMjM3ZGZmZGJiMmEwMDVhYTU4Ny4uYzdjNmQwYzBhM2VhYmIyNjlkNDdkNTkyNTAyYmQx
N2Q0NjRlZjYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKQEAgLTEyNiw2ICsxMjYsMTUgQEAg
c3RhdGljIHZvaWQgc3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2MKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjEyKQogCitzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxTdGF0aWNBdHRyQXR0
clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6
OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0
SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXIobmFt
ZSwgdmFsdWUsIGluZm8pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShD
b25kaXRpb24xMikKKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxT
dHIxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vz
c29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0SW50ZXJmYWNlKiBpbXAgPSBWOFRlc3RJbnRlcmZh
Y2U6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMTc2LDYgKzE4NSwxNSBAQCBzdGF0aWMg
dm9pZCBzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2FsPHY4OgogCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMTIpCiAKK3N0YXRpYyB2b2lkIHN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVyQ2FsbGJh
Y2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RJbnRlcmZhY2VWOElu
dGVybmFsOjpzdXBwbGVtZW50YWxTdHIyQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9
CisKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikK
KworI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQorCiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN1cHBsZW1lbnRhbFN0cjNBdHRyR2V0dGVyQ2FsbGJh
Y2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7CiAgICAgcmV0dXJuIFY4VGVzdEludGVyZmFjZTo6c3VwcGxlbWVudGFsU3RyM0F0dHJH
ZXR0ZXJDdXN0b20obmFtZSwgaW5mbyk7CkBAIC0xODUsOSArMjAzLDkgQEAgc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxTdHIzQXR0ckdldHRlckNhbGxiYWNrKHY4OjpM
b2NhbDx2ODo6U3QKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjEyKQogCi1zdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxTdHIzQXR0clNldHRlcih2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCitzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxTdHIzQXR0clNldHRl
ckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKLSAgICAgICAgVjhUZXN0
SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIzQXR0clNldHRlckN1c3RvbShuYW1lLCB2YWx1ZSwg
aW5mbyk7CisgICAgVjhUZXN0SW50ZXJmYWNlOjpzdXBwbGVtZW50YWxTdHIzQXR0clNldHRlckN1
c3RvbShuYW1lLCB2YWx1ZSwgaW5mbyk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9u
MTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKQEAgLTIyNSw2ICsyNDMsMTUgQEAgc3RhdGljIHZv
aWQgc3VwcGxlbWVudGFsTm9kZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODoKIAogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRp
dGlvbjEyKQogCitzdGF0aWMgdm9pZCBzdXBwbGVtZW50YWxOb2RlQXR0clNldHRlckNhbGxiYWNr
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0SW50ZXJmYWNlVjhJbnRl
cm5hbDo6c3VwcGxlbWVudGFsTm9kZUF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQor
CisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCisK
KyNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24xMikKKwogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdXBwbGVtZW50YWxNZXRob2QxTWV0aG9kKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgVGVzdEludGVyZmFjZSogaW1wID0gVjhUZXN0SW50
ZXJmYWNlOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKQEAgLTI4NSw3ICszMTIsNyBAQCBzdGF0
aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdEludGVy
ZmFjZUF0dHJzW10gPSB7CiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMTIpCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCiAgICAgLy8gQXR0cmlidXRlICdzdXBwbGVtZW50YWxTdGF0aWNBdHRyJyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3Vw
cGxlbWVudGFsU3RhdGljQXR0ciIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50
YWxTdGF0aWNBdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6
c3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsi
c3VwcGxlbWVudGFsU3RhdGljQXR0ciIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpzdXBwbGVt
ZW50YWxTdGF0aWNBdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0SW50ZXJmYWNlVjhJbnRlcm5h
bDo6c3VwcGxlbWVudGFsU3RhdGljQXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIp
CiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAgLy8g
QXR0cmlidXRlICdzdXBwbGVtZW50YWxTdHIxJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScg
RXh0QXR0cjogJ0NvbmRpdGlvbmFsIEltcGxlbWVudGVkQnknKQpAQCAtMjkzLDE1ICszMjAsMTUg
QEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRl
c3RJbnRlcmZhY2VBdHRyc1tdID0gewogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkgfHwg
RU5BQkxFKENvbmRpdGlvbjEyKQogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjEyKQogICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMicgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCBJbXBsZW1lbnRlZEJ5JykKLSAgICB7InN1
cHBsZW1lbnRhbFN0cjIiLCBUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3Ry
MkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRh
bFN0cjJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7InN1cHBsZW1lbnRhbFN0cjIi
LCBUZXN0SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyMkF0dHJHZXR0ZXJDYWxs
YmFjaywgVGVzdEludGVyZmFjZVY4SW50ZXJuYWw6OnN1cHBsZW1lbnRhbFN0cjJBdHRyU2V0dGVy
Q2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xMSkg
fHwgRU5BQkxFKENvbmRpdGlvbjEyKQogI2lmIEVOQUJMRShDb25kaXRpb24xMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjEyKQogICAgIC8vIEF0dHJpYnV0ZSAnc3VwcGxlbWVudGFsU3RyMycgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDdXN0b21TZXR0ZXIgQ3VzdG9tR2V0dGVyIENvbmRpdGlv
bmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3VwcGxlbWVudGFsU3RyMyIsIFRlc3RJbnRlcmZh
Y2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxTdHIzQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0SW50
ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsU3RyM0F0dHJTZXR0ZXIsIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAorICAgIHsic3VwcGxlbWVudGFsU3RyMyIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFsOjpz
dXBwbGVtZW50YWxTdHIzQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0SW50ZXJmYWNlVjhJbnRlcm5h
bDo6c3VwcGxlbWVudGFsU3RyM0F0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAj
ZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAjaWYg
RU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiAgICAgLy8gQXR0cmli
dXRlICdzdXBwbGVtZW50YWxOb2RlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRp
dGlvbmFsIEltcGxlbWVudGVkQnknKQotICAgIHsic3VwcGxlbWVudGFsTm9kZSIsIFRlc3RJbnRl
cmZhY2VWOEludGVybmFsOjpzdXBwbGVtZW50YWxOb2RlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0
SW50ZXJmYWNlVjhJbnRlcm5hbDo6c3VwcGxlbWVudGFsTm9kZUF0dHJTZXR0ZXIsIDAgLyogbm8g
ZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3Rh
dGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFu
Y2UgKi99LAorICAgIHsic3VwcGxlbWVudGFsTm9kZSIsIFRlc3RJbnRlcmZhY2VWOEludGVybmFs
OjpzdXBwbGVtZW50YWxOb2RlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0SW50ZXJmYWNlVjhJbnRl
cm5hbDo6c3VwcGxlbWVudGFsTm9kZUF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICov
LCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2Fz
dDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30s
CiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCmluZGV4IDY2ZGNkY2EwNzgzZGI2NTM3NTMyYWRmYmQyMGIzMGZhOWE2MDJm
ZTguLjBlNWFjZjFkMjY3NDI1ZGMwYWE0MzllODc3NGVmNGFhMzIzNjI2NmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CkBAIC0xNzksNiArMTc5LDExIEBAIHN0YXRpYyB2b2lkIHN0YXRpY1N0cmluZ0F0dHJBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiAgICAgcmV0dXJu
OwogfQogCitzdGF0aWMgdm9pZCBzdGF0aWNTdHJpbmdBdHRyQXR0clNldHRlckNhbGxiYWNrKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6c3Rh
dGljU3RyaW5nQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGVudW1BdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMjAxLDYgKzIw
NiwxMSBAQCBzdGF0aWMgdm9pZCBlbnVtQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+CiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMg
dm9pZCBlbnVtQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OmVudW1BdHRyQXR0clNldHRlcihuYW1lLCB2
YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc2hvcnRBdHRy
QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwpAQCAtMjIwLDYgKzIzMCwxMSBAQCBzdGF0aWMgdm9pZCBzaG9ydEF0dHJB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
PgogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgc2hvcnRBdHRyQXR0clNldHRlckNhbGxi
YWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5h
bDo6c2hvcnRBdHRyQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0y
MzksNiArMjU0LDExIEBAIHN0YXRpYyB2b2lkIHVuc2lnbmVkU2hvcnRBdHRyQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4CiAgICAgcmV0dXJuOwogfQog
CitzdGF0aWMgdm9pZCB1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVk
U2hvcnRBdHRyQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gbG9uZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0yNTgsNiArMjc4LDEx
IEBAIHN0YXRpYyB2b2lkIGxvbmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4KICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lk
IGxvbmdBdHRyQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6bG9uZ0F0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVl
LCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBsb25nTG9uZ0F0dHJB
dHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJ
bmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CkBAIC0yNzcsNiArMzAyLDExIEBAIHN0YXRpYyB2b2lkIGxvbmdMb25nQXR0
ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
CiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBsb25nTG9uZ0F0dHJBdHRyU2V0dGVyQ2Fs
bGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVy
bmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJHZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
CiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKQEAgLTI5Niw2ICszMjYsMTEgQEAgc3RhdGljIHZvaWQgdW5zaWduZWRMb25nTG9uZ0F0dHJB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWwKICAgICByZXR1
cm47CiB9CiAKK3N0YXRpYyB2b2lkIHVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0clNldHRlckNhbGxi
YWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5h
bDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30K
Kwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJpbmdBdHRyQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpA
QCAtMzE1LDYgKzM1MCwxMSBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZQogICAgIHJldHVybjsK
IH0KIAorc3RhdGljIHZvaWQgc3RyaW5nQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJB
dHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0ZXN0T2JqQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTMyOSwxMyArMzY5LDE4IEBAIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdGVzdE9iakF0dHJBdHRyR2V0dGVyQ2FsbGJhY2so
djg6OkxvY2FsPHY4OjpTdHJpbmc+CiAKIHN0YXRpYyB2b2lkIHRlc3RPYmpBdHRyQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpv
YnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLCBGZWF0dXJl
T2JzZXJ2ZXI6OlRlc3RGZWF0dXJlKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0lu
c3RhbmNlKHZhbHVlLCBpbmZvLkdldElzb2xhdGUoKSkgPyBWOFRlc3RPYmo6OnRvTmF0aXZlKHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QodmFsdWUpKSA6IDA7CiAgICAgaW1wLT5zZXRUZXN0
T2JqQXR0cihXVEY6OmdldFB0cih2KSk7CiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCB0
ZXN0T2JqQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
djg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8p
Cit7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5n
U3RhdGU6Omluc3RhbmNlKCkpLCBGZWF0dXJlT2JzZXJ2ZXI6OlRlc3RGZWF0dXJlKTsKKyAgICBU
ZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZv
KTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBYTUxPYmpBdHRyQXR0ckdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVy
KCkpOwpAQCAtMzU1LDYgKzQwMCwxMSBAQCBzdGF0aWMgdm9pZCBYTUxPYmpBdHRyQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZQogICAgIHJl
dHVybjsKIH0KIAorc3RhdGljIHZvaWQgWE1MT2JqQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OlhNTE9i
akF0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBjcmVhdGVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0zNzQsNiArNDI0LDExIEBAIHN0
YXRpYyB2b2lkIGNyZWF0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHZhCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBjcmVh
dGVBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAg
IFRlc3RPYmpWOEludGVybmFsOjpjcmVhdGVBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsK
K30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRTdHJpbmdBdHRyQXR0
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwpAQCAtMzkzLDYgKzQ0OCwxMSBAQCBzdGF0aWMgdm9pZCByZWZsZWN0ZWRTdHJp
bmdBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPAog
ICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgcmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0
ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4
SW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZv
KTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRJbnRlZ3JhbEF0
dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUo
aW5mby5Ib2xkZXIoKSk7CkBAIC00MTIsNiArNDcyLDExIEBAIHN0YXRpYyB2b2lkIHJlZmxlY3Rl
ZEludGVncmFsQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRJbnRlZ3JhbEF0dHJB
dHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRl
c3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyKG5hbWUsIHZh
bHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiByZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTQzMSw2ICs0OTYsMTEgQEAgc3Rh
dGljIHZvaWQgcmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLAogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgcmVmbGVj
dGVkVW5zaWduZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEJvb2xlYW5BdHRyQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpA
QCAtNDUwLDYgKzUyMCwxMSBAQCBzdGF0aWMgdm9pZCByZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbAogICAgIHJldHVybjsK
IH0KIAorc3RhdGljIHZvaWQgcmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyU2V0dGVyQ2FsbGJhY2so
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjpy
ZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZFVSTEF0dHJBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQog
ewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CkBAIC00NjksNiArNTQ0LDExIEBAIHN0YXRpYyB2b2lkIHJlZmxlY3RlZFVSTEF0dHJBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiAgICAgcmV0dXJu
OwogfQogCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRVUkxBdHRyQXR0clNldHRlckNhbGxiYWNrKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6cmVm
bGVjdGVkVVJMQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBA
IC00ODgsNiArNTY4LDExIEBAIHN0YXRpYyB2b2lkIHJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8CiAgICAgcmV0dXJuOwog
fQogCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlckNhbGxiYWNrKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6cmVm
bGVjdGVkU3RyaW5nQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKQEAgLTUwNyw2ICs1OTIsMTEgQEAgc3RhdGljIHZvaWQgcmVmbGVjdGVkQ3VzdG9t
SW50ZWdyYWxBdHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjgKICAg
ICByZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0
dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVz
dE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJTZXR0ZXIobmFt
ZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxl
Y3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtNTI2LDYgKzYxNiwxMSBAQCBz
dGF0aWMgdm9pZCByZWZsZWN0ZWRDdXN0b21Cb29sZWFuQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OgogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgcmVm
bGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21C
b29sZWFuQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRyR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewog
ICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBA
IC01NDUsNiArNjQwLDExIEBAIHN0YXRpYyB2b2lkIHJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jCiAgICAgcmV0dXJuOwog
fQogCitzdGF0aWMgdm9pZCByZWZsZWN0ZWRDdXN0b21VUkxBdHRyQXR0clNldHRlckNhbGxiYWNr
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6
cmVmbGVjdGVkQ3VzdG9tVVJMQXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQor
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHR5cGVkQXJyYXlBdHRyQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
IHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwpAQCAtNTY0LDYgKzY2NCwxMSBAQCBzdGF0aWMgdm9pZCB0eXBlZEFycmF5QXR0ckF0dHJTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VgogICAgIHJldHVy
bjsKIH0KIAorc3RhdGljIHZvaWQgdHlwZWRBcnJheUF0dHJBdHRyU2V0dGVyQ2FsbGJhY2sodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjp0eXBl
ZEFycmF5QXR0ckF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
ICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpA
QCAtNTg3LDYgKzY5MiwxMSBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMbwogICAgIHJldHVybjsK
IH0KIAorc3RhdGljIHZvaWQgYXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyQ2FsbGJh
Y2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVl
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFs
OjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOwor
fQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwpAQCAtNjA5LDYgKzcxOSwxMSBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
bwogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgYXR0cldpdGhTZXR0ZXJFeGNlcHRpb25B
dHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2
ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRl
c3RPYmpWOEludGVybmFsOjphdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIobmFtZSwg
dmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtNjMyLDYgKzc0NywxMSBAQCBz
dGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBzdHJp
bmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRo
R2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRy
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7CkBAIC02NTQsMTQgKzc3NCwxOSBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAg
ICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlv
bkF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
VGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
cihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y3VzdG9tQXR0ckF0dHJHZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICByZXR1cm4gVjhUZXN0T2JqOjpj
dXN0b21BdHRyQXR0ckdldHRlckN1c3RvbShuYW1lLCBpbmZvKTsKIH0KIAotc3RhdGljIHZvaWQg
Y3VzdG9tQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorc3RhdGlj
IHZvaWQgY3VzdG9tQXR0ckF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCiB7Ci0gICAgICAgIFY4VGVzdE9iajo6Y3VzdG9tQXR0ckF0dHJTZXR0ZXJDdXN0b20o
bmFtZSwgdmFsdWUsIGluZm8pOworICAgIFY4VGVzdE9iajo6Y3VzdG9tQXR0ckF0dHJTZXR0ZXJD
dXN0b20obmFtZSwgdmFsdWUsIGluZm8pOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC02OTMsNiArODE4LDEx
IEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9p
ZCB3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4
OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3Rh
dGVBdHRyaWJ1dGVBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZUF0
dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZv
LkhvbGRlcigpKTsKQEAgLTcxNCw2ICs4NDQsMTEgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgog
ICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
dHRyaWJ1dGVBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQor
eworICAgIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJp
YnV0ZUF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7
CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsK
QEAgLTc0OSw2ICs4ODQsMTEgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRl
UmFpc2VzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICByZXR1cm47
CiB9CiAKK3N0YXRpYyB2b2lkIHdpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0
ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIobmFtZSwg
dmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0ckdldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0
T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtNzc0LDYg
KzkxNCwxMSBAQCBzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0
ZVJhaXNlc0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdAogICAgIHJldHVybjsKIH0KIAorc3Rh
dGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0
dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpW
OEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJT
ZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRy
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5I
b2xkZXIoKSk7CkBAIC04MDUsNiArOTUwLDExIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVj
dXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRyU2V0dGVyKHY4OjpMb2NhCiAg
ICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFu
ZFNjcmlwdFN0YXRlQXR0cmlidXRlQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGlu
Zm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyR2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAg
IFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC04
NDIsNiArOTkyLDExIEBAIHN0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5k
U2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyKHY4CiAgICAgcmV0dXJuOwogfQog
CitzdGF0aWMgdm9pZCB3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0
cmlidXRlUmFpc2VzQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8p
OworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdpdGhTY3JpcHRFeGVjdXRpb25D
b250ZXh0QW5kU2NyaXB0U3RhdGVXaXRoU3BhY2VzQXR0cmlidXRlQXR0ckdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAg
ICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAt
ODczLDYgKzEwMjgsMTEgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVBdHRyU2V0dGUKICAgICByZXR1cm47CiB9
CiAKK3N0YXRpYyB2b2lkIHdpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVX
aXRoU3BhY2VzQXR0cmlidXRlQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVBdHRyU2V0dGVyKG5hbWUsIHZh
bHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3aXRoU2NyaXB0
QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtODkyLDYgKzEw
NTIsMTEgQEAgc3RhdGljIHZvaWQgd2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJp
YnV0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHIKICAgICByZXR1cm47CiB9CiAKK3N0YXRp
YyB2b2lkIHdpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVBdHRyU2V0dGVy
Q2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOElu
dGVybmFsOjp3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNrQXR0cmlidXRlQXR0clNldHRl
cihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKIAogc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25kaXRpb25hbEF0dHIxQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKQEAg
LTkyMyw2ICsxMDg4LDE1IEBAIHN0YXRpYyB2b2lkIGNvbmRpdGlvbmFsQXR0cjFBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6CiAKICNlbmRpZiAvLyBF
TkFCTEUoQ29uZGl0aW9uMSkKIAorI2lmIEVOQUJMRShDb25kaXRpb24xKQorCitzdGF0aWMgdm9p
ZCBjb25kaXRpb25hbEF0dHIxQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyMUF0dHJT
ZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlv
bjEpCisKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCiAKIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29uZGl0aW9uYWxBdHRyMkF0dHJHZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBA
IC05NTQsNiArMTEyOCwxNSBAQCBzdGF0aWMgdm9pZCBjb25kaXRpb25hbEF0dHIyQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OgogCiAjZW5kaWYgLy8g
RU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQogCisjaWYgRU5BQkxFKENv
bmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorCitzdGF0aWMgdm9pZCBjb25kaXRpb25h
bEF0dHIyQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sK
KyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyMkF0dHJTZXR0ZXIobmFtZSwg
dmFsdWUsIGluZm8pOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJM
RShDb25kaXRpb24yKQorCiAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRp
b24yKQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNvbmRpdGlvbmFsQXR0cjNBdHRy
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZv
JiBpbmZvKQpAQCAtOTg1LDYgKzExNjgsMTUgQEAgc3RhdGljIHZvaWQgY29uZGl0aW9uYWxBdHRy
M0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODoKIAog
I2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKIAorI2lm
IEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKworc3RhdGljIHZvaWQg
Y29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8m
IGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjNBdHRyU2V0
dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBj
YWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RP
Ymo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMTAyNiw2ICsxMjE4LDExIEBAIHN0YXRp
YyB2b2lkIGFueUF0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IHY4OjpMb2NhbDx2ODo6VmFsCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBhbnlBdHRy
aWJ1dGVBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpM
b2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQorewor
ICAgIFRlc3RPYmpWOEludGVybmFsOjphbnlBdHRyaWJ1dGVBdHRyU2V0dGVyKG5hbWUsIHZhbHVl
LCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRSdW50
aW1lQXR0cjFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0xMDQ1LDYgKzEyNDIsMTEgQEAgc3RhdGljIHZvaWQg
ZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgdjg6OkxvY2EKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lkIGVuYWJsZWRBdFJ1bnRp
bWVBdHRyMUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVBdHRyMUF0dHJTZXR0ZXIo
bmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGVu
YWJsZWRBdFJ1bnRpbWVBdHRyMkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTEwNjQsNiArMTI2NiwxMSBAQCBz
dGF0aWMgdm9pZCBlbmFibGVkQXRSdW50aW1lQXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLCB2ODo6TG9jYQogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgZW5h
YmxlZEF0UnVudGltZUF0dHIyQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIy
QXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gZW5hYmxlZFBlckNvbnRleHRBdHRyMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpT
dHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTEwODMsNiAr
MTI5MCwxMSBAQCBzdGF0aWMgdm9pZCBlbmFibGVkUGVyQ29udGV4dEF0dHIxQXR0clNldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvYwogICAgIHJldHVybjsKIH0KIAorc3Rh
dGljIHZvaWQgZW5hYmxlZFBlckNvbnRleHRBdHRyMUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQ
ZXJDb250ZXh0QXR0cjFBdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkUGVyQ29udGV4dEF0dHIyQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
IHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwpAQCAtMTEwMiw2ICsxMzE0LDExIEBAIHN0YXRpYyB2b2lkIGVuYWJsZWRQZXJDb250ZXh0QXR0
cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jCiAgICAgcmV0
dXJuOwogfQogCitzdGF0aWMgdm9pZCBlbmFibGVkUGVyQ29udGV4dEF0dHIyQXR0clNldHRlckNh
bGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2
YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZFBlckNvbnRleHRBdHRyMkF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8p
OworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGZsb2F0QXJyYXlBdHRyR2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZv
KQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CkBAIC0xMTIxLDYgKzEzMzgsMTEgQEAgc3RhdGljIHZvaWQgZmxvYXRBcnJheUF0dHJTZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWUKICAgICBy
ZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lkIGZsb2F0QXJyYXlBdHRyU2V0dGVyQ2FsbGJhY2sodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RPYmpWOEludGVybmFsOjpmbG9h
dEFycmF5QXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gZG91YmxlQXJyYXlBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGlt
cCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0xMTQwLDYgKzEzNjIs
MTEgQEAgc3RhdGljIHZvaWQgZG91YmxlQXJyYXlBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHUKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2
b2lkIGRvdWJsZUFycmF5QXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBu
YW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKK3sKKyAgICBUZXN0T2JqVjhJbnRlcm5hbDo6ZG91YmxlQXJyYXlBdHRyU2V0dGVyKG5h
bWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb250
ZW50RG9jdW1lbnRBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0xMTczLDYgKzE0MDAsMTEgQEAgc3RhdGljIHZv
aWQgbXV0YWJsZVBvaW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWwKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lkIG11dGFibGVQb2lu
dEF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
VGVzdE9ialY4SW50ZXJuYWw6Om11dGFibGVQb2ludEF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGlu
Zm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGltbXV0YWJsZVBvaW50QXR0
ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8u
SG9sZGVyKCkpOwpAQCAtMTE5Miw2ICsxNDI0LDExIEBAIHN0YXRpYyB2b2lkIGltbXV0YWJsZVBv
aW50QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
CiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBpbW11dGFibGVQb2ludEF0dHJTZXR0ZXJD
YWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4g
dmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50
ZXJuYWw6OmltbXV0YWJsZVBvaW50QXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisK
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RyYXdiZXJyeUF0dHJHZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAg
ICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAg
LTEyMTEsNiArMTQ0OCwxMSBAQCBzdGF0aWMgdm9pZCBzdHJhd2JlcnJ5QXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZQogICAgIHJldHVybjsK
IH0KIAorc3RhdGljIHZvaWQgc3RyYXdiZXJyeUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmF3YmVycnlB
dHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBzdHJpY3RGbG9hdEF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUs
IGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTEyMzAsNiArMTQ3MiwxMSBAQCBz
dGF0aWMgdm9pZCBzdHJpY3RGbG9hdEF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2NhbDx2ODo6VmFsdQogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgc3Ry
aWN0RmxvYXRBdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQor
eworICAgIFRlc3RPYmpWOEludGVybmFsOjpzdHJpY3RGbG9hdEF0dHJTZXR0ZXIobmFtZSwgdmFs
dWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGRlc2NyaXB0aW9u
QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKIHsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGlu
Zm8uSG9sZGVyKCkpOwpAQCAtMTI2MCw2ICsxNTA3LDExIEBAIHN0YXRpYyB2b2lkIGlkQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBpZEF0dHJTZXR0ZXJDYWxsYmFjayh2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdE9ialY4SW50ZXJuYWw6Omlk
QXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gaGFzaEF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTIyMDIsODYgKzI0NTQsODYgQEAgc3RhdGlj
IGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBWOFRlc3RPYmpBdHRy
c1tdID0gewogICAgIC8vIEF0dHJpYnV0ZSAnc3RhdGljUmVhZE9ubHlMb25nQXR0cicgKFR5cGU6
ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsic3RhdGljUmVhZE9ubHlM
b25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzdGF0aWNSZWFkT25seUxvbmdBdHRyQXR0ckdl
dHRlckNhbGxiYWNrLCAwLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0YXRp
Y1N0cmluZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7InN0YXRp
Y1N0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c3RhdGljU3RyaW5nQXR0ckF0dHJHZXR0
ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnN0YXRpY1N0cmluZ0F0dHJBdHRyU2V0dGVy
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKKyAgICB7InN0YXRpY1N0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6c3RhdGljU3RyaW5nQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJu
YWw6OnN0YXRpY1N0cmluZ0F0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAog
ICAgIC8vIEF0dHJpYnV0ZSAnVGVzdFN1Yk9iaicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUn
IEV4dEF0dHI6ICcnKQogICAgIHsiVGVzdFN1Yk9iaiIsIFRlc3RPYmpWOEludGVybmFsOjpUZXN0
T2JqQ29uc3RydWN0b3JHZXR0ZXIsIDAsICZWOFRlc3RTdWJPYmo6OmluZm8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ2VudW1BdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJl
bnVtQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjplbnVtQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6OmVudW1BdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisg
ICAgeyJlbnVtQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjplbnVtQXR0ckF0dHJHZXR0ZXJDYWxs
YmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmVudW1BdHRyQXR0clNldHRlckNhbGxiYWNrLCAwIC8q
IG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCks
IHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGlu
c3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3Nob3J0QXR0cicgKFR5cGU6ICdhdHRyaWJ1
dGUnIEV4dEF0dHI6ICcnKQotICAgIHsic2hvcnRBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnNo
b3J0QXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnNob3J0QXR0ckF0
dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsic2hvcnRBdHRyIiwgVGVzdE9ialY4SW50
ZXJuYWw6OnNob3J0QXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnNo
b3J0QXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmli
dXRlICd1bnNpZ25lZFNob3J0QXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQot
ICAgIHsidW5zaWduZWRTaG9ydEF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9y
dEF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0
QXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsidW5zaWduZWRTaG9ydEF0dHIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRTaG9ydEF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ss
IFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZFNob3J0QXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdsb25nQXR0cicgKFR5cGU6ICdhdHRy
aWJ1dGUnIEV4dEF0dHI6ICcnKQotICAgIHsibG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
bG9uZ0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpsb25nQXR0ckF0
dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsibG9uZ0F0dHIiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6bG9uZ0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpsb25n
QXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6
QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRy
aWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRl
ICdsb25nTG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7Imxv
bmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyR2V0dGVyQ2Fs
bGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfSwKKyAgICB7ImxvbmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9u
Z0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpsb25nTG9uZ0F0dHJB
dHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAndW5z
aWduZWRMb25nTG9uZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7
InVuc2lnbmVkTG9uZ0xvbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkTG9uZ0xv
bmdBdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRMb25n
TG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7InVuc2lnbmVkTG9uZ0xv
bmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0ckdldHRl
ckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0
dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRy
b2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6
Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnc3RyaW5nQXR0
cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQotICAgIHsic3RyaW5nQXR0ciIsIFRl
c3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6c3RyaW5nQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsic3Ry
aW5nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyQXR0ckdldHRlckNhbGxiYWNr
LCBUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd0ZXN0T2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdWOE1lYXN1cmVBcycpCi0gICAgeyJ0ZXN0T2JqQXR0ciIsIFRlc3RPYmpW
OEludGVybmFsOjp0ZXN0T2JqQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJu
YWw6OnRlc3RPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJ0ZXN0T2Jq
QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp0ZXN0T2JqQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ1hNTE9iakF0dHInIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnJykKLSAgICB7IlhNTE9iakF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6WE1M
T2JqQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OlhNTE9iakF0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7IlhNTE9iakF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OlhNTE9iakF0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0
dHJpYnV0ZSAnY3JlYXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJj
cmVhdGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0
T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJj
cmVhdGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0
T2JqVjhJbnRlcm5hbDo6Y3JlYXRlQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZFN0cmluZ0F0dHInIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnUmVmbGVjdCcpCi0gICAgeyJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgVGVzdE9i
alY4SW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RP
YmpWOEludGVybmFsOjpyZWZsZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCisgICAgeyJyZWZsZWN0ZWRTdHJpbmdBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxl
Y3RlZFN0cmluZ0F0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpyZWZs
ZWN0ZWRTdHJpbmdBdHRyQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAv
LyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEludGVncmFsQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4
dEF0dHI6ICdSZWZsZWN0JykKLSAgICB7InJlZmxlY3RlZEludGVncmFsQXR0ciIsIFRlc3RPYmpW
OEludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RP
YmpWOEludGVybmFsOjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKKyAgICB7InJlZmxlY3RlZEludGVncmFsQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpy
ZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFs
OjpyZWZsZWN0ZWRJbnRlZ3JhbEF0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAogICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkVW5zaWduZWRJbnRlZ3JhbEF0dHInIChUeXBl
OiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnUmVmbGVjdCcpCi0gICAgeyJyZWZsZWN0ZWRVbnNpZ25l
ZEludGVncmFsQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRVbnNpZ25lZEludGVn
cmFsQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZFVu
c2lnbmVkSW50ZWdyYWxBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJyZWZs
ZWN0ZWRVbnNpZ25lZEludGVncmFsQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRV
bnNpZ25lZEludGVncmFsQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OnJlZmxlY3RlZFVuc2lnbmVkSW50ZWdyYWxBdHRyQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3JlZmxlY3RlZEJvb2xlYW5BdHRyJyAoVHlwZTog
J2F0dHJpYnV0ZScgRXh0QXR0cjogJ1JlZmxlY3QnKQotICAgIHsicmVmbGVjdGVkQm9vbGVhbkF0
dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyR2V0dGVyQ2Fs
bGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIHsicmVmbGVjdGVkQm9vbGVhbkF0dHIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6cmVmbGVjdGVkQm9vbGVhbkF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpW
OEludGVybmFsOjpyZWZsZWN0ZWRCb29sZWFuQXR0ckF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdyZWZsZWN0ZWRVUkxBdHRyJyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJ1VSTCBSZWZsZWN0JykKLSAgICB7InJlZmxlY3RlZFVSTEF0dHIi
LCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkVVJMQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZFVSTEF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKKyAgICB7InJlZmxlY3RlZFVSTEF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVj
dGVkVVJMQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3Rl
ZFVSTEF0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJp
YnV0ZSAncmVmbGVjdGVkU3RyaW5nQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdS
ZWZsZWN0JykKLSAgICB7InJlZmxlY3RlZFN0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
cmVmbGVjdGVkU3RyaW5nQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OnJlZmxlY3RlZFN0cmluZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19j
YXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9w
ZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7InJl
ZmxlY3RlZFN0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6cmVmbGVjdGVkU3RyaW5nQXR0
ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZFN0cmluZ0F0
dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFj
Y2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAn
cmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
J1JlZmxlY3QnKQotICAgIHsicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgVGVzdE9ialY4
SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIHsicmVmbGVjdGVkQ3VzdG9tSW50ZWdyYWxBdHRyIiwgVGVz
dE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJHZXR0ZXJDYWxs
YmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbUludGVncmFsQXR0ckF0dHJT
ZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdyZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdSZWZsZWN0
JykKLSAgICB7InJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6
OnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKKyAgICB7InJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyIiwgVGVzdE9ialY4SW50ZXJu
YWw6OnJlZmxlY3RlZEN1c3RvbUJvb2xlYW5BdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6cmVmbGVjdGVkQ3VzdG9tQm9vbGVhbkF0dHJBdHRyU2V0dGVyQ2FsbGJhY2ss
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAncmVmbGVjdGVkQ3VzdG9tVVJMQXR0
cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdVUkwgUmVmbGVjdCcpCi0gICAgeyJyZWZs
ZWN0ZWRDdXN0b21VUkxBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbVVS
TEF0dHJBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRDdXN0
b21VUkxBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNj
ZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1
dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJyZWZsZWN0ZWRDdXN0
b21VUkxBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnJlZmxlY3RlZEN1c3RvbVVSTEF0dHJBdHRy
R2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpyZWZsZWN0ZWRDdXN0b21VUkxBdHRy
QXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3R5
cGVkQXJyYXlBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJ0eXBl
ZEFycmF5QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp0eXBlZEFycmF5QXR0ckF0dHJHZXR0ZXJD
YWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnR5cGVkQXJyYXlBdHRyQXR0clNldHRlciwgMCAv
KiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQp
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBp
bnN0YW5jZSAqL30sCisgICAgeyJ0eXBlZEFycmF5QXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp0
eXBlZEFycmF5QXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnR5cGVk
QXJyYXlBdHRyQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ2F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0
cjogJycpCi0gICAgeyJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFs
OjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50
ZXJuYWw6OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICov
LCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2Fz
dDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30s
CisgICAgeyJhdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjphdHRy
V2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEg
Ki8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19j
YXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICov
fSwKICAgICAvLyBBdHRyaWJ1dGUgJ2F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uJyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIFRl
c3RPYmpWOEludGVybmFsOjphdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFj
aywgVGVzdE9ialY4SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCisgICAgeyJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpW
OEludGVybmFsOjphdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVz
dE9ialY4SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNr
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJzdHJpbmdB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0
aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnN0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisg
ICAgeyJzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpz
dHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4
SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNr
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJzdHJpbmdB
dHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnN0
cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisg
ICAgeyJzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4
SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNr
LCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVG
QVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8q
IG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2N1c3RvbUF0dHInIChUeXBlOiAn
YXR0cmlidXRlJyBFeHRBdHRyOiAnQ3VzdG9tJykKLSAgICB7ImN1c3RvbUF0dHIiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6Y3VzdG9tQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJu
YWw6OmN1c3RvbUF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4
OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0
dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7ImN1c3RvbUF0
dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y3VzdG9tQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVz
dE9ialY4SW50ZXJuYWw6OmN1c3RvbUF0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAogICAgIC8vIEF0dHJpYnV0ZSAnd2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlJyAoVHlwZTog
J2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhbGxXaXRoJykKLSAgICB7IndpdGhTY3JpcHRTdGF0ZUF0
dHJpYnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRy
R2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1
dGVBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7IndpdGhTY3JpcHRTdGF0ZUF0dHJp
YnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVBdHRyR2V0
dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0U3RhdGVBdHRyaWJ1dGVB
dHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnd2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnQ2FsbFdpdGgnKQotICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1
dGVBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dEF0dHJpYnV0ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nh
c3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3Bl
cnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsid2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBdHRyaWJ1dGVBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RP
YmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZUF0dHJTZXR0
ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJv
bD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpO
b25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd3aXRoU2NyaXB0
U3RhdGVBdHRyaWJ1dGVSYWlzZXMnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ2FsbFdp
dGgnKQotICAgIHsid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2VzIiwgVGVzdE9ialY4SW50
ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXJDYWxsYmFjaywg
VGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJTZXR0
ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpE
RUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAg
Lyogb24gaW5zdGFuY2UgKi99LAorICAgIHsid2l0aFNjcmlwdFN0YXRlQXR0cmlidXRlUmFpc2Vz
IiwgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJH
ZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRTdGF0ZUF0dHJpYnV0
ZVJhaXNlc0F0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmli
dXRlICd3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlcycgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWxsV2l0aCcpCi0gICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEF0dHJpYnV0ZVJhaXNlcyIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4
SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0clNl
dHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6
OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwg
MCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJ3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEF0
dHJpYnV0ZVJhaXNlcyIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dEF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QXR0cmlidXRlUmFpc2VzQXR0clNldHRlckNhbGxi
YWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6
REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAw
IC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3dpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGUnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRB
dHRyOiAnQ2FsbFdpdGgnKQotICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3Jp
cHRTdGF0ZUF0dHJpYnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJp
YnV0ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjp3aXRo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRlQXR0cmlidXRlQXR0ckdldHRlckNh
bGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZUF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAg
ICAgLy8gQXR0cmlidXRlICd3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNjcmlwdFN0YXRl
QXR0cmlidXRlUmFpc2VzJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhbGxXaXRoJykK
LSAgICB7IndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXMiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRT
Y3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNlc0F0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50
ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRpb25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVS
YWlzZXNBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7IndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXMiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6d2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZUF0dHJpYnV0ZVJhaXNl
c0F0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRFeGVjdXRp
b25Db250ZXh0QW5kU2NyaXB0U3RhdGVBdHRyaWJ1dGVSYWlzZXNBdHRyU2V0dGVyQ2FsbGJhY2ss
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnd2l0aFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUnIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnQ2FsbFdpdGgnKQotICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRB
bmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0
aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVB
dHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dEFuZFNjcmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUF0dHJTZXR0ZXIsIDAgLyog
bm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwg
c3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5z
dGFuY2UgKi99LAorICAgIHsid2l0aFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0
ZVdpdGhTcGFjZXNBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRBbmRTY3JpcHRTdGF0ZVdpdGhTcGFjZXNBdHRyaWJ1dGVBdHRyR2V0dGVyQ2Fs
bGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjp3aXRoU2NyaXB0RXhlY3V0aW9uQ29udGV4dEFuZFNj
cmlwdFN0YXRlV2l0aFNwYWNlc0F0dHJpYnV0ZUF0dHJTZXR0ZXJDYWxsYmFjaywgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICd3aXRoU2NyaXB0QXJndW1lbnRzQW5kQ2FsbFN0YWNr
QXR0cmlidXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NhbGxXaXRoJykKLSAgICB7
IndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6d2l0aFNjcmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0ZXJD
YWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3Rh
Y2tBdHRyaWJ1dGVBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7IndpdGhTY3JpcHRB
cmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6d2l0aFNj
cmlwdEFyZ3VtZW50c0FuZENhbGxTdGFja0F0dHJpYnV0ZUF0dHJHZXR0ZXJDYWxsYmFjaywgVGVz
dE9ialY4SW50ZXJuYWw6OndpdGhTY3JpcHRBcmd1bWVudHNBbmRDYWxsU3RhY2tBdHRyaWJ1dGVB
dHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2lmIEVOQUJMRShDb25kaXRpb24x
KQogICAgIC8vIEF0dHJpYnV0ZSAnY29uZGl0aW9uYWxBdHRyMScgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdDb25kaXRpb25hbCcpCi0gICAgeyJjb25kaXRpb25hbEF0dHIxIiwgVGVzdE9i
alY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjFBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpW
OEludGVybmFsOjpjb25kaXRpb25hbEF0dHIxQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBz
dGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2
ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisg
ICAgeyJjb25kaXRpb25hbEF0dHIxIiwgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0
cjFBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpjb25kaXRpb25hbEF0dHIx
QXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICNlbmRpZiAvLyBFTkFCTEUoQ29u
ZGl0aW9uMSkKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCiAg
ICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHIyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0
QXR0cjogJ0NvbmRpdGlvbmFsJykKLSAgICB7ImNvbmRpdGlvbmFsQXR0cjIiLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyMkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50
ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7
ImNvbmRpdGlvbmFsQXR0cjIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyMkF0
dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjJBdHRy
U2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlmIC8vIEVOQUJMRShDb25kaXRp
b24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5B
QkxFKENvbmRpdGlvbjIpCiAgICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHIzJyAoVHlw
ZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKLSAgICB7ImNvbmRpdGlvbmFs
QXR0cjMiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0dHJHZXR0ZXJDYWxs
YmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjNBdHRyU2V0dGVyLCAwIC8q
IG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCks
IHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGlu
c3RhbmNlICovfSwKKyAgICB7ImNvbmRpdGlvbmFsQXR0cjMiLCBUZXN0T2JqVjhJbnRlcm5hbDo6
Y29uZGl0aW9uYWxBdHRyM0F0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmNv
bmRpdGlvbmFsQXR0cjNBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogI2VuZGlm
IC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkKICAgICAvLyBBdHRyaWJ1dGUgJ2NvbmRpdGlvbmFsQXR0cjQnIChUeXBlOiAn
YXR0cmlidXRlJyBFeHRBdHRyOiAnQ29uZGl0aW9uYWwnKQpAQCAtMjMwMCwyNSArMjU1MiwyNSBA
QCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVz
dE9iakF0dHJzW10gPSB7CiAgICAgLy8gQXR0cmlidXRlICdjYWNoZWRBdHRyaWJ1dGUyJyAoVHlw
ZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScgRXh0QXR0cjogJ0NhY2hlZEF0dHJpYnV0ZScpCiAgICAg
eyJjYWNoZWRBdHRyaWJ1dGUyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJB
dHRyR2V0dGVyQ2FsbGJhY2ssIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFj
Y2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmli
dXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAn
YW55QXR0cmlidXRlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJhbnlB
dHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0ckdldHRlckNhbGxi
YWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCisgICAgeyJhbnlBdHRyaWJ1dGUiLCBUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmli
dXRlQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0
clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2Zsb2F0
QXJyYXknIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7ImZsb2F0QXJyYXki
LCBUZXN0T2JqVjhJbnRlcm5hbDo6ZmxvYXRBcnJheUF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9i
alY4SW50ZXJuYWw6OmZsb2F0QXJyYXlBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRp
Y19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQ
cm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7
ImZsb2F0QXJyYXkiLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZmxvYXRBcnJheUF0dHJHZXR0ZXJDYWxs
YmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmZsb2F0QXJyYXlBdHRyU2V0dGVyQ2FsbGJhY2ssIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnZG91YmxlQXJyYXknIChUeXBlOiAnYXR0
cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7ImRvdWJsZUFycmF5IiwgVGVzdE9ialY4SW50ZXJu
YWw6OmRvdWJsZUFycmF5QXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZG91
YmxlQXJyYXlBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nl
c3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0
ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyAgICB7ImRvdWJsZUFycmF5Iiwg
VGVzdE9ialY4SW50ZXJuYWw6OmRvdWJsZUFycmF5QXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6ZG91YmxlQXJyYXlBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LAogICAgIC8vIEF0dHJpYnV0ZSAnY29udGVudERvY3VtZW50JyAoVHlwZTogJ3JlYWRvbmx5IGF0
dHJpYnV0ZScgRXh0QXR0cjogJ0NoZWNrU2VjdXJpdHlGb3JOb2RlJykKICAgICB7ImNvbnRlbnRE
b2N1bWVudCIsIFRlc3RPYmpWOEludGVybmFsOjpjb250ZW50RG9jdW1lbnRBdHRyR2V0dGVyQ2Fs
bGJhY2ssIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnbXV0YWJsZVBvaW50
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJtdXRhYmxlUG9pbnQiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50QXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50QXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0
aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6
UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAg
eyJtdXRhYmxlUG9pbnQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50QXR0ckdldHRl
ckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRlcm5hbDo6bXV0YWJsZVBvaW50QXR0clNldHRlckNhbGxi
YWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6
REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAw
IC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2ltbXV0YWJsZVBvaW50JyAo
VHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0ltbXV0YWJsZScpCi0gICAgeyJpbW11dGFibGVQ
b2ludCIsIFRlc3RPYmpWOEludGVybmFsOjppbW11dGFibGVQb2ludEF0dHJHZXR0ZXJDYWxsYmFj
aywgVGVzdE9ialY4SW50ZXJuYWw6OmltbXV0YWJsZVBvaW50QXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCisgICAgeyJpbW11dGFibGVQb2ludCIsIFRlc3RPYmpWOEludGVybmFsOjppbW11dGFi
bGVQb2ludEF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmltbXV0YWJsZVBv
aW50QXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUg
J3N0cmF3YmVycnknIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnSW1wbGVtZW50ZWRBcycp
Ci0gICAgeyJzdHJhd2JlcnJ5IiwgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmF3YmVycnlBdHRyR2V0
dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpzdHJhd2JlcnJ5QXR0clNldHRlciwgMCAv
KiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQp
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBp
bnN0YW5jZSAqL30sCisgICAgeyJzdHJhd2JlcnJ5IiwgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmF3
YmVycnlBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjpzdHJhd2JlcnJ5QXR0
clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3ND
b250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4o
djg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0cmlj
dEZsb2F0JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1N0cmljdFR5cGVDaGVja2luZycp
Ci0gICAgeyJzdHJpY3RGbG9hdCIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpY3RGbG9hdEF0dHJH
ZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmljdEZsb2F0QXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCisgICAgeyJzdHJpY3RGbG9hdCIsIFRlc3RPYmpWOEludGVybmFsOjpz
dHJpY3RGbG9hdEF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmljdEZs
b2F0QXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUg
J2Rlc2NyaXB0aW9uJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAg
ICAgeyJkZXNjcmlwdGlvbiIsIFRlc3RPYmpWOEludGVybmFsOjpkZXNjcmlwdGlvbkF0dHJHZXR0
ZXJDYWxsYmFjaywgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdpZCcgKFR5
cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQotICAgIHsiaWQiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6aWRBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjppZEF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIHsiaWQiLCBUZXN0T2JqVjhJbnRlcm5hbDo6aWRBdHRyR2V0
dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjppZEF0dHJTZXR0ZXJDYWxsYmFjaywgMCAv
KiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQp
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBp
bnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdoYXNoJyAoVHlwZTogJ3JlYWRvbmx5IGF0
dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJoYXNoIiwgVGVzdE9ialY4SW50ZXJuYWw6Omhh
c2hBdHRyR2V0dGVyQ2FsbGJhY2ssIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6
OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0
cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0
ZSAncmVwbGFjZWFibGVBdHRyaWJ1dGUnIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRB
dHRyOiAnUmVwbGFjZWFibGUnKQpAQCAtMjQ0OSwxMyArMjcwMSwxMyBAQCBzdGF0aWMgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IENvbmZpZ3VyZVY4VGVzdE9ialRlbXBsYXRl
KHY4OjpQZXJzaQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjplbmFibGVkQXRSdW50
aW1lQXR0cjFFbmFibGVkKCkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJh
dGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAogICAgICAgICAvLyBBdHRyaWJ1dGUg
J2VuYWJsZWRBdFJ1bnRpbWVBdHRyMScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVu
YWJsZWRBdFJ1bnRpbWUnKQotICAgICAgICB7ImVuYWJsZWRBdFJ1bnRpbWVBdHRyMSIsIFRlc3RP
YmpWOEludGVybmFsOjplbmFibGVkQXRSdW50aW1lQXR0cjFBdHRyR2V0dGVyQ2FsbGJhY2ssIFRl
c3RPYmpWOEludGVybmFsOjplbmFibGVkQXRSdW50aW1lQXR0cjFBdHRyU2V0dGVyLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfTsKKyAgICAgICAgeyJlbmFibGVkQXRSdW50aW1lQXR0cjEiLCBUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJ
bnRlcm5hbDo6ZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfTsKICAgICAgICAgVjhET01Db25maWd1cmF0aW9uOjpjb25maWd1cmVBdHRyaWJ1dGUo
aW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSwgaXNvbGF0ZSk7CiAgICAgfQogICAgIGlmIChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpmZWF0dXJlTmFtZUVuYWJsZWQoKSkgewogICAgICAgICBzdGF0
aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1c
CiAgICAgICAgIC8vIEF0dHJpYnV0ZSAnZW5hYmxlZEF0UnVudGltZUF0dHIyJyAoVHlwZTogJ2F0
dHJpYnV0ZScgRXh0QXR0cjogJ1Y4RW5hYmxlZEF0UnVudGltZScpCi0gICAgICAgIHsiZW5hYmxl
ZEF0UnVudGltZUF0dHIyIiwgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVBdHRy
MkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdFJ1bnRpbWVB
dHRyMkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99OworICAgICAgICB7ImVuYWJsZWRBdFJ1bnRp
bWVBdHRyMiIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRSdW50aW1lQXR0cjJBdHRyR2V0
dGVyQ2FsbGJhY2ssIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRSdW50aW1lQXR0cjJBdHRy
U2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0Nv
bnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2
ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99OwogICAgICAgICBWOERPTUNvbmZpZ3VyYXRp
b246OmNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJEYXRhLCBpc29sYXRl
KTsKICAgICB9CiAKQEAgLTI1ODcsMTMgKzI4MzksMTMgQEAgdm9pZCBWOFRlc3RPYmo6Omluc3Rh
bGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBU
ZXMKICAgICBpZiAoQ29udGV4dEZlYXR1cmVzOjplbmFibGVkUGVyQ29udGV4dEF0dHIxRW5hYmxl
ZChpbXBsLT5kb2N1bWVudCgpKSkgewogICAgICAgICBzdGF0aWMgY29uc3QgVjhET01Db25maWd1
cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1cCiAgICAgICAgIC8vIEF0dHJpYnV0
ZSAnZW5hYmxlZFBlckNvbnRleHRBdHRyMScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdW
OEVuYWJsZWRQZXJDb250ZXh0JykKLSAgICAgICAgeyJlbmFibGVkUGVyQ29udGV4dEF0dHIxIiwg
VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRQZXJDb250ZXh0QXR0cjFBdHRyR2V0dGVyQ2FsbGJh
Y2ssIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dEF0dHIxQXR0clNldHRlciwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL307CisgICAgICAgIHsiZW5hYmxlZFBlckNvbnRleHRBdHRyMSIsIFRlc3RP
YmpWOEludGVybmFsOjplbmFibGVkUGVyQ29udGV4dEF0dHIxQXR0ckdldHRlckNhbGxiYWNrLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZFBlckNvbnRleHRBdHRyMUF0dHJTZXR0ZXJDYWxsYmFj
aywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRF
RkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAv
KiBvbiBpbnN0YW5jZSAqL307CiAgICAgICAgIFY4RE9NQ29uZmlndXJhdGlvbjo6Y29uZmlndXJl
QXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRhdGEsIGlzb2xhdGUpOwogICAgIH0KICAg
ICBpZiAoQ29udGV4dEZlYXR1cmVzOjpmZWF0dXJlTmFtZUVuYWJsZWQoaW1wbC0+ZG9jdW1lbnQo
KSkpIHsKICAgICAgICAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0
dHJpYnV0ZSBhdHRyRGF0YSA9XAogICAgICAgICAvLyBBdHRyaWJ1dGUgJ2VuYWJsZWRQZXJDb250
ZXh0QXR0cjInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVjhFbmFibGVkUGVyQ29udGV4
dCcpCi0gICAgICAgIHsiZW5hYmxlZFBlckNvbnRleHRBdHRyMiIsIFRlc3RPYmpWOEludGVybmFs
OjplbmFibGVkUGVyQ29udGV4dEF0dHIyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0T2JqVjhJbnRl
cm5hbDo6ZW5hYmxlZFBlckNvbnRleHRBdHRyMkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywg
c3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8
djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99Owor
ICAgICAgICB7ImVuYWJsZWRQZXJDb250ZXh0QXR0cjIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5h
YmxlZFBlckNvbnRleHRBdHRyMkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdE9ialY4SW50ZXJuYWw6
OmVuYWJsZWRQZXJDb250ZXh0QXR0cjJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
OwogICAgICAgICBWOERPTUNvbmZpZ3VyYXRpb246OmNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5j
ZSwgcHJvdG8sIGF0dHJEYXRhLCBpc29sYXRlKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IDhjMDY5
MjQxOThmYjNhMDE2YWY1Y2IyZWUwNWVkMThiNTE5NGMyNjguLjQ4NmQ3NzcwZDJhYjkyYTI1NjRm
YjU1OGIwMjMyMTcyYWMwMTRjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC05NCw2ICs5NCwxMSBAQCBzdGF0aWMg
dm9pZCB2YWx1ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbAogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgdmFsdWVBdHRy
U2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjp2YWx1ZUF0dHJTZXR0ZXIo
bmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJl
YWRvbmx5VmFsdWVBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UqIGltcCA9IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0xMzIsNiArMTM3LDExIEBAIHN0YXRpYyB2b2lkIGNh
Y2hlZFZhbHVlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1CiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBjYWNoZWRWYWx1ZUF0dHJT
ZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50ZXJuYWw6OmNhY2hlZFZhbHVlQXR0clNl
dHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gcG9ydHNBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqIGltcCA9IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6dG9OYXRp
dmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0yMzgsMTEgKzI0OCwxMSBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IG11bHRpVHJhbnNmZXJMaXN0TWV0aG9kKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiAKIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRBdHRyaWJ1
dGUgVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQXR0cnNbXSA9IHsKICAgICAv
LyBBdHRyaWJ1dGUgJ3ZhbHVlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAg
eyJ2YWx1ZSIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjp2
YWx1ZUF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVY4SW50ZXJuYWw6OnZhbHVlQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgeyJ2YWx1
ZSIsIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VWOEludGVybmFsOjp2YWx1ZUF0
dHJHZXR0ZXJDYWxsYmFjaywgVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVY4SW50
ZXJuYWw6OnZhbHVlQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19j
YXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9w
ZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBB
dHRyaWJ1dGUgJ3JlYWRvbmx5VmFsdWUnIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRB
dHRyOiAnJykKICAgICB7InJlYWRvbmx5VmFsdWUiLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlVjhJbnRlcm5hbDo6cmVhZG9ubHlWYWx1ZUF0dHJHZXR0ZXJDYWxsYmFjaywgMCwg
MCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFV
TFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBv
biBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdjYWNoZWRWYWx1ZScgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQotICAgIHsiY2FjaGVkVmFsdWUi
LCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5hbDo6Y2FjaGVkVmFs
dWVBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VW
OEludGVybmFsOjpjYWNoZWRWYWx1ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsi
Y2FjaGVkVmFsdWUiLCBUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5h
bDo6Y2FjaGVkVmFsdWVBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VWOEludGVybmFsOjpjYWNoZWRWYWx1ZUF0dHJTZXR0ZXJDYWxsYmFjaywgMCAv
KiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQp
LCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBp
bnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdwb3J0cycgKFR5cGU6ICdyZWFkb25seSBh
dHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsicG9ydHMiLCBUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlVjhJbnRlcm5hbDo6cG9ydHNBdHRyR2V0dGVyQ2FsbGJhY2ssIDAsIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnY2FjaGVkUmVhZG9ubHlWYWx1ZScgKFR5
cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFR5
cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RUeXBlZGVmcy5jcHAKaW5kZXggZDMxZmY5M2I2NjhmZjIzY2Y1NzNkNGJhNGViZWUxNWZkZGUw
MTE4OS4uNDhlNmI1NjBkZjc5YzQ2MWVmYmRhMmIyMzdkZmYyMmQwY2M0MGUyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFR5cGVkZWZz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
VHlwZWRlZnMuY3BwCkBAIC05OSw2ICs5OSwxMSBAQCBzdGF0aWMgdm9pZCB1bnNpZ25lZExvbmdM
b25nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbAog
ICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgdW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0
dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RUeXBl
ZGVmc1Y4SW50ZXJuYWw6OnVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0clNldHRlcihuYW1lLCB2YWx1
ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gaW1tdXRhYmxlU2Vy
aWFsaXplZFNjcmlwdFZhbHVlQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBUZXN0VHlwZWRlZnMqIGltcCA9
IFY4VGVzdFR5cGVkZWZzOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKQEAgLTExOCw2ICsxMjMs
MTEgQEAgc3RhdGljIHZvaWQgaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlQXR0clNldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2
b2lkIGltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6
aW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5m
byk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXR0cldpdGhHZXR0ZXJFeGNl
cHRpb25BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNj
ZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RUeXBlZGVmcyogaW1wID0gVjhUZXN0VHlwZWRl
ZnM6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMTQxLDYgKzE1MSwxMSBAQCBzdGF0aWMg
dm9pZCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMbwogICAgIHJldHVybjsKIH0KIAorc3RhdGljIHZvaWQgYXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyQ2FsbGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5h
bWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQoreworICAgIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uQXR0clNldHRlcihuYW1lLCB2YWx1ZSwgaW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gYXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRl
c3RUeXBlZGVmcyogaW1wID0gVjhUZXN0VHlwZWRlZnM6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwpAQCAtMTYzLDYgKzE3OCwxMSBAQCBzdGF0aWMgdm9pZCBhdHRyV2l0aFNldHRlckV4Y2VwdGlv
bkF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMbwogICAgIHJldHVy
bjsKIH0KIAorc3RhdGljIHZvaWQgYXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyQ2Fs
bGJhY2sodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIFRlc3RUeXBlZGVmc1Y4
SW50ZXJuYWw6OmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcihuYW1lLCB2YWx1ZSwg
aW5mbyk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gc3RyaW5nQXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIFRlc3RUeXBlZGVmcyogaW1wID0gVjhU
ZXN0VHlwZWRlZnM6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwpAQCAtMTg2LDYgKzIwNiwxMSBA
QCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsCiAgICAgcmV0dXJuOwogfQogCitzdGF0aWMgdm9pZCBz
dHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXJDYWxsYmFjayh2ODo6TG9jYWw8
djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6c3RyaW5n
QXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyKG5hbWUsIHZhbHVlLCBpbmZvKTsKK30K
Kwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2Vw
dGlvbkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mIGluZm8pCiB7CiAgICAgVGVzdFR5cGVkZWZzKiBpbXAgPSBWOFRlc3RUeXBlZGVm
czo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CkBAIC0yMDgsNiArMjMzLDExIEBAIHN0YXRpYyB2
b2lkIHN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlcih2ODo6TG9jYWw8djg6
OlN0cmluZz4gbmFtZSwKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2b2lkIHN0cmluZ0F0dHJX
aXRoU2V0dGVyRXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5m
byYgaW5mbykKK3sKKyAgICBUZXN0VHlwZWRlZnNWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0aFNl
dHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIobmFtZSwgdmFsdWUsIGluZm8pOworfQorCiBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IFRlc3RUeXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyKHY4OjpM
b2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewog
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBkYXRhID0gaW5mby5EYXRhKCk7CkBAIC0zOTcsMTkg
KzQyNywxOSBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG1ldGhvZFdpdGhFeGNlcHRp
b25NZXRob2QoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncwogCiBzdGF0aWMgY29uc3QgVjhET01D
b25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdFR5cGVkZWZzQXR0cnNbXSA9IHsK
ICAgICAvLyBBdHRyaWJ1dGUgJ3Vuc2lnbmVkTG9uZ0xvbmdBdHRyJyAoVHlwZTogJ2F0dHJpYnV0
ZScgRXh0QXR0cjogJycpCi0gICAgeyJ1bnNpZ25lZExvbmdMb25nQXR0ciIsIFRlc3RUeXBlZGVm
c1Y4SW50ZXJuYWw6OnVuc2lnbmVkTG9uZ0xvbmdBdHRyQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0
VHlwZWRlZnNWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJTZXR0ZXIsIDAgLyog
bm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwg
c3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5z
dGFuY2UgKi99LAorICAgIHsidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBUZXN0VHlwZWRlZnNWOElu
dGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdFR5cGVk
ZWZzVjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0dGVyQ2FsbGJhY2ssIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlw
dFZhbHVlJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0ltbXV0YWJsZScpCi0gICAgeyJp
bW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWUiLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjpp
bW11dGFibGVTZXJpYWxpemVkU2NyaXB0VmFsdWVBdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RUeXBl
ZGVmc1Y4SW50ZXJuYWw6OmltbXV0YWJsZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIHsiaW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlIiwg
VGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6aW1tdXRhYmxlU2VyaWFsaXplZFNjcmlwdFZhbHVlQXR0
ckdldHRlckNhbGxiYWNrLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjppbW11dGFibGVTZXJpYWxp
emVkU2NyaXB0VmFsdWVBdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8v
IEF0dHJpYnV0ZSAnVGVzdFN1Yk9iaicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUnIEV4dEF0
dHI6ICcnKQogICAgIHsiVGVzdFN1Yk9iaiIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OlRlc3RU
eXBlZGVmc0NvbnN0cnVjdG9yR2V0dGVyLCAwLCAmVjhUZXN0U3ViT2JqOjppbmZvLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8g
QXR0cmlidXRlICdhdHRyV2l0aEdldHRlckV4Y2VwdGlvbicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4
dEF0dHI6ICcnKQotICAgIHsiYXR0cldpdGhHZXR0ZXJFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNW
OEludGVybmFsOjphdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVz
dFR5cGVkZWZzVjhJbnRlcm5hbDo6YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfSwKKyAgICB7ImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgVGVzdFR5cGVk
ZWZzVjhJbnRlcm5hbDo6YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25BdHRyR2V0dGVyQ2FsbGJhY2ss
IFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRl
ckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2F0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCi0gICAgeyJhdHRy
V2l0aFNldHRlckV4Y2VwdGlvbiIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OmF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjph
dHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIHsi
YXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjphdHRyV2l0
aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdFR5cGVkZWZzVjhJbnRlcm5h
bDo6YXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyQ2FsbGJhY2ssIDAgLyogbm8gZGF0
YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGlj
X2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2Ug
Ki99LAogICAgIC8vIEF0dHJpYnV0ZSAnc3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24nIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKLSAgICB7InN0cmluZ0F0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uIiwgVGVzdFR5cGVkZWZzVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhHZXR0ZXJF
eGNlcHRpb25BdHRyR2V0dGVyQ2FsbGJhY2ssIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OnN0cmlu
Z0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0
aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6
UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAg
eyJzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbiIsIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6
OnN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uQXR0ckdldHRlckNhbGxiYWNrLCBUZXN0VHlw
ZWRlZnNWOEludGVybmFsOjpzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbkF0dHJTZXR0ZXJD
YWxsYmFjaywgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4o
djg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25l
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdzdHJpbmdBdHRyV2l0
aFNldHRlckV4Y2VwdGlvbicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQotICAgIHsi
c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24iLCBUZXN0VHlwZWRlZnNWOEludGVybmFsOjpz
dHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbkF0dHJHZXR0ZXJDYWxsYmFjaywgVGVzdFR5cGVk
ZWZzVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRyU2V0dGVyLCAw
IC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVM
VCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9u
IGluc3RhbmNlICovfSwKKyAgICB7InN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uIiwgVGVz
dFR5cGVkZWZzVjhJbnRlcm5hbDo6c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25BdHRyR2V0
dGVyQ2FsbGJhY2ssIFRlc3RUeXBlZGVmc1Y4SW50ZXJuYWw6OnN0cmluZ0F0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uQXR0clNldHRlckNhbGxiYWNrLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKIH07CiAKIHN0YXRp
YyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJhdGNoZWRDYWxsYmFjayBWOFRlc3RUeXBlZGVm
c0NhbGxiYWNrc1tdID0gewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>